Lead Ingestion API

Documentation for Suppliers

v1.0
Quick Start
Submit leads to our platform in 3 simple steps
1

Get Your API Key

Your seller will provide you with an API key

2

Format Your Lead

Include required fields in JSON format

3

POST to Endpoint

Send your lead to our API

Authentication

All API requests must include your API key in the Authorization header using Bearer token format.

Authorization: Bearer YOUR_API_KEY

🔐 Keep your API key secure! Never expose it in client-side code or public repositories.

Endpoints
POST/api/leadsSubmit a new lead

Request Body

Send a JSON object with lead data. The seller field is required to specify which seller organization should receive the lead. Use the seller's seller code (recommended - 8-character stable identifier that never changes) or slug (human-readable but may change if seller renames). Required fields depend on the campaign category.

💡 Query Parameters Supported

You can also pass lead fields as URL query parameters. This is useful for form builders (Typeform, Jotform, etc.) and simple integrations.

POST /api/leads?seller=ACME1234&category=Solar&state=TX&firstName=John&phone=555-1234

Body fields take precedence over query parameters if the same field is in both.

{
  "seller": "ACME1234",
  "category": "Auto Insurance",
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@email.com",
  "phone": "555-123-4567",
  "state": "TX",
  "zip": "75001",
  "city": "Dallas"
}

Required Fields

FieldTypeDescription
sellerstring
Seller code (8 chars) - recommended
or slug (may change if seller renames)
categorystringMust match an active campaign
firstNamestringLead's first name
lastNamestringLead's last name
phonestringContact phone number
statestring2-letter state code (e.g., TX, CA)
Code Examples
Quick integration examples in popular languages
curl -X POST https://your-domain.com/api/leads \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "seller": "ACME1234",
    "category": "Auto Insurance",
    "firstName": "John",
    "lastName": "Doe",
    "phone": "555-123-4567",
    "email": "john@email.com",
    "state": "TX"
  }'
Responses

Success Response (200)

{
  "success": true,
  "lead_id": "abc123",
  "status": "sold",
  "price": 45.00,
  "buyer_ids": ["buyer-uuid-1"]
}

Pending Response (200)

Lead accepted but no buyer available yet

{
  "success": true,
  "lead_id": "abc123",
  "status": "pending"
}
Error Codes
CodeErrorDescription
401Invalid API KeyAPI key missing or invalid
400No matching campaignCategory doesn't match any active campaign
400Missing required fieldA required field is missing from request
429Rate limit exceededToo many requests, slow down
500Internal errorServer error, contact support
Rate Limits

API requests are rate limited to ensure fair usage and platform stability.

EndpointLimitWindow
POST /api/leads60 requestsper minute, per API key

Rate limit headers: Check X-RateLimit-Remaining and X-RateLimit-Reset in responses.

Need help? Contact your seller for support.