Add multiple rows with data to a list.
Creates multiple rows with the provided data. Optionally creates new columns for fields that don’t exist and matches existing rows based on specified fields.
Query parameters:
- createColumns: Create columns that don’t exist (default: false)
- matchFields: Comma-separated field names to match existing rows
Authorizations
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Path Parameters
Query Parameters
Company ID that owns the list. Required when authenticating with a personal access key (pak_…) — the key is not tied to a specific company so the server cannot infer it. Required when authenticating with a company API key only if the key belongs to a user who has access to multiple companies; otherwise it defaults to the key's company. Optional for JWT (dashboard) auth — defaults to the user's active company.
If true, columns referenced in the rows that do not exist yet are auto-created on the list. Default: false (unknown fields are silently dropped).
Comma-separated (or caret-separated) field names used to match existing rows. When a row's values for these fields match an existing row, that row is updated in place instead of inserted; the result for that row will have updated=true.
Body
Rows to add
Request body for bulk-adding rows
Array of row data objects. Each object maps column names to values, e.g. {"firstName": "John", "email": "john@example.com"}. Unknown column names are silently dropped unless createColumns=true is set as a query parameter.
Company ID that owns the list. Required when authenticating with a personal access key (pak_…) — the key is not tied to a specific company so the server cannot infer it. Required when authenticating with a company API key only if the key belongs to a user who has access to multiple companies; otherwise it defaults to the key's company. Optional for JWT (dashboard) auth — defaults to the user's active company.
Response
Per-row insert results (preserves input order)
Response for batch row insert. The rows array preserves the input order — each entry indicates whether that input row was inserted, matched, or failed.
Per-row results in the same order as the input rows.

