API reference
GETRetrieve a website request form
GET /v1/forms/{form_id}: Status, install snippets, allowed websites, fields, consent, questions and instant preview settings with this month's use.
GET
https://api.light-ai.app/v1/forms/{form_id}Status, install snippets, allowed websites, fields, consent, questions and instant preview settings with this month's use.
| 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. |
Path parameters#
The form id (
form_…). Id prefix form_.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 form.
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.Shown across the whole row when it starts one (e.g. ASAP).
The last day of the year it can be picked (recurring, the contractor's timezone); afterwards the form greys it out and a submitted pick is refused. Example: October until { month: 10, day: 31 }.
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).
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 |