The public HTTP API for contacts, appointments, mail, events, AI, agency businesses, and embed widgets. Download the OpenAPI 3.1 catalogue, or browse the live endpoints below.
Mint a secret key under Settings → API keys. Send it on every request:
Embed widgets use a publishable key (`limn_pub_…`) in the page source — those routes are listed under Embed below.
Each key lists the scopes it may use. Older secret keys with an empty list keep full access to the non-agency surface; agency scopes must be granted explicitly.
Failures return JSON shaped like this, with an HTTP status that matches the problem:
Email send and email log accept an optional idempotencyKey in the JSON body so a retried request returns the original message. Every other POST creates a new record each time it arrives, so a retry of one of those can create a duplicate.
| Method | Path | What it does |
|---|---|---|
| GET | /api/v1/contacts | List contacts |
| POST | /api/v1/contacts | Create a contact |
| GET | /api/v1/contacts/search | Search contacts |
| GET | /api/v1/contacts/{id} | Get a contact |
| PATCH | /api/v1/contacts/{id} | Update a contact |
| DELETE | /api/v1/contacts/{id} | Delete a contact |
| GET | /api/v1/appointments | List appointments |
| POST | /api/v1/appointments | Book an appointment |
| GET | /api/v1/appointments/slots | List open appointment slots |
| GET | /api/v1/appointments/{id} | Get an appointment |
| PATCH | /api/v1/appointments/{id} | Update an appointment |
| DELETE | /api/v1/appointments/{id} | Cancel an appointment |
| POST | /api/v1/calls | Create a video call room |
| POST | /api/v1/email/send | Send an email |
| POST | /api/v1/email/log | Log an outbound email without sending |
| POST | /api/v1/events | Fire a workflow trigger event |
| GET | /api/v1/audit/run | Fetch a website audit report |
| POST | /api/v1/audit/run | Start a website audit |
| POST | /api/v1/ai/chat | Chat with a configured persona |
| POST | /api/v1/ai/chat/stream | Stream a chat reply |
| POST | /api/v1/ai/speech | Synthesize speech from text |
| GET | /api/v1/agency/locations | List businesses |
| POST | /api/v1/agency/locations | Create a business |
| GET | /api/v1/agency/locations/{id} | Get a business |
| PATCH | /api/v1/agency/locations/{id} | Update a business |
| GET | /api/v1/agency/locations/{id}/usage | Read business usage for a billing period |
| POST | /api/v1/agency/locations/{id}/archive | Archive a business |
| GET | /api/v1/embed/config | Widget bootstrap config |
| POST | /api/v1/embed/lead | Capture a lead from an embed |
| POST | /api/v1/embed/chat | Send an embed chat message |
| POST | /api/v1/embed/audit | Run an embed website audit |
GET
/api/v1/contacts
List contacts
POST
/api/v1/contacts
Create a contact
GET
/api/v1/contacts/search
Search contacts
GET
/api/v1/contacts/{id}
Get a contact
PATCH
/api/v1/contacts/{id}
Update a contact
DELETE
/api/v1/contacts/{id}
Delete a contact
GET
/api/v1/appointments
List appointments
POST
/api/v1/appointments
Book an appointment
GET
/api/v1/appointments/slots
List open appointment slots
GET
/api/v1/appointments/{id}
Get an appointment
PATCH
/api/v1/appointments/{id}
Update an appointment
DELETE
/api/v1/appointments/{id}
Cancel an appointment
POST
/api/v1/calls
Create a video call room
POST
/api/v1/email/send
Send an email
POST
/api/v1/email/log
Log an outbound email without sending
POST
/api/v1/events
Fire a workflow trigger event
GET
/api/v1/audit/run
Fetch a website audit report
POST
/api/v1/audit/run
Start a website audit
POST
/api/v1/ai/chat
Chat with a configured persona
POST
/api/v1/ai/chat/stream
Stream a chat reply
POST
/api/v1/ai/speech
Synthesize speech from text
GET
/api/v1/agency/locations
List businesses
POST
/api/v1/agency/locations
Create a business
GET
/api/v1/agency/locations/{id}
Get a business
PATCH
/api/v1/agency/locations/{id}
Update a business
GET
/api/v1/agency/locations/{id}/usage
Read business usage for a billing period
POST
/api/v1/agency/locations/{id}/archive
Archive a business
GET
/api/v1/embed/config
Widget bootstrap config
POST
/api/v1/embed/lead
Capture a lead from an embed
POST
/api/v1/embed/chat
Send an embed chat message
POST
/api/v1/embed/audit
Run an embed website audit