Added

API Updates - January 2026

Resolutions API

The resolutions backend has been rebuilt with a unified service architecture and a new automatic link renewal system.

Null-Aware Filter Operators

Filter operators now handle null values consistently. You can explicitly match null and non-null values using dedicated operators.

Supported null operators (case-insensitive, accept any of these forms):

  • is null, isnull, null - matches records where the field has no value
  • is not null, isnotnull, notnull, not null - matches records where the field has any value

Automatic Link Renewal

Download links for resolution exports now automatically regenerate when they expire. Background renewal jobs have been moved into a dedicated renewal service that runs on a schedule, so previously-expired links become usable again without any manual intervention or re-creation of the export.

No code changes are required in your integration.


Field Catalog API

A new Field Catalog REST API exposes the field schema used for export creation, contact filtering, and event ingestion. Use it to discover the fields, types, and picklist values supported by the platform when building integrations.

List Field Catalog

GET /api/v1/field-catalog

Query parameters:

ParameterTypeRequiredDescription
statusstringNoFilter by status. Pass all to include archived fields
categorystringNoFilter by field category

Response (200 OK):

{
  "fields": [
    {
      "key": "first_name",
      "category": "person",
      "type": "string",
      "status": "active"
    },
    {
      "key": "company_size",
      "category": "company",
      "type": "picklist",
      "status": "active",
      "picklist_values": ["1-10", "11-50", "51-200", "201-1000", "1000+"]
    }
  ]
}

Get Field Catalog Categories

GET /api/v1/field-catalog/categories

Returns the list of categories used to organize fields (e.g., person, company, behavior).

Get a Single Field

GET /api/v1/field-catalog/{key}

Returns the full definition for a single field, including any picklist values.

Picklist Alignment with Source Data

Picklist field values exposed by the Field Catalog API now align with the actual values present in the data lake, eliminating drift between documented and accepted values.


Lists API

Type Filter on List Queries

The lists endpoint now accepts a type query parameter to filter project-scoped lists by upload type.

GET /api/v1/lists?type=hem

List Values Download

A new endpoint streams the values in a list as a downloadable file.

GET /api/v1/lists/{id}/values/download

This supports streaming for large lists.


Exports API

resolvedOnly Field on Export Query Schema

Export query schemas now accept a resolvedOnly boolean field, allowing exports to be configured to only include resolved (identified) contacts and exclude raw events from unidentified visitors.

{
  "destination_id": "dest_abc123",
  "query": {
    "resolvedOnly": true,
    "filters": [...]
  }
}

Audience Filter Validation for Pixel Exports

Pixel-based exports now validate audience filter shape at submission time, returning a structured validation error rather than failing at execution.


Notifications API

Project-Scoped Notification Filters

Notification queries now accept an optional project_id query parameter to scope results to a single project.

GET /api/v1/notifications/unread?project_id=proj_abc123

Project API

Cascading Project Delete

A new endpoint cleanly deletes a project and all its child resources (lists, exports, integrations, audiences) in a single transactional call, replacing the previous multi-step cleanup workflow.

DELETE /api/v1/projects/{id}/cascade

Bug Fixes

  • Fixed export validation falling back to a stale schema instead of using the current field catalog
  • Fixed CRM fields proxy not forwarding the request body, causing field listing to fail for some integrations
  • Fixed integration test connections returning empty errors when the test request body was consumed before forwarding
  • Fixed billing usage failing to look up the correct billing contract when project context was incomplete
  • Fixed a Slack destination configuration field being incorrectly rejected by validation