API reference
POSTReceive a lead (inbound source, header secret)
POST /v1/inbound/{source_id}: For HighLevel workflows, Zapier, Make, n8n, Sweep&Go and form tools.
https://api.light-ai.app/v1/inbound/{source_id}For HighLevel workflows, Zapier, Make, n8n, Sweep&Go and form tools. Authenticate with Authorization: Bearer lai_whin_… or X-Light-AI-Source-Secret. The body is either the POST /v1/leads shape or any JSON your source's field map understands. Always receipt-only. Per-source limits: 60/min and the daily limit. Only the contact can refuse a lead (a name, and an email or a phone): a country name is normalized (United States → US), and an address or other optional part that cannot be used is left out (its raw value kept in custom_fields.inbound_*) instead of losing the lead.
| Credential | Inbound source secret: Authorization: Bearer lai_whin_… or X-Light-AI-Source-Secret: lai_whin_…. |
|---|---|
| Test mode | Works with test keys (test objects only). |
| Idempotency | Idempotency-Key supported. See Idempotency. |
Path parameters#
src_…). Id prefix src_.Headers#
Idempotent-Replayed: true). 8–128 characters.Request body#
api, google_ads_lead_form, google_lsa, meta_lead_ad, highlevel, hubspot, jobber, service_autopilot, realgreen, sweepandgo, deeplawn, zapier, n8n, make, crm_import, other.jobber, hubspot, highlevel.TX. At most 120 characters.Response 202#
Received (identical for new, repeat and replayed leads).
receipt.rcpt_.received.Errors#
| Status | Meaning |
|---|---|
400 | Bad request. bad_request, test_mode_mismatch, test_mode_unsupported, unsupported_api_version |
401 | Missing or invalid credential. authentication_required, invalid_api_key, api_key_revoked, api_key_expired, api_key_suspended |
403 | Not allowed. insufficient_scope, plan_upgrade_required, organization_paused, organization_off_season, api_disabled, api_access_not_enabled, ip_not_allowed, forbidden |
404 | Not found (also for objects of other organizations and for organizations without an active grant). |
409 | Conflict. stale_state, conflict, idempotency_in_progress, idempotency_scope_mismatch, quote_already_decided, quote_not_current, billing_review_required |
413 | Request bodies are limited to 256 KB. |
415 | The body is not JSON: send Content-Type: application/json. unsupported_media_type |
422 | Validation failed. idempotency_key_reused |
429 | Rate limited or daily cap reached. See Retry-After and the RateLimit headers. rate_limited, daily_cap_reached |
500 | Unexpected server error. Safe to retry with exponential backoff; quote the Request-Id to support. internal_error |
503 | Temporarily unavailable. Retry with exponential backoff. service_unavailable |