Bulk Upsert Rows

Load records into an audience — create new rows, update existing ones, or mix both in a single call. This is the primary way to populate an audience with GTM data: trade show leads, CRM exports, account lists, enrichment targets.

Each row is an array of cell values keyed by columnId (use the IDs returned by Create Audience or Create New Columns). Omit id to create a new row; include a rowId to update an existing one. Max 500 rows per call.

Cell values: Each cell's value must match the column's dataType. For example, an EMAIL column expects a string like "[email protected]", an INTEGER column expects a number, a STRING_LIST column expects an array of strings. Sending the wrong shape will result in a validation error.

Returns 200 with the full row records including per-cell state: RESULT (value present), BLANK (no value set), LOADING (enrichment in progress), ERROR (enrichment failed — check errorDetails), or NO_RESULT (enrichment found no match).
Returns 400 if the request body is malformed or columnId references are invalid.

Path Params
uuid
required

The unique identifier for the audience

Body Params

Request body containing rows to create or update. Include id (rowId) to update an existing row; omit id to create a new row.

JSON API model for bulk upsert Row request. Row id is optional — omit to create, provide to update.

data
array of objects
required
length between 1 and 500

The primary data of the document

data*
Responses

Language
Credentials
OAuth2
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/vnd.api+json