Bulk update records
curl --request PUT \
--url https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"records": [
{
"recordId": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"Priority": "low"
},
{
"recordId": "a1b2c3d4-1234-5678-9abc-def012345678",
"Email": "jane.smith@newco.com"
}
]
}
'import requests
url = "https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk"
payload = { "records": [
{
"recordId": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"Priority": "low"
},
{
"recordId": "a1b2c3d4-1234-5678-9abc-def012345678",
"Email": "jane.smith@newco.com"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
records: [
{recordId: 'd4b3c2a3-c46b-46a1-a8ec-81b664bb41cb', Priority: 'low'},
{
recordId: 'a1b2c3d4-1234-5678-9abc-def012345678',
Email: 'jane.smith@newco.com'
}
]
})
};
fetch('https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'records' => [
[
'recordId' => 'd4b3c2a3-c46b-46a1-a8ec-81b664bb41cb',
'Priority' => 'low'
],
[
'recordId' => 'a1b2c3d4-1234-5678-9abc-def012345678',
'Email' => 'jane.smith@newco.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk"
payload := strings.NewReader("{\n \"records\": [\n {\n \"recordId\": \"d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb\",\n \"Priority\": \"low\"\n },\n {\n \"recordId\": \"a1b2c3d4-1234-5678-9abc-def012345678\",\n \"Email\": \"jane.smith@newco.com\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"records\": [\n {\n \"recordId\": \"d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb\",\n \"Priority\": \"low\"\n },\n {\n \"recordId\": \"a1b2c3d4-1234-5678-9abc-def012345678\",\n \"Email\": \"jane.smith@newco.com\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"records\": [\n {\n \"recordId\": \"d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb\",\n \"Priority\": \"low\"\n },\n {\n \"recordId\": \"a1b2c3d4-1234-5678-9abc-def012345678\",\n \"Email\": \"jane.smith@newco.com\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"records": [
{
"id": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"data": {
"vB3zXc7Hf2w": "low"
},
"fields": {
"Name": "John Doe",
"Email": "john@example.com",
"Priority": "low"
},
"createdAt": "2025-11-13T11:59:45.000Z",
"updatedAt": "2025-11-14T09:12:03.000Z"
}
]
}Records
Bulk Update Records
Updates up to 100 existing records in a single request using either table ID or table name.
PUT
/
bases
/
{databaseId}
/
tables
/
{tableId}
/
records
/
bulk
Bulk update records
curl --request PUT \
--url https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"records": [
{
"recordId": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"Priority": "low"
},
{
"recordId": "a1b2c3d4-1234-5678-9abc-def012345678",
"Email": "jane.smith@newco.com"
}
]
}
'import requests
url = "https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk"
payload = { "records": [
{
"recordId": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"Priority": "low"
},
{
"recordId": "a1b2c3d4-1234-5678-9abc-def012345678",
"Email": "jane.smith@newco.com"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
records: [
{recordId: 'd4b3c2a3-c46b-46a1-a8ec-81b664bb41cb', Priority: 'low'},
{
recordId: 'a1b2c3d4-1234-5678-9abc-def012345678',
Email: 'jane.smith@newco.com'
}
]
})
};
fetch('https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'records' => [
[
'recordId' => 'd4b3c2a3-c46b-46a1-a8ec-81b664bb41cb',
'Priority' => 'low'
],
[
'recordId' => 'a1b2c3d4-1234-5678-9abc-def012345678',
'Email' => 'jane.smith@newco.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk"
payload := strings.NewReader("{\n \"records\": [\n {\n \"recordId\": \"d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb\",\n \"Priority\": \"low\"\n },\n {\n \"recordId\": \"a1b2c3d4-1234-5678-9abc-def012345678\",\n \"Email\": \"jane.smith@newco.com\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"records\": [\n {\n \"recordId\": \"d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb\",\n \"Priority\": \"low\"\n },\n {\n \"recordId\": \"a1b2c3d4-1234-5678-9abc-def012345678\",\n \"Email\": \"jane.smith@newco.com\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tables.zite.com/api/v1/bases/{databaseId}/tables/{tableId}/records/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"records\": [\n {\n \"recordId\": \"d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb\",\n \"Priority\": \"low\"\n },\n {\n \"recordId\": \"a1b2c3d4-1234-5678-9abc-def012345678\",\n \"Email\": \"jane.smith@newco.com\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"records": [
{
"id": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"data": {
"vB3zXc7Hf2w": "low"
},
"fields": {
"Name": "John Doe",
"Email": "john@example.com",
"Priority": "low"
},
"createdAt": "2025-11-13T11:59:45.000Z",
"updatedAt": "2025-11-14T09:12:03.000Z"
}
]
}Updates up to 100 existing records in one request using either the table ID or table name. Each record must include its
Each item in
recordId, and only the fields you provide are changed.
Use field names or field IDs as keys and field values as data (e.g.,
"Email": "user@example.com" or "fwtJyga6dso": "user@example.com")Limits
| Parameter | Type | Required | Min | Max |
|---|---|---|---|---|
records | array | Yes | 1 | 100 |
records must include a recordId (the record’s UUID) alongside the fields to update:
{
"records": [
{ "recordId": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb", "Priority": "low" },
{ "recordId": "a1b2c3d4-1234-5678-9abc-def012345678", "Email": "jane.smith@newco.com" }
]
}
Only provided fields are updated. To create records instead, use Bulk Create Records.
Authorizations
Enter your Zite API key. Format: Bearer <api_key>
Path Parameters
The unique identifier of the database
The unique identifier of the table. You can also use the table name instead of the ID.
Body
application/json
Records to update (1-100). Each item must include the record's recordId (UUID) alongside the fields to change (field names or field IDs as keys). Only provided fields are updated.
Required array length:
1 - 100 elementsShow child attributes
Show child attributes
Example:
[
{
"recordId": "d4b3c2a3-c46b-46a1-a8ec-81b664bb41cb",
"Priority": "low"
},
{
"recordId": "a1b2c3d4-1234-5678-9abc-def012345678",
"Email": "jane.smith@newco.com"
}
]
Last modified on July 25, 2026
Was this page helpful?
⌘I