Sends batches of segment membership changes.
Request body is a JSON object with emitted_at, sync_type, and an updates array of membership changes. Segments must be registered via POST …/v1.0/…/segments before membership updates are accepted.
Request restrictions
Do not send both join and leave for the same segment and the same customer ID in one request. Processing order is not guaranteed; the outcome is non-deterministic.
Response semantics
200 OK: every customer ID in the request was processed successfully207 Multi-Status: partial success; see the207response for processing error codes and retry vs non-retry guidance
Rate limiting
Two limits apply to every membership update request per workspace (respect both).
- Request rate: at most one request per second per workspace. Checked first. A second request within one second returns
429 Too Many RequestswithRetry-After: 1, even when the batch is small. - Customer ID allowance: a shared per-workspace budget for customer IDs in
updates. Refills at 1,000 IDs/s, up to 10,000 at a time. Eachjoinandleaveentry counts every ID incustomer_idstoward the budget. Exceeding the remaining allowance returns429withRetry-Afterset to when capacity is available.
Each request may include at most 10,000 customer identifiers in total across all updates entries. The raw JSON request body must not exceed 22 MiB (23,068,672 bytes). Split larger syncs across multiple requests and stay within all limits above.
Honor Retry-After (seconds) before retrying a 429 response.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
502Bad gateway. The request did not reach the API application. The response body may not be JSON. Retry later without parsing the body.
503Service temporarily unavailable. The request did not reach the API application. The response body may not be JSON. Retry later without parsing the body.
504Gateway timeout. Processing did not complete in time. Retry later.

