{"openapi":"3.1.0","info":{"title":"Limn public API","version":"1.0.0","description":"Authenticated HTTP API for contacts, appointments, mail, events, AI, agency businesses, and embed widgets. Errors use `{ error: { code, message } }` today; RFC 9457 problem details and a standard Idempotency-Key header on every POST are planned."},"servers":[{"url":"https://launchwithlimn.com","description":"Production"}],"tags":[{"name":"contacts"},{"name":"appointments"},{"name":"calls"},{"name":"email"},{"name":"events"},{"name":"audit"},{"name":"ai"},{"name":"agency"},{"name":"embed"},{"name":"v1"}],"paths":{"/api/v1/contacts":{"get":{"summary":"List contacts","description":"List contacts Requires the `contacts.read` scope.","tags":["contacts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"post":{"summary":"Create a contact","description":"Create a contact Requires the `contacts.write` scope.","tags":["contacts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/contacts/search":{"get":{"summary":"Search contacts","description":"Search contacts Requires the `contacts.read` scope.","tags":["contacts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/contacts/{id}":{"get":{"summary":"Get a contact","description":"Get a contact Requires the `contacts.read` scope.","tags":["contacts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"patch":{"summary":"Update a contact","description":"Update a contact Requires the `contacts.write` scope.","tags":["contacts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"delete":{"summary":"Delete a contact","description":"Delete a contact Requires the `contacts.write` scope.","tags":["contacts"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/appointments":{"get":{"summary":"List appointments","description":"List appointments Requires the `calendar.read` scope.","tags":["appointments"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"post":{"summary":"Book an appointment","description":"Book an appointment Requires the `calendar.write` scope.","tags":["appointments"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/appointments/slots":{"get":{"summary":"List open appointment slots","description":"List open appointment slots Requires the `calendar.read` scope.","tags":["appointments"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/appointments/{id}":{"get":{"summary":"Get an appointment","description":"Get an appointment Requires the `calendar.read` scope.","tags":["appointments"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"patch":{"summary":"Update an appointment","description":"Update an appointment Requires the `calendar.write` scope.","tags":["appointments"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"delete":{"summary":"Cancel an appointment","description":"Cancel an appointment Requires the `calendar.write` scope.","tags":["appointments"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/calls":{"post":{"summary":"Create a video call room","description":"Create a video call room Requires the `calls.create` scope.","tags":["calls"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/email/send":{"post":{"summary":"Send an email","description":"Send an email Requires the `email.send` scope.","tags":["email"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/email/log":{"post":{"summary":"Log an outbound email without sending","description":"Log an outbound email without sending Requires the `email.send` scope.","tags":["email"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/events":{"post":{"summary":"Fire a workflow trigger event","description":"Fire a workflow trigger event Requires the `events` scope.","tags":["events"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/audit/run":{"get":{"summary":"Fetch a website audit report","description":"Fetch a website audit report Requires the `audit.run` scope.","tags":["audit"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"post":{"summary":"Start a website audit","description":"Start a website audit Requires the `audit.run` scope.","tags":["audit"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/ai/chat":{"post":{"summary":"Chat with a configured persona","description":"Chat with a configured persona Requires the `ai.chat` scope.","tags":["ai"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/ai/chat/stream":{"post":{"summary":"Stream a chat reply","description":"Stream a chat reply Requires the `ai.chat` scope.","tags":["ai"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/ai/speech":{"post":{"summary":"Synthesize speech from text","description":"Synthesize speech from text Requires the `ai.speech` scope.","tags":["ai"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/agency/locations":{"get":{"summary":"List businesses","description":"List businesses Requires the `agency.read` scope.","tags":["agency"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"post":{"summary":"Create a business","description":"Create a business Requires the `agency.write` scope.","tags":["agency"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/agency/locations/{id}":{"get":{"summary":"Get a business","description":"Get a business Requires the `agency.read` scope.","tags":["agency"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}},"patch":{"summary":"Update a business","description":"Update a business Requires the `agency.write` scope.","tags":["agency"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/agency/locations/{id}/usage":{"get":{"summary":"Read business usage for a billing period","description":"Read business usage for a billing period Requires the `agency.read` scope.","tags":["agency"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/agency/locations/{id}/archive":{"post":{"summary":"Archive a business","description":"Archive a business Requires the `agency.write` scope.","tags":["agency"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/embed/config":{"get":{"summary":"Widget bootstrap config","description":"Widget bootstrap config","tags":["embed"],"security":[{"publishableKey":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/embed/lead":{"post":{"summary":"Capture a lead from an embed","description":"Capture a lead from an embed","tags":["embed"],"security":[{"publishableKey":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/embed/chat":{"post":{"summary":"Send an embed chat message","description":"Send an embed chat message","tags":["embed"],"security":[{"publishableKey":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}},"/api/v1/embed/audit":{"post":{"summary":"Run an embed website audit","description":"Run an embed website audit","tags":["embed"],"security":[{"publishableKey":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"403":{"description":"Authenticated but not allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"limn_…","description":"Secret org API key. Header: `Authorization: Bearer limn_<hex>`. Grantable scopes: email.send, ai.chat, ai.speech, audit.run, contacts.read, calendar.read, calendar.write, calls.create, contacts.write, events, agency.read, agency.write."},"publishableKey":{"type":"apiKey","in":"query","name":"key","description":"Publishable embed key (`limn_pub_…`), also accepted as `Authorization: Bearer limn_pub_…` on embed routes."}},"schemas":{"V1Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine code for the failure."},"message":{"type":"string","description":"Human-readable explanation."}},"additionalProperties":false}},"additionalProperties":false}}}}