Light AIDocs Beta Open Light AI

API reference

PUTSet your id for a lead

PUT /v1/leads/{object_id}/external_refs/{system}: Writes back your CRM id.

PUThttps://api.light-ai.app/v1/leads/{object_id}/external_refs/{system}

Writes back your CRM id. References are namespaced by integration: you can never overwrite another integration's ids.

Scopeleads:write
CredentialAPI key: Authorization: Bearer lai_live_… (or lai_test_…). Partner keys add Light-AI-Organization.
Test modeWorks with test keys against simulated test objects.

Path parameters#

object_idstringrequired#
The lead id, or the receipt id (rcpt_…) of your own credential's request.
systemstringrequired#
Lowercase system name, e.g. jobber.

Headers#

Light-AI-Organizationstring#
Partner keys: the connected organization to act for (org_…). Organization keys may omit it. Id prefix org_.
Light-AI-Versionstring#
Pin a dated API version (defaults to the key's version). One of: 2026-11-01.

Request body#

idstringrequired#
The object's id in that system. 1–255 characters.
namespacestring | null#
Optional sub-namespace in that system. null or "": none. At most 120 characters.

Response 200#

The object's external references.

objectstringrequired#
Always external_refs.
dataobject[]required#
data[].systemstringrequired#
data[].namespacestring | nullrequired#
data[].idstringrequired#
data[].ownerstringrequired#
self: written by your integration (editable); others are read-only. One of: self, organization, partner.
data[].read_onlybooleanrequired#

Errors#

StatusMeaning
400Bad request. bad_request, test_mode_mismatch, test_mode_unsupported, unsupported_api_version
401Missing or invalid credential. authentication_required, invalid_api_key, api_key_revoked, api_key_expired, api_key_suspended
403Not allowed. insufficient_scope, plan_upgrade_required, organization_paused, organization_off_season, api_disabled, api_access_not_enabled, ip_not_allowed, forbidden
404Not found (also for objects of other organizations and for organizations without an active grant).
409Conflict. stale_state, conflict, idempotency_in_progress, idempotency_scope_mismatch, quote_already_decided, quote_not_current, billing_review_required
413Request bodies are limited to 256 KB.
415The body is not JSON: send Content-Type: application/json. unsupported_media_type
422Validation failed. idempotency_key_reused
429Rate limited or daily cap reached. See Retry-After and the RateLimit headers. rate_limited, daily_cap_reached
500Unexpected server error. Safe to retry with exponential backoff; quote the Request-Id to support. internal_error
503Temporarily unavailable. Retry with exponential backoff. service_unavailable