Light AIDocs Beta Open Light AI

API reference

GETList an endpoint's deliveries

GET /v1/webhook_endpoints/{endpoint_id}/deliveries: Deliveries of the last 30 days with their attempts (status, latency, error class, a short response excerpt).

GEThttps://api.light-ai.app/v1/webhook_endpoints/{endpoint_id}/deliveries

Deliveries of the last 30 days with their attempts (status, latency, error class, a short response excerpt).

Scopewebhooks:manage
CredentialAPI key: Authorization: Bearer lai_live_… (or lai_test_…). Partner keys add Light-AI-Organization.
Test modeWorks with test keys (test objects only).

Path parameters#

endpoint_idstringrequired#
The endpoint id (we_…). Id prefix we_.

Query parameters#

limitinteger#
Page size, 1–100 (default 25). 1–100.
cursorstring#
next_cursor from the previous page. At most 400 characters.
statusstring#
The status shown on each delivery: pending (not attempted yet) and retrying (failed, waiting for its next attempt) are distinct. One of: pending, retrying, leased, succeeded, abandoned, cancelled.

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.

Response 200#

A page of deliveries, newest first.

objectstringrequired#
Always list.
dataobject[]required#
data[].idstringrequired#
Id prefix whd_.
data[].objectstringrequired#
Always webhook_delivery.
data[].event_idstringrequired#
Id prefix evt_.
data[].event_typestring | nullrequired#
One of: lead.created, lead.touched, lead.updated, lead.mockup_ready, client.created, client.updated, client.deleted, project.created, project.stage_changed, quote.published, quote.viewed, quote.external_link_clicked, quote.change_requested, quote.approved, quote.declined, quote.expired, quote.link_disabled, quote.link_enabled, quote.superseded, mockup.completed, mockup.failed, organization.entitlement_changed, grant.created, grant.revoked, api_key.expiring, webhook_endpoint.disabled, ping.
data[].endpoint_idstringrequired#
Id prefix we_.
data[].statusstringrequired#
One of: pending, retrying, leased, succeeded, abandoned, cancelled.
data[].cancel_reasonstring | nullrequired#
data[].replaybooleanrequired#
data[].attempt_countintegerrequired#
data[].next_attempt_attimestamp | nullrequired#
RFC 3339 timestamp (UTC, milliseconds).
data[].last_status_codeinteger | nullrequired#
data[].last_error_classstring | nullrequired#
data[].created_attimestamprequired#
RFC 3339 timestamp (UTC, milliseconds).
data[].completed_attimestamp | nullrequired#
RFC 3339 timestamp (UTC, milliseconds).
data[].attemptsobject[] | nullrequired#
data[].attempts[].attempted_attimestamprequired#
RFC 3339 timestamp (UTC, milliseconds).
data[].attempts[].status_codeinteger | nullrequired#
data[].attempts[].latency_msintegerrequired#
data[].attempts[].error_classstring | nullrequired#
data[].attempts[].response_excerptstring | nullrequired#
data[].attempts[].request_headersobject | nullrequired#
has_morebooleanrequired#
next_cursorstring | nullrequired#
Pass as cursor to fetch the next page.

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