Developer API

Build verified lead intelligence into your workflow.

Every lead you acquire is available programmatically under the same entitlement rules as the workspace — tenant-isolated, payment-gated, and auditable.

Tenant-isolated
Every resource is scoped server-side. Foreign rows read as not-found.
Entitlement-gated
Sensitive data, exports, CRM pushes, and outreach re-check payment.
Idempotent writes
Reservations, charges, and deliveries take idempotency keys for safe retries.
Stable error semantics
409s carry branchable codes; rate limits send Retry-After; outages are 503.

Documentation

Integrate in an afternoon

One key, predictable envelopes, and errors your integration can branch on. Key management — scopes, rotation, revocation — lives in the workspace API section.

Authentication

Programmatic access uses per-customer API keys sent as the X-API-Key header. Browser sessions and API keys are separate: signing into the workspace never requires pasting a key.

Example request

List leads in a campaign — paginated envelope, highest scores first:

bash
curl -s "$BASE/v1/campaigns/<campaign_id>/leads?min_score=65&sort=-score" \
  -H "X-API-Key: $KEY"

Response & pagination

Collections return items, total, limit, and offset. Locked leads carry fit metadata with server-masked contacts; acquired leads disclose values under your entitlement.

What the API enforces

  • Tenant isolation on every resource — foreign rows read as not-found.
  • Entitlement before sensitive contact data, exports, CRM pushes, or outreach.
  • Idempotency keys on reservations, charges, and deliveries for safe retries.

Errors & rate limits

  • 401 · 403Missing key or insufficient scope. Browser sessions and API keys are separate.
  • 404Not found — including cross-tenant rows, which never leak existence.
  • 409 + codeExpected product states (unavailable, already acquired, duplicate). Branch on code.
  • 422Validation: the request shape was rejected before anything ran.
  • 429 + Retry-AfterRate limited. Back off for the advertised window, then retry.
  • 503Integration unavailable. Retry later; nothing was partially applied.