Skip to main content
POST
Bulk create records
Creates up to 100 records in one request using either the table ID or table name. Optionally performs an upsert (create or update existing records) by matching on one or more field values.
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

Any id key included in a record is ignored — the database generates the record ID.

Upsert with matchOn

Pass matchOn with a list of field IDs to upsert instead of always creating. For each incoming record, existing records are matched on all of the listed fields:
  • If a match is found, that record is updated with the provided values.
  • If no match is found, a new record is created.
Unlike the keys inside each record, matchOn accepts field IDs only — field names are rejected. A record’s field IDs are the keys of the data object returned by any record endpoint (for example, List Records).
When matchOn is provided, the response status is 200 (records may have been updated) rather than 201.

Authorizations

Authorization
string
header
required

Enter your Zite API key. Format: Bearer <api_key>

Path Parameters

databaseId
string
required

The unique identifier of the database

tableId
string
required

The unique identifier of the table. You can also use the table name instead of the ID.

Body

application/json
records
object[]
required

Records to create (1-100). Each item is an object with field names or field IDs as keys and their corresponding values. Any id key is ignored — the database generates the record ID.

Required array length: 1 - 100 elements
Example:
matchOn
string[]

Optional list of field IDs to upsert on (1-20 keys). Must be field IDs, not field names (unlike the keys inside each record). When provided, each incoming record is matched against existing records on all listed fields: a match updates that record, otherwise a new record is created. Omit to always create new records.

Required array length: 1 - 20 elements
Example:

Response

Records created successfully. When matchOn is provided (upsert), the status is 200 instead of 201.

success
boolean
required

Whether the bulk operation succeeded

records
object[]
required

The created (or upserted) records

Last modified on July 25, 2026