Create an Export
Create an export.
Specify the feed and rolling window with feed_id + lookback_days.
The matched rows are frozen at creation; subsequent calls to
POST /intent/feeds/exports/page against the returned export_id
return the exact same set every time, regardless of new
observations landing later. Page size and total page count are
fixed for the life of the export.
Export artifacts expire after 24 hours. An expired artifact is rebuilt
for free only while its complete source window remains physically present
in ClickHouse. Once any required source date has aged out, the export is
terminally source_expired and read/download requests return 410 Gone.
Create an Export › Request Body
feed_idID of the feed to export. Must be a feed your organization can access.
lookback_daysSize of the rolling window in days, ending today (inclusive). Capped at 14 inclusive data dates and may be further limited by your organization's feed permission.
Optional demographic / lifestyle filters applied against li_consumer_data. When set, implicitly forces require_contact_id=true and collapses results to one row per matching contact_id (person-distinct).
Optional B2B profile filters applied against business feeds. Invalid for consumer feeds.
Optional OR filter groups for consumer feeds. Filters within a group are AND-ed; groups are OR-ed. Mutually exclusive with consumer_filters.
Optional OR filter groups for business feeds. Filters within a group are AND-ed; groups are OR-ed. Mutually exclusive with business_filters.
Optional ceiling on the export's total row count. When set, total_rows is min(matched_records, max_rows). Omit (or pass null) to include every matching row.
page_sizeRows per page for subsequent reads via POST /intent/feeds/exports/page. Locked at creation so total_pages is stable for the life of the export.
require_contact_idWhen true, only rows with a resolved contact_id are exported. total_rows reflects the filter, so it may be smaller than what an unfiltered export of the same job would return.
match_confidenceObservation match-confidence filter for this export. all includes every confidence level; probabilistic includes deterministic and probabilistic matches; deterministic includes deterministic matches only.
enrichment_bundlesOptional enrichment bundles to append as JSON blob columns. Each requested bundle must be enabled for your organization. Selecting any bundle forces require_contact_id=true.
Create an Export › Responses
Successful Response
export_idIdentifier for the export. Use with /exports/page, /exports/get.
total_rowsTotal rows in the export.
page_sizeRows per page, fixed at creation time.
total_pagesNumber of pages available to read; 0 when the export captured no rows.
created_atWhen the export was created (ISO 8601).
Window size used when the export was created.
require_contact_idmatch_confidenceenrichment_bundlesstatusBuild status: building, ready, expired, failed, or terminal source_expired.
build_progressPages materialized so far (only meaningful while status=building).
Error message when status=failed.
When the export became permanently unrebuildable.
Why the original source window cannot be reconstructed.
Fetch Export Data
Read a single page of a previously-created export.
Pages are 1-indexed and stable across calls — the same (export_id, page) returns the same rows every time. Reading pages of an
export does not consume additional quota beyond what was reserved
when the export was created.
Fetch Export Data › Request Body
export_idpagePage number, 1-indexed. Must satisfy page <= total_pages.
Fetch Export Data › Responses
Successful Response
export_idpageThe page returned.
page_sizetotal_rowstotal_pagesRows for the requested page. Always includes the default hash and match columns (contact_id, md5, sha1, sha2, match_confidence); selected enrichment bundles appear as JSON blob columns.
Preview an export
Use this endpoint to preview your request metrics and show some rows before executing a full export.
Preview an export › Request Body
feed_idID of the feed to export. Must be a feed your organization can access.
lookback_daysSize of the rolling window in days, ending today (inclusive). Capped at 14 inclusive data dates and may be further limited by your organization's feed permission.
Optional demographic / lifestyle filters applied against li_consumer_data. When set, implicitly forces require_contact_id=true and collapses results to one row per matching contact_id (person-distinct).
Optional B2B profile filters applied against business feeds. Invalid for consumer feeds.
Optional OR filter groups for consumer feeds. Filters within a group are AND-ed; groups are OR-ed. Mutually exclusive with consumer_filters.
Optional OR filter groups for business feeds. Filters within a group are AND-ed; groups are OR-ed. Mutually exclusive with business_filters.
Optional ceiling on the export's total row count. When set, total_rows is min(matched_records, max_rows). Omit (or pass null) to include every matching row.
page_sizeRows per page for subsequent reads via POST /intent/feeds/exports/page. Locked at creation so total_pages is stable for the life of the export.
require_contact_idWhen true, only rows with a resolved contact_id are exported. total_rows reflects the filter, so it may be smaller than what an unfiltered export of the same job would return.
match_confidenceObservation match-confidence filter for this export. all includes every confidence level; probabilistic includes deterministic and probabilistic matches; deterministic includes deterministic matches only.
enrichment_bundlesOptional enrichment bundles to append as JSON blob columns. Each requested bundle must be enabled for your organization. Selecting any bundle forces require_contact_id=true.
skip_countWhen true, returns sample rows without running the exact COUNT. Use /exports/count to lazy-load exact matched/total rows.
preview_rowsHow many sample rows to fetch for the preview. Capped at 500 to keep the round-trip quick; the dashboard's default is 100. Counts are returned regardless — preview_rows only governs the size of the row sample.
Preview an export › Responses
Successful Response
feed_idmatched_rowsTotal rows that would match the feed + filters before the max_rows cap is applied. Surface this so users know how much they're leaving on the table when they cap an export.
total_rowsWhat total_rows would be on a real export — min(matched_rows, max_rows). Equal to matched_rows when max_rows is unset or larger.
require_contact_idEffective require_contact_id for the preview. May be True even when the request didn't ask for it — consumer filters force it on because the JOIN key is person_id.
One of free_text, domain, or topic — null when not resolved.
counts_readyFalse when preview was requested with skip_count=true; call /exports/count for exact matched/total rows.
Sample rows for the preview, capped by the request's preview_rows. Same shape as ExportPageResponse.rows: the default hash/match columns plus selected enrichment bundle columns.
fieldsColumn order of rows. Useful for rendering a fixed table header while individual row dicts may omit optional fields.
Filters that produced this preview, echoed for UI parity.
Business filters that produced this preview, echoed for UI parity.
Consumer OR filter groups that produced this preview.
Business OR filter groups that produced this preview.
match_confidenceEffective match-confidence filter used for the preview.
enrichment_bundlesGet export download URL
Get a presigned download URL for the full CSV of a bucket-backed export.
The URL is valid for one hour and can be opened directly in a browser
to download the file. Only works for exports that have finished
building (status=ready). A missing artifact is rebuilt only while the
complete original source window is still retained.
Get export download URL › Request Body
export_idGet export download URL › Responses
Successful Response
Presigned download URL for the full CSV file. Expires in 1 hour.
statusready, building, or terminal source_expired.
Response Message. E.g. reason why URL is not ready, if applicable.
List exports
List exports your organization has created, newest first.
feed_id is an optional filter — omit to return every export
across the organization, or supply one to narrow the result. Use
the returned export_ids with /exports/page to resume reading.
List exports › Request Body
Only return exports for this feed.
limitMaximum number of exports to return, newest first.
List exports › Responses
Successful Response