The ContactBased API gives builders self-serve access to person-level intent and identity data. Free-text search any topic on the open web, paginate frozen exports forever, and batch-enrich up to 1,000 contact_ids per call. OpenAPI 0.1.0 spec, four endpoint surfaces (intent feeds, exports, organization/filters, enrichment), one stable cb_id that joins every row to every enrichment endpoint. Built for sales intelligence platforms, ad-tech and audience products, enrichment apps, and outbound tools. Wholesale licensing and custom contracts available for unrestricted feed access.
Common questions and answers about our contact-level advertising platform:
Built for builders
Self-serve OpenAPI 0.1.0. Search any topic on the open web. Page through frozen exports. Batch-enrich up to 1,000 contacts per call. No co-op contribution required.
curl -X POST https://api.contactbased.com/intent/feeds/search \
-H "Content-Type: application/json" \
-H "X-API-Key: $CONTACTBASED_API_KEY" \
-d '{
"feed_id": "00000000-0000-4000-8000-000000000001",
"lookback_days": 30,
"include_daily_counts": true
}'{
"feed_id": "00000000-0000-4000-8000-000000000001",
"total_records": 1284,
"records_with_cb_id": 942,
"records_without_cb_id": 342,
"lookback_days": 30,
"start_date": "2026-04-07",
"end_date": "2026-05-07",
"daily_counts": [
{ "date": "2026-04-07", "count": 38 },
{ "date": "2026-04-08", "count": 41 }
]
}One data feed, many product surfaces. The ContactBased API powers sales intelligence platforms, ad-tech and audience products, enrichment and identity apps, and outbound sales tools. Custom contracts and wholesale licensing are available for unrestricted feed access.
Add person-level intent and identity to your existing platform. Custom contracts, dedicated SLA, wholesale licensing for unrestricted feed access.
Generate hashed-email custom audiences for any topic. Push directly to LinkedIn, Meta, Google, or TikTok \u2014 or build your own audience product on top of the ContactBased intent data API.
Resolve any cb_id to PII, emails, and phones. Single lookups or batch up to 1,000 contacts per call. Per-record provenance.
Add an intent layer to your sequencing product. Native integration via the search, export, and enrich endpoints.
Search a feed and auto-create a paginated export. Read its pages \u2014 stable forever, free to re-read. Enrich up to 1,000 contact_ids per batch. The whole intent + identity pipeline is three endpoints.
Submit a feed_id and a lookback_days window. Returns total records, records with cb_id, daily counts, and an optional auto-created frozen export so you can paginate stable rows forever.
Read a stable page of rows from a frozen export. The same (export_id, page) returns the exact same rows every time. Row payloads include cb_id and hashes \u2014 PII when permissions allow.
Batch enrich up to 1,000 contact_ids in a single call. Resolve any cb_id to PII, emails, and phones. Use the include parameter to fetch only the sections you need.
The ContactBased API is organized into four surfaces: intent feeds, feed exports, organization and filters, and enrichment. Every builder workflow uses some combination of these four.
Define a feed in plain text \u2014 any topic, any keyword, any product or competitor name. No predefined taxonomy. Search it for in-market signal in a rolling window. Endpoints: POST /intent/feeds/builder, POST /intent/feeds/search.
Frozen, paginated exports. The same (export_id, page) returns the same rows forever. Endpoints: POST /intent/feeds/exports, POST /intent/feeds/exports/preview, POST /intent/feeds/exports/page, POST /intent/feeds/exports/list.
What your org can see, the quotas it has, and which fields are filterable. Endpoints: GET /organization/feeds, GET /organization/credits, GET /organization/feed-limit, POST /intent/feeds/filters/fields, POST /intent/feeds/filters/values.
Resolve any cb_id to PII, emails, and phones. Single lookups or up to 1,000 in one batch. Endpoints: GET /enrich/contacts/{contact_id}, GET /enrich/contacts/{contact_id}/pii, GET /enrich/contacts/{contact_id}/emails, GET /enrich/contacts/{contact_id}/phones, POST /enrich/contacts/batch.
cb_<16 hex> is the single stable token returned as cb_id on every export row and accepted as contact_id by every enrichment endpoint. No lookup tables, no email-as-key gymnastics, no joins by company-domain heuristics. Drop the cb_id straight into the enrichment URL \u2014 that is the join.
GET /organization/feeds returns the flags and quotas your API key is bound to, per feed. Org-wide pools live at /organization/credits and /organization/feed-limit. No opaque tiers, no surprises at export time. Available fields include enable_export_pii, enable_export_business_info, lookback_days, export_row_limit, export_rows_used, and export_rows_remaining.
When you create a ContactBased export, the matched rows are frozen at that moment. page_size and total_pages are locked for the life of the export, and re-reading any page is free. Use it for incremental syncs, retries, and rebuilding a derivative dataset on your side without re-running the search.
ContactBased uses first-party and open-web sources, supports standard B2B compliance frameworks, and provides per-record provenance on enriched contacts. Full data-handling, retention, and opt-out details are in the docs.
Common questions and answers about our contact-level advertising platform:
Get a ContactBased API key or talk to us about custom licensing for sales intelligence platforms, ad-tech vendors, and identity resolution apps. 30 billion daily intent signals, person-level rows, OpenAPI 0.1.0 spec.