On this page

POST/campaigns

Maps search launch → creates a dashboard campaign. Discovery continues asynchronously.

0 credits at launch; 1 credit per email lead stored later. Rate class: create_campaign (default 6/min).

Request

POST /campaigns
X-API-Key: sk_live_...
Content-Type: application/json
{
  "userQuery": "dentists in Austin TX",
  "numberOfSearch": 50
}
FieldRequiredNotes
userQueryYesBusiness category + location; max 2000 chars
numberOfSearchNo1–500, default 25
leadDuplicateProtectionAcrossCampaignsNoboolean (optional; omit unless you need it)
acceptedBroadeningNoboolean (optional; omit unless you need it)
previewIdNostring, max 128 (optional; omit unless you need it)

Response

{
  "campaignId": "search-xyz",
  "status": "CREATED",
  "requestedLeadTarget": 50,
  "creditsReservedEstimate": 50
}

Poll GET /campaigns/:id and GET …/leads as discovery completes.

Errors

Error codeWhen
insufficient_creditsNot enough credits for discovery
validation_errorBad body
conflictConflicting launch
upstream_unavailableTemporary failure

MCP

Tool: create_campaign.