Open a pass for an account
const url = 'https://api.ebitex.io/audience/management/v1/accounts/example/stages/example';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"openedAt":"2026-04-15T12:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.ebitex.io/audience/management/v1/accounts/example/stages/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "openedAt": "2026-04-15T12:00:00Z" }'Opens the account’s pass in a stage (awareness, acquisition, conversion, retention or advocacy) at the first state of the organization’s definition. { "openedAt" } is optional: when the stage really began, as an ISO 8601 time, so a producer can report an activation or a payment after the fact. It cannot be in the future and cannot be more than a year before the account was created. Without it the pass starts now. The first touch recorded on the account is copied onto the pass.
An account moves through the same five lifecycle stages a person does (awareness, acquisition, conversion, retention, advocacy), each with the states and moves the organization defined in Audience settings. An account has at most one open pass per stage. A key holds no role, so it can only fire a move that has no role restriction.
Key: an Audience management key with audience.management.write (write also needs read; erase needs both).
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Request Body
Section titled “Request Body”Responses
Section titled “ Responses ”{ "id", "stage", "openedAtUtc", "stateEnteredAtUtc", "closedAtUtc", "outcome", "state": { "id", "name", … }, "facts": { "source", "medium", "campaign" }, "availableTransitions": [ … ], "rowVersion" }. facts is the first touch the pass was opened with.
validation_failed: openedAt is in the future or too far before the account was created.
missing_api_key or invalid_api_key: no key was sent, or it is unknown, revoked or expired, or it was not created from the Audience settings page.
payment_required: the organization’s subscription needs attention.
scope_denied: the key lacks this route’s scope. ip_denied: the caller’s address is outside the key’s allowed ranges. app_not_available: Audience is not enabled for the organization.
account_not_found or stage_not_found.
not_found: no such route.
stage_already_open: the account already has an open pass in that stage; rowId names it. Or accounts_not_enabled.
rate_limited: the key spent its requests-per-minute budget; Retry-After says how long to wait. too_many_failed_authentications: too many bad keys from this address.