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 "user@example.com", 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.
Request
- Base URLhttps://api.zoominfo.com/gtm
- URLhttps://api.zoominfo.com/gtm/studio/v1/audiences/{audienceId}/rows/actions/bulk/upsert
- AuthOAuth 2Authorization code: https://login.zoominfo.comToken URL: https://okta-login.zoominfo.com/oauth2/default/v1/token scopes: api:audience:manage
Path parameters
The unique identifier for the audience
Request body
Response
Success
Changes
No recorded changes to this operation across all 1 revision of this API.