The public HTTP API for contacts, tags, deals and their pipelines, conversations, invoices, forms, tasks, 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, and does nothing else. A secret key made before scopes existed has an empty list, which holds the 10 scopes that existed then: email.send, ai.chat, ai.speech, audit.run, contacts.read, calendar.read, calendar.write, calls.create, contacts.write, events. Every other scope, the agency pair included, is held only by a key that lists it.
Failures return JSON shaped like this, with an HTTP status that matches the problem:
Every POST accepts an optional Idempotency-Key header. Send a fresh unique value with each new request and the same value when you retry it: for 24 hours, a retry of a request that succeeded returns the first response instead of creating a second record.
A retry is answered with Idempotent-Replayed: true. The same key on a different request is refused with 422, and a retry that arrives while the first is still running is refused with 409. A request that failed leaves its key free, so the retry runs again.
| 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 |
| POST | /api/v1/contacts/{id}/tags | Add tags to a contact |
| DELETE | /api/v1/contacts/{id}/tags | Remove tags from a contact |
| GET | /api/v1/tags | List tags with their contact counts |
| GET | /api/v1/pipelines | List pipelines and their stages |
| GET | /api/v1/opportunities | List deals |
| POST | /api/v1/opportunities | Create a deal |
| GET | /api/v1/opportunities/{id} | Get a deal |
| PATCH | /api/v1/opportunities/{id} | Update, move or mark a deal |
| GET | /api/v1/conversations | List team conversations |
| GET | /api/v1/conversations/{id}/messages | List a conversation's messages |
| GET | /api/v1/invoices | List invoices |
| GET | /api/v1/invoices/{id} | Get an invoice with its lines |
| GET | /api/v1/forms | List forms and their fields |
| GET | /api/v1/forms/{id}/submissions | List a form's submissions |
| GET | /api/v1/tasks | List tasks |
| POST | /api/v1/tasks | Create a task |
| GET | /api/v1/tasks/{id} | Get a task |
| PATCH | /api/v1/tasks/{id} | Update, complete or reopen a task |
| GET | /api/v1/reports | Read report numbers over a period: leads, bookings, calls, reviews, posts and visitors, the same numbers the app's reports show |
| 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/content | Read content hook performance and Studio capabilities |
| POST | /api/v1/content | Run a Studio content action (script, assets, edit, batch, performance) |
| 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/lookup | Find a business by its external id |
| GET | /api/v1/agency/locations/reselling | List businesses reselling is on for |
| GET | /api/v1/agency/locations/{id}/usage | Read business usage for a billing period |
| GET | /api/v1/agency/locations/{id}/wallet | Read a business's wallet balance |
| 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
POST
/api/v1/contacts/{id}/tags
Add tags to a contact
DELETE
/api/v1/contacts/{id}/tags
Remove tags from a contact
GET
/api/v1/tags
List tags with their contact counts
GET
/api/v1/pipelines
List pipelines and their stages
GET
/api/v1/opportunities
List deals
POST
/api/v1/opportunities
Create a deal
GET
/api/v1/opportunities/{id}
Get a deal
PATCH
/api/v1/opportunities/{id}
Update, move or mark a deal
GET
/api/v1/conversations
List team conversations
GET
/api/v1/conversations/{id}/messages
List a conversation's messages
GET
/api/v1/invoices
List invoices
GET
/api/v1/invoices/{id}
Get an invoice with its lines
GET
/api/v1/forms
List forms and their fields
GET
/api/v1/forms/{id}/submissions
List a form's submissions
GET
/api/v1/tasks
List tasks
POST
/api/v1/tasks
Create a task
GET
/api/v1/tasks/{id}
Get a task
PATCH
/api/v1/tasks/{id}
Update, complete or reopen a task
GET
/api/v1/reports
Read report numbers over a period: leads, bookings, calls, reviews, posts and visitors, the same numbers the app's reports show
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/content
Read content hook performance and Studio capabilities
POST
/api/v1/content
Run a Studio content action (script, assets, edit, batch, performance)
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/lookup
Find a business by its external id
GET
/api/v1/agency/locations/reselling
List businesses reselling is on for
GET
/api/v1/agency/locations/{id}/usage
Read business usage for a billing period
GET
/api/v1/agency/locations/{id}/wallet
Read a business's wallet balance
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