Public APIv1

CXFWD API

Search 105M+ companies and 80M+ decision makers, run deep-research enrichment, and drive the outreach agent from your own stack. The API is JSON over HTTPS; every response is UTF-8 and every list endpoint is cursor-paginated.

Base URL
https://api.cxfwd.com/public/api/
Create a key

Authentication

Authenticate with an API key

Authenticate every request with an API key in the X-API-Key header. Keys are created in the app under Settings → API keys and can be scoped to read-only. Never ship a key in client-side code.

Example
curl https://api.cxfwd.com/public/api/me \
  -H "X-API-Key: $CXFWD_API_KEY"

{
  "account": "larksilk.com",
  "plan": "pay_as_you_go",
  "credits_remaining": 27.4,
  "daily_budget": 25
}

Errors6

Errors & rate limits

Errors use conventional HTTP status codes with a JSON body. Default limits are 600 requests per minute for search and 60 per minute for enrichment jobs; current usage is returned in X-RateLimit-Remaining.

Error body
{
  "error": {
    "type": "invalid_request",
    "message": "filters.employees.min must be a positive integer",
    "status": 400
  }
}
StatusMeaning
400Malformed request or invalid filter
401Missing or invalid API key
402Insufficient credits
404Resource not found
429Rate limit exceeded – retry after the header value
500Something went wrong on our side
POST/public/api/enrichment/jobs

Enrichment

Run a deep-research agent over a list of domains with your own criteria. Jobs are asynchronous; poll or use a webhook.

Request
curl -X POST https://api.cxfwd.com/public/api/enrichment/jobs \
  -H "X-API-Key: $CXFWD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domains": ["tupelohoneyflower.com", "thebloomlab.co"],
    "fields": [
      { "name": "uses_fresh_flowers", "type": "boolean",
        "prompt": "Does the company buy fresh flowers for events?" }
    ],
    "webhook_url": "https://example.com/hooks/cxfwd"
  }'
Response · 200
{
  "job_id": "job_61hd0",
  "status": "queued",
  "domains": 2,
  "estimated_cost": 0.01,
  "poll_url": "https://api.cxfwd.com/public/api/enrichment/jobs/job_61hd0"
}
GET/public/api/campaigns

Campaigns

List campaigns with live performance metrics. Use POST to create one from a saved segment and PATCH to pause, resume or change the budget.

Request
curl https://api.cxfwd.com/public/api/campaigns?status=scaling \
  -H "X-API-Key: $CXFWD_API_KEY"
Response · 200
{
  "items": [
    {
      "id": "k1",
      "name": "Event designers",
      "status": "scaling",
      "daily_budget": 10,
      "sent": 1840,
      "replies": 61,
      "hot_leads": 31,
      "meetings": 9,
      "cost_per_lead": 1.69
    }
  ]
}
GET/public/api/conversations

Conversations

Read every thread the agent is handling, including intent classification. Filter by status to pull hot leads into your CRM.

Request
curl "https://api.cxfwd.com/public/api/conversations?status=hot&unread=true" \
  -H "X-API-Key: $CXFWD_API_KEY"
Response · 200
{
  "items": [
    {
      "id": "v1",
      "subject": "Larksilk x Tupelo Honey Flower",
      "status": "hot",
      "intent": "positive",
      "person_id": "ppl_7d1m2",
      "campaign_id": "k2",
      "last_message_at": "2026-11-14T09:12:00Z",
      "messages": 5
    }
  ]
}
PATCH/public/api/budgets

Budgets

Set the account-wide daily budget and per-campaign caps. The agent never spends above the lower of the two.

Request
curl -X PATCH https://api.cxfwd.com/public/api/budgets \
  -H "X-API-Key: $CXFWD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "daily_budget": 25, "campaigns": { "k1": 10, "k2": 8 } }'
Response · 200
{
  "daily_budget": 25,
  "spent_today": 11.84,
  "credits_remaining": 27.4,
  "campaigns": { "k1": 10, "k2": 8 }
}
POST/public/api/autopilot

Autopilot

Turn the fully autonomous mode on or off. When on, the agent creates new segments and campaigns by itself within your budget.

Request
curl -X POST https://api.cxfwd.com/public/api/autopilot \
  -H "X-API-Key: $CXFWD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "enabled": true, "max_new_campaigns_per_week": 2 }'
Response · 200
{
  "enabled": true,
  "max_new_campaigns_per_week": 2,
  "next_review_at": "2026-11-17T08:00:00Z"
}
GET/public/api/analytics/daily

Analytics

Daily time series of sent, replies, hot leads, meetings and cost. Ideal for dashboards and attribution.

Request
curl "https://api.cxfwd.com/public/api/analytics/daily?from=2026-10-16&to=2026-11-14" \
  -H "X-API-Key: $CXFWD_API_KEY"
Response · 200
{
  "series": [
    { "date": "2026-11-13", "sent": 132, "replies": 5, "hot": 3, "meetings": 1, "cost": 5.28 },
    { "date": "2026-11-14", "sent": 140, "replies": 6, "hot": 3, "meetings": 1, "cost": 5.6 }
  ],
  "totals": { "sent": 3140, "replies": 108, "hot": 55, "meetings": 17, "cost": 125.6 }
}