Batch create or update contacts (upsert)

Creates or updates multiple contacts in a single request. This endpoint processes up to 100 contacts
and returns detailed results for each operation, including successes and failures.

How It Works

Each contact in the batch is processed independently:

  • If the contact exists (based on identifiers), it will be updated
  • If the contact doesn't exist, it will be created
  • Failed operations don't stop the processing of other contacts

Request Format

Send an array of contact objects (max 100) in the contacts field. Each contact object follows
the same structure as the single upsert endpoint.

Response Format

The response includes:

  • Statistics: Total processed, created, updated, and failed counts
  • Detailed Results: Array with status and details for each contact (by index)

Status Values

Each contact in the results can have one of these statuses:

  • created: Contact was successfully created
  • updated: Contact was successfully updated
  • failed: Operation failed (see error_code and error_message)

Error Handling

Errors for individual contacts don't affect other contacts in the batch. The response will include:

  • error_code: The specific error code (e.g., "contact_conflicting_identifiers")
  • error_message: Human-readable error description
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
contacts
array of objects
required
length between 1 and 100
contacts*
integer
string
string
string
string
enum
Defaults to user
Allowed:
attributes
object
tags
array of strings
tags
Responses

401

Authentication credentials are missing or invalid

403

You don't have permission to create/update contacts

422

Validation error: contacts array is empty, exceeds 100 items, or contains invalid data

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