KYRA·

Section 01 · API

Kyra API.

Pro and Scale include API access. You create a key in settings, and we show the full key once.

Getting access

Pro and Scale include API access. Open settings, create a key, and copy it then. We show the full key once. You can revoke a key there and create a new one.

Authentication

Pass your API key in the Authorization header as a bearer token:

Authorization: Bearer <your-api-key>

Do not commit a key to a public repo. If one leaks, revoke it in settings and create a new one.

Example: send a chat message

The widget chat endpoint is the most mature surface and a good preview of what the public API will look like. It's already live and powers the embedded widget on customer sites.

POST/api/widget/<workerId>/chat

curl -X POST https://meetkyra.com/api/widget/<workerId>/chat \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Do you do emergency callouts on Sundays?",
    "visitor": { "name": "Alex", "email": "alex@example.com" }
  }'

Response

{
  "conversationId": "1c2a9e3f-...",
  "message": "Yes. I can check Sunday against the hours you set.",
  "tier": "pro",
  "model": "claude-sonnet-4-7",
  "provider": "anthropic",
  "fellBack": false
}

Rate limits

Widget chat allows 30 requests per minute for each widget and IP address. A 429 response includes a Retry-After header and X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Routes

  • GET/api/v1/contacts· List contacts
  • POST/api/v1/contacts· Create a contact
  • GET/api/v1/conversations· List conversations
  • GET/api/v1/conversations/{id}/messages· List messages
  • GET/api/v1/analytics/funnel· Funnel counts

Heads up

The same routes are listed in /api/v1/openapi.json.