Docs
Sending leads into LeadMove
Everything you need to evaluate the ingestion API before signing up. Each pipeline gets its own webhook URL and API key; your traffic sources POST leads to it, and LeadMove validates, dedupes, scores, and routes them to your buyers in real time.
The webhook endpoint
When you create a pipeline, LeadMove generates a unique ingestion URL and API key:
POST https://leadmove.io/api/campaigns/{pipelineId}/ingestPoint any traffic source at it — a form backend, an ad platform's webhook, a publisher's posting system, or your own code. (The API path says campaigns for backwards compatibility — it's the same object as a pipeline.)
Authentication
Pass the pipeline API key in the X-API-Key header (preferred) or as an api_key query parameter for systems that can't set headers:
curl -X POST https://leadmove.io/api/campaigns/{campaignId}/ingest \
-H "X-API-Key: lm_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"phone": "+14155550123",
"first_name": "Jane",
"zip": "94107",
"source": "meta-ads"
}'Both JSON and application/x-www-form-urlencoded bodies are accepted. Keys can be rotated from the dashboard at any time.
Payload & validation
You define the field schema per pipeline — names, types, and which fields are required. On arrival every lead is validated against that schema, checked for duplicates (by email and phone, across pipelines, with a configurable window), and scored.
Success returns 200:
{
"success": true,
"leadId": "cmm…",
"displayId": "LD-XXXXXXXX",
"duplicate": false
}Error responses
401 Missing or invalid API key 403 Pipeline is paused — only active pipelines accept leads 409 Duplicate lead (per your pipeline's dedup policy) 422 Validation failed — response lists missingFields 429 Rate limited (60 req/min per pipeline) — see Retry-After header
Rate-limit responses include X-RateLimit-Remaining and Retry-After headers so senders can back off cleanly.
Delivery to your buyers
Routed leads are delivered to each buyer's configured endpoints: webhook (HTTP POST with field mapping to match their CRM), email, Google Sheets, or SMS. Delivery is typically sub-second from ingestion.
If a buyer's webhook fails, LeadMove retries with exponential backoff. After repeated failures a circuit breaker pauses that endpoint and alerts you — one bad endpoint never blocks the rest of your routing. Every attempt is logged lead-by-lead, so you always know which buyer received what, and when.
Not using webhooks?
CSV import and manual entry are first-class: upload a file or add a lead from the dashboard, and it goes through the same validation, dedup, scoring, and routing pipeline.
Want to see it live? Your webhook URL exists 5 minutes after signup.
Start your 14-day free trial or ask us a technical question.