Light AIDocs Beta Open Light AI

API reference

GETGet signed links to a quote's images and PDF

GET /v1/quotes/{quote_id}/assets: Fresh signed URLs valid for 60 minutes.

GEThttps://api.light-ai.app/v1/quotes/{quote_id}/assets

Fresh signed URLs valid for 60 minutes. An image that no longer exists is removed: true with a null URL. With quotes:asset_links, each also has a durable_url you can store in a CRM.

Scopequotes:read
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#

quote_idstringrequired#
The quote id (qt_…). Id prefix qt_.

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#

The quote's assets.

objectstringrequired#
Always quote_assets.
quote_idstringrequired#
Id prefix qt_.
mockupsobject[]required#
mockups[].idstringrequired#
mockups[].titlestring | nullrequired#
mockups[].urlstring | nullrequired#
Fresh signed URL valid for 60 minutes; null when the image was removed.
mockups[].expires_attimestamp | nullrequired#
RFC 3339 timestamp (UTC, milliseconds).
mockups[].removedbooleanrequired#
mockups[].durable_urlstring | null#
With quotes:asset_links: a link that keeps working while the customer link is active (at most 30 days).
schematicsobject[]required#
schematics[].idstringrequired#
schematics[].titlestring | nullrequired#
schematics[].urlstring | nullrequired#
Fresh signed URL valid for 60 minutes; null when the image was removed.
schematics[].expires_attimestamp | nullrequired#
RFC 3339 timestamp (UTC, milliseconds).
schematics[].removedbooleanrequired#
schematics[].durable_urlstring | null#
With quotes:asset_links: a link that keeps working while the customer link is active (at most 30 days).
pdfobject | nullrequired#
pdf.idstringrequired#
pdf.sha256string | nullrequired#
pdf.urlstring | nullrequired#
pdf.expires_attimestamp | nullrequired#
RFC 3339 timestamp (UTC, milliseconds).
pdf.removedbooleanrequired#

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