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.
GET
https://api.light-ai.app/v1/quotes/{quote_id}/assetsFresh 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.
| Scope | quotes:read |
|---|---|
| Credential | API key: Authorization: Bearer lai_live_… (or lai_test_…). Partner keys add Light-AI-Organization. |
| Test mode | Works with test keys against simulated test objects. |
Path parameters#
The quote id (
qt_…). Id prefix qt_.Headers#
Partner keys: the connected organization to act for (
org_…). Organization keys may omit it. Id prefix org_.Pin a dated API version (defaults to the key's version). One of:
2026-11-01.Response 200#
The quote's assets.
Always
quote_assets.Id prefix
qt_.Fresh signed URL valid for 60 minutes; null when the image was removed.
RFC 3339 timestamp (UTC, milliseconds).
With quotes:asset_links: a link that keeps working while the customer link is active (at most 30 days).
Fresh signed URL valid for 60 minutes; null when the image was removed.
RFC 3339 timestamp (UTC, milliseconds).
With quotes:asset_links: a link that keeps working while the customer link is active (at most 30 days).
RFC 3339 timestamp (UTC, milliseconds).
RFC 3339 timestamp (UTC, milliseconds).
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). |
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 |