Submit a new lead for validation, enrichment, scoring, and distribution. Leads are processed in real-time (~2s end-to-end).
ENDPOINT
POST https://api.policychat.com/api/v1/leads
REQUEST BODY
{
"source": "quotewizard",
"vertical": "life_insurance",
"lead_type": "web_form",
"consumer": {
"first_name": "Sarah",
"last_name": "Mitchell",
"email": "sarah.m@email.com",
"phone": "+14805550142",
"address": {
"street": "1234 Oak Lane",
"city": "Phoenix",
"state": "AZ",
"zip": "85016"
},
"date_of_birth": "1978-03-15",
"gender": "female"
},
"coverage": {
"type": "term_life",
"amount": 500000,
"term_years": 20
},
"tcpa_consent": true,
"consent_timestamp": "2026-05-27T15:30:00Z",
"consent_url": "https://quotewizard.com/life/form",
"ip_address": "72.14.207.99",
"user_agent": "Mozilla/5.0..."
}
RESPONSE — 201 Created
{
"id": "lead_8f2a9c4b",
"status": "accepted",
"validation": {
"phone": "valid",
"email": "valid",
"tcpa": "compliant",
"dnc": "clear"
},
"enrichment": {
"data_points": 42,
"household_income": "$145,000",
"homeowner": true,
"credit_tier": "excellent",
"children": 2,
"marital_status": "married"
},
"score": 96,
"routed_to": "agent_fernando_rodriguez",
"distribution_model": "exclusive",
"price": 28.00,
"margin": 14.20,
"delivered_at": "2026-05-27T15:30:01.8Z",
"latency_ms": 1823
}
ERROR CODES
| Code | Status | Description |
| 400 | REJECTED | Missing required fields or invalid format |
| 409 | DUPLICATE | Lead already exists (phone+vertical dedupe within 30 days) |
| 422 | FAILED_VALIDATION | Phone invalid, DNC match, or TCPA non-compliant |
| 429 | RATE_LIMITED | Exceeded 100 leads/second per source |
curl -X POST https://api.policychat.com/api/v1/leads \
-H "Content-Type: application/json" \
-H "Authorization: Bearer pk_live_abc123..." \
-d '{
"source": "my-website",
"vertical": "life_insurance",
"consumer": {
"first_name": "Sarah",
"last_name": "Mitchell",
"phone": "+14805550142",
"email": "sarah@email.com",
"address": { "state": "AZ", "zip": "85016" }
},
"coverage": { "type": "term_life", "amount": 500000 },
"tcpa_consent": true,
"consent_timestamp": "2026-05-27T15:30:00Z"
}'