---
title: "API reference"
url: https://docs.light-ai.app/api-reference.md
canonical_url: https://docs.light-ai.app/api-reference
last_updated: 2026-10-13
summary: "Every endpoint of the Light AI API 2026-11-01, generated from the OpenAPI document."
api_status: beta
related:
  - https://docs.light-ai.app/authentication
  - https://docs.light-ai.app/errors
  - https://docs.light-ai.app/downloads
---

# API reference

> Every endpoint of the Light AI API 2026-11-01, generated from the OpenAPI document.

REST over HTTPS with JSON bodies. Generated from the [OpenAPI 3.1 document](https://docs.light-ai.app/openapi.json) (version `2026-11-01`); import it, or the [Postman collection](https://docs.light-ai.app/downloads), into your tools.

| Base URL | Use |
| --- | --- |
| `https://api.light-ai.app/v1` | Production (live and test keys) |
| `https://light-ai.app/api/v1` | Alternate host |

## Conventions

- Authenticate with `Authorization: Bearer lai_live_…` (test mode: `lai_test_…`). See [Authentication](https://docs.light-ai.app/authentication).
- Money is `{ "cents": 245000, "decimal": "2450.00", "currency": "USD" }`. `cents` is the source of truth.
- Timestamps are RFC 3339 in UTC. Ids carry a type prefix: `lead_`, `cli_`, `prj_`, `qt_`, `evt_`, `we_`, `mgen_`, `org_`.
- Errors are RFC 9457 problem details with a stable `code`. See [Errors](https://docs.light-ai.app/errors).
- Every response carries a `Request-Id` header; quote it to support.
- Pin a version with `Light-AI-Version: 2026-11-01` (defaults to the key's version).

## Account

- `GET /v1/status`: [API status](https://docs.light-ai.app/api-reference/account/get-status.md)
- `GET /v1/me`: [Who am I](https://docs.light-ai.app/api-reference/account/get-me.md)

## Leads

- `GET /v1/leads`: [List leads](https://docs.light-ai.app/api-reference/leads/list-leads.md)
- `POST /v1/leads`: [Create a lead](https://docs.light-ai.app/api-reference/leads/create-lead.md)
- `POST /v1/leads/search`: [Search leads by email, phone or address](https://docs.light-ai.app/api-reference/leads/search-leads.md)
- `GET /v1/leads/{lead_id}`: [Retrieve a lead](https://docs.light-ai.app/api-reference/leads/get-lead.md)
- `PATCH /v1/leads/{lead_id}`: [Update a lead](https://docs.light-ai.app/api-reference/leads/update-lead.md)
- `GET /v1/leads/{lead_id}/touches`: [List the repeat requests folded into a lead](https://docs.light-ai.app/api-reference/leads/list-lead-touches.md)
- `PUT /v1/leads/{object_id}/external_refs/{system}`: [Set your id for a lead](https://docs.light-ai.app/api-reference/leads/put-lead-external-ref.md)
- `DELETE /v1/leads/{object_id}/external_refs/{system}`: [Remove your id for a lead](https://docs.light-ai.app/api-reference/leads/delete-lead-external-ref.md)

## Clients

- `GET /v1/clients`: [List clients](https://docs.light-ai.app/api-reference/clients/list-clients.md)
- `POST /v1/clients`: [Create or update a client](https://docs.light-ai.app/api-reference/clients/upsert-client.md)
- `POST /v1/clients/search`: [Search clients by email, phone or address](https://docs.light-ai.app/api-reference/clients/search-clients.md)
- `GET /v1/clients/{client_id}`: [Retrieve a client](https://docs.light-ai.app/api-reference/clients/get-client.md)
- `PATCH /v1/clients/{client_id}`: [Update a client](https://docs.light-ai.app/api-reference/clients/update-client.md)
- `GET /v1/clients/{client_id}/properties`: [List a client's properties](https://docs.light-ai.app/api-reference/clients/list-client-properties.md)
- `POST /v1/clients/{client_id}/properties`: [Add a property to a client](https://docs.light-ai.app/api-reference/clients/add-client-property.md)
- `PUT /v1/clients/{object_id}/external_refs/{system}`: [Set your id for a client](https://docs.light-ai.app/api-reference/clients/put-client-external-ref.md)
- `DELETE /v1/clients/{object_id}/external_refs/{system}`: [Remove your id for a client](https://docs.light-ai.app/api-reference/clients/delete-client-external-ref.md)

## Projects

- `GET /v1/projects`: [List projects](https://docs.light-ai.app/api-reference/projects/list-projects.md)
- `GET /v1/projects/{project_id}`: [Retrieve a project](https://docs.light-ai.app/api-reference/projects/get-project.md)
- `POST /v1/projects/{project_id}/stage`: [Move a project to another pipeline stage](https://docs.light-ai.app/api-reference/projects/move-project-stage.md)
- `GET /v1/pipeline/stages`: [Pipeline stage totals](https://docs.light-ai.app/api-reference/projects/list-pipeline-stages.md)
- `PUT /v1/projects/{object_id}/external_refs/{system}`: [Set your id for a project](https://docs.light-ai.app/api-reference/projects/put-project-external-ref.md)
- `DELETE /v1/projects/{object_id}/external_refs/{system}`: [Remove your id for a project](https://docs.light-ai.app/api-reference/projects/delete-project-external-ref.md)

## Quotes

- `GET /a/{token}`: [Durable quote image link](https://docs.light-ai.app/api-reference/quotes/open-asset-link.md)
- `GET /v1/quotes`: [List published quotes](https://docs.light-ai.app/api-reference/quotes/list-quotes.md)
- `GET /v1/quotes/{quote_id}`: [Retrieve a quote](https://docs.light-ai.app/api-reference/quotes/get-quote.md)
- `GET /v1/quotes/{quote_id}/assets`: [Get signed links to a quote's images and PDF](https://docs.light-ai.app/api-reference/quotes/get-quote-assets.md)
- `GET /v1/quotes/{quote_id}/timeline`: [A quote's timeline (published, viewed, decided)](https://docs.light-ai.app/api-reference/quotes/get-quote-timeline.md)
- `POST /v1/quotes/{quote_id}/mark_approved`: [Record an approval made outside Light AI](https://docs.light-ai.app/api-reference/quotes/mark-quote-approved.md)
- `POST /v1/quotes/{quote_id}/mark_declined`: [Record a decline made outside Light AI](https://docs.light-ai.app/api-reference/quotes/mark-quote-declined.md)
- `GET /v1/catalog`: [The organization's line-item catalog](https://docs.light-ai.app/api-reference/quotes/list-catalog.md)
- `PUT /v1/quotes/{object_id}/external_refs/{system}`: [Set your id for a quote](https://docs.light-ai.app/api-reference/quotes/put-quote-external-ref.md)
- `DELETE /v1/quotes/{object_id}/external_refs/{system}`: [Remove your id for a quote](https://docs.light-ai.app/api-reference/quotes/delete-quote-external-ref.md)

## Mockups

- `POST /v1/projects/{project_id}/photo_uploads`: [Create a photo upload](https://docs.light-ai.app/api-reference/mockups/create-photo-upload.md)
- `POST /v1/projects/{project_id}/mockups`: [Generate mockups](https://docs.light-ai.app/api-reference/mockups/create-mockup-generation.md)
- `GET /v1/mockup_generations/{mockup_generation_id}`: [Retrieve a mockup generation](https://docs.light-ai.app/api-reference/mockups/get-mockup-generation.md)

## Website forms

- `GET /v1/forms`: [List website request forms](https://docs.light-ai.app/api-reference/website-forms/list-forms.md)
- `GET /v1/forms/{form_id}`: [Retrieve a website request form](https://docs.light-ai.app/api-reference/website-forms/get-form.md)
- `PATCH /v1/forms/{form_id}`: [Update a website request form](https://docs.light-ai.app/api-reference/website-forms/update-form.md)

## Events

- `GET /v1/events`: [List events](https://docs.light-ai.app/api-reference/events/list-events.md)
- `GET /v1/events/{event_id}`: [Retrieve an event](https://docs.light-ai.app/api-reference/events/get-event.md)

## Webhooks

- `GET /v1/webhook_endpoints`: [List your webhook endpoints](https://docs.light-ai.app/api-reference/webhooks/list-webhook-endpoints.md)
- `POST /v1/webhook_endpoints`: [Subscribe a webhook endpoint](https://docs.light-ai.app/api-reference/webhooks/create-webhook-endpoint.md)
- `GET /v1/webhook_endpoints/{endpoint_id}`: [Retrieve a webhook endpoint](https://docs.light-ai.app/api-reference/webhooks/get-webhook-endpoint.md)
- `PATCH /v1/webhook_endpoints/{endpoint_id}`: [Update a webhook endpoint](https://docs.light-ai.app/api-reference/webhooks/update-webhook-endpoint.md)
- `DELETE /v1/webhook_endpoints/{endpoint_id}`: [Unsubscribe (delete) a webhook endpoint](https://docs.light-ai.app/api-reference/webhooks/delete-webhook-endpoint.md)
- `POST /v1/webhook_endpoints/{endpoint_id}/rotate_secret`: [Rotate the signing secret](https://docs.light-ai.app/api-reference/webhooks/rotate-webhook-secret.md)
- `POST /v1/webhook_endpoints/{endpoint_id}/test`: [Send a test event](https://docs.light-ai.app/api-reference/webhooks/test-webhook-endpoint.md)
- `GET /v1/webhook_endpoints/{endpoint_id}/deliveries`: [List an endpoint's deliveries](https://docs.light-ai.app/api-reference/webhooks/list-webhook-deliveries.md)
- `POST /v1/webhook_endpoints/{endpoint_id}/replay`: [Replay events to an endpoint](https://docs.light-ai.app/api-reference/webhooks/replay-webhook-deliveries.md)
- `POST /v1/webhook_deliveries/{delivery_id}/retry`: [Retry one delivery now](https://docs.light-ai.app/api-reference/webhooks/retry-webhook-delivery.md)

## Inbound

- `POST /v1/inbound/{source_id}`: [Receive a lead (inbound source, header secret)](https://docs.light-ai.app/api-reference/inbound/receive-inbound-lead.md)
- `POST /v1/inbound/{source_id}/{token}`: [Receive a lead (inbound source, secret in the URL)](https://docs.light-ai.app/api-reference/inbound/receive-inbound-lead-url-secret.md)
- `POST /v1/inbound/google-ads/{source_id}`: [Google Ads lead form webhook](https://docs.light-ai.app/api-reference/inbound/receive-google-ads-lead.md)

## Partners

- `GET /v1/partner/grants`: [List the organizations connected to your partner account](https://docs.light-ai.app/api-reference/partners/list-partner-grants.md)
- `PATCH /v1/partner/grants/{grant_id}`: [Set your reference and metadata for a connected organization](https://docs.light-ai.app/api-reference/partners/update-partner-grant.md)
- `POST /v1/partner/grants/{grant_id}/confirm`: [Confirm the organization an unbound connect link reached](https://docs.light-ai.app/api-reference/partners/confirm-partner-grant.md)
- `POST /v1/partner/grants/{grant_id}/decline`: [Decline a pending grant (wrong organization)](https://docs.light-ai.app/api-reference/partners/decline-partner-grant.md)
- `GET /v1/partner/connect_links`: [List your connect links](https://docs.light-ai.app/api-reference/partners/list-connect-links.md)
- `POST /v1/partner/connect_links`: [Create a connect link](https://docs.light-ai.app/api-reference/partners/create-connect-link.md)
- `POST /v1/partner/connect_links/{connect_link_id}/revoke`: [Revoke an unused connect link](https://docs.light-ai.app/api-reference/partners/revoke-connect-link.md)

## Test mode

- `POST /v1/test_helpers/leads/{lead_id}/{action}`: [Simulate a quote lifecycle step for a test lead](https://docs.light-ai.app/api-reference/test-mode/run-test-helper.md)
