June 3rd, 2026

API

API Updates - May 2026

Audiences

Audience responses now carry richer reach and signal data for developers reading them programmatically.

Distinct profile count on audience responses

Audience responses now include a distinct_profile_count field reporting the number of unique resolved profiles, separate from the raw record count (which can be larger because a profile may carry multiple records). Both GET /api/v1/audiences and GET /api/v1/audiences/{id} return it, so you can report true reach without post-processing the download.

Intent frequency and impression count on audience samples

The audience sample endpoint now returns two additional per-contact fields: intent_frequency (how many times a profile appeared in the audience over the lookback window) and impression_count (ad impressions served to that profile over the same window). These are available on GET /api/v1/audiences/{id}/sample for intent and persona audiences, giving a graded signal rather than a binary match.

Authentication

Two changes tighten credential handling. Review them before your next integration build.

API key and secret pair validation

API key authentication now validates the key and its secret together. Send the secret in the X-Api-Secret header alongside X-Api-Key. For clients with secret enforcement enabled, a request presenting a valid key without the matching secret is now rejected. If you have only been sending the key, add the secret you saved at creation time.

Application client secrets are no longer returned in plaintext

Application credential reads through GET /api/app/get and GET /api/app/retrieve/{app_id} no longer return the raw client secret. Credential validation now compares a hash of the secret you supply, so store the secret issued at creation time; it cannot be read back from the API.

Behavior Changes

Refreshing a paused audience returns 409

POST /api/v1/audiences/{id}/refresh against a paused audience now returns a 409 with a structured reason, instead of reporting success without actually queuing a rebuild. Resume the audience before requesting a refresh.

Bug Fixes

  • Intent audience downloads via GET /api/v1/audiences/{id}/download no longer return a spurious 400 when upstream data lands late for an otherwise-ready audience.
  • GET /api/v1/audiences no longer returns 500 for projects in certain organization hierarchies.
  • Audience filters using range operators (such as greater-than or less-than on bucketed fields like company employee-count ranges) now return only records that actually fall within the requested range.

For full endpoint details, parameters, and examples, see our developer documentation.