LimnOpenAPI

Developers

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.

Authenticate

Mint a secret key under Settings → API keys. Send it on every request:

Authorization: Bearer limn_<your-key>

Embed widgets use a publishable key (`limn_pub_…`) in the page source — those routes are listed under Embed below.

Scopes

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.

  • email.send
  • ai.chat
  • ai.speech
  • audit.run
  • contacts.read
  • calendar.read
  • calendar.write
  • calls.create
  • contacts.write
  • events
  • agency.read
  • agency.write

Errors

Failures return JSON shaped like this, with an HTTP status that matches the problem:

{
  "error": {
    "code": "invalid_request",
    "message": "Check the contact details"
  }
}

Idempotency

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.

Endpoints

Download OpenAPI 3.1
MethodPathWhat it does
GET/api/v1/contactsList contacts
POST/api/v1/contactsCreate a contact
GET/api/v1/contacts/searchSearch 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/appointmentsList appointments
POST/api/v1/appointmentsBook an appointment
GET/api/v1/appointments/slotsList 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/callsCreate a video call room
POST/api/v1/email/sendSend an email
POST/api/v1/email/logLog an outbound email without sending
POST/api/v1/eventsFire a workflow trigger event
GET/api/v1/audit/runFetch a website audit report
POST/api/v1/audit/runStart a website audit
POST/api/v1/ai/chatChat with a configured persona
POST/api/v1/ai/chat/streamStream a chat reply
POST/api/v1/ai/speechSynthesize speech from text
GET/api/v1/agency/locationsList businesses
POST/api/v1/agency/locationsCreate 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}/usageRead business usage for a billing period
POST/api/v1/agency/locations/{id}/archiveArchive a business
GET/api/v1/embed/configWidget bootstrap config
POST/api/v1/embed/leadCapture a lead from an embed
POST/api/v1/embed/chatSend an embed chat message
POST/api/v1/embed/auditRun 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