API reference
GETList website request forms
GET /v1/forms: Newest first.
GET
https://api.light-ai.app/v1/formsNewest first. Website request forms are live configuration: test keys always get an empty list.
| Scope | forms: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. |
Query parameters#
Page size, 1–100 (default 25). 1–100.
next_cursor from the previous page. At most 400 characters.
One of:
active, paused, archived.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#
A page of forms.
Always
list.Id prefix
form_.Always
form.One of:
active, paused, archived.One of:
christmas_lights, custom.The id in the install snippet (
ec_…).The snippet to paste on the website.
Top-level page link (null unless the hosted page is on).
Websites allowed to show the form (origins;
https://*.example.com wildcards).In the order the form asks them (the owner can drag questions in the editor; follow-ups always come right after their parent question). The fixed address & photo card follows
surfaces and primary_color, then contact details; the request is sent from the last question.One of:
color, choice, multi_choice, toggle, text.How the request's AI mockup appears on the form (it starts on the homeowner's photo):
slider (default, a draggable before/after divider), flicker, day_night, bloom, sweep or curtain; slider_after hands the five other styles over to the slider when they end. The form's own choice, else the company default. Set in the app.One of:
slider, flicker, day_night, bloom, sweep, curtain.AI mockup previews per request: always 1 (one AI mockup per request since October 2026). Kept for compatibility: PATCH still accepts 1 or 2 and stores 1.
Always 5.
Credits used or held by previews this UTC month.
RFC 3339 timestamp (UTC, milliseconds).
RFC 3339 timestamp (UTC, milliseconds).
Pass as
cursor to fetch the next page.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 |