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}/ingest

Point 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.