Talkory API Documentation
Call Talkory programmatically over HTTPS. Authenticate with an API key you create in your account settings, and pass it as a Bearer token. The base URL for all endpoints is https://api.talkory.ai.
Getting started
- Sign in to app.talkory.ai โ Settings โ API Keys.
- Click Create key, give it a name, and (optionally) set a monthly spend cap.
- Copy the key that starts with
tk_live_. It is shown only once โ store it somewhere safe. If you lose it, revoke it and create a new one. - Send it as a Bearer token on every request (see below).
Authentication
Every request must include an Authorization header with your secret key:
Authorization: Bearer tk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxRate limits
Each key is limited to 30 requests per minute by default. Requests that exceed the limit receive a 429 response with a Retry-After header (seconds to wait). Responses also include X-RateLimit-Limit and X-RateLimit-Remaining.
Errors
All errors return a consistent JSON shape:
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Slow down and retry.",
"status": 429,
"requestId": "req_a1b2c3d4"
}
}Include the requestId when contacting support. Possible codes:
| HTTP | code | When it happens | What to do |
|---|---|---|---|
| 400 | invalid_request | Malformed request or failed validation | Fix the request format |
| 401 | missing_api_key | No Authorization header | Send the Bearer key |
| 401 | invalid_api_key | Key is wrong, revoked, or expired | Create a new key in settings |
| 402 | insufficient_balance | Wallet has no balance (paid endpoints) | Top up your wallet |
| 402 | spend_cap_reached | Monthly spend cap hit for the key | Raise the cap or wait for next month |
| 403 | insufficient_scope | Key lacks the required scope | Use a key with the right scope |
| 404 | not_found | Endpoint or resource does not exist | Check the URL |
| 413 | payload_too_large | Request body too large | Send a smaller payload |
| 429 | rate_limited | Too many requests | Retry after Retry-After seconds |
| 500 | internal_error | Unexpected server error | Retry; contact support with requestId |
| 503 | service_unavailable | Temporary outage / maintenance | Retry shortly |
Endpoint reference
/v1/health/llmFree ยท no wallet chargeReturns the current health of every LLM provider Talkory uses โ GPT, Claude, Gemini, Grok and Perplexity. Requires a valid key with the health:read scope (the default scope on every new key). Results are cached for up to 5 minutes.
curl https://api.talkory.ai/v1/health/llm \
-H "Authorization: Bearer tk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"const res = await fetch("https://api.talkory.ai/v1/health/llm", {
headers: { Authorization: `Bearer ${process.env.TALKORY_API_KEY}` },
});
const data = await res.json();
console.log(data.status, data.providers);import os, requests
res = requests.get(
"https://api.talkory.ai/v1/health/llm",
headers={"Authorization": f"Bearer {os.environ['TALKORY_API_KEY']}"},
)
print(res.json()){
"status": "ok",
"checkedAt": "2026-06-27T10:00:00.000Z",
"providers": {
"gpt": { "status": "ok" },
"claude": { "status": "ok" },
"gemini": { "status": "ok" },
"grok": { "status": "error" },
"perplexity": { "status": "ok" }
}
}| Field | Type | Description |
|---|---|---|
status | string | ok if all providers are healthy, otherwise degraded |
checkedAt | string (ISO 8601) | When the health snapshot was taken |
providers | object | Per-provider status: each is ok or error |
FAQ
How do I authenticate with the Talkory API?
Create an API key at app.talkory.ai under Settings, then send it as a Bearer token in the Authorization header on every request. Keys are shown only once and should only be used from server-side code.
What is the base URL for the Talkory API?
All Talkory API endpoints are served from https://api.talkory.ai.
What are the Talkory API rate limits?
Each API key is limited to 30 requests per minute by default. Requests over the limit receive a 429 response with a Retry-After header.
Is the GET /v1/health/llm endpoint free?
Yes. It never touches your wallet or records a charge. It requires the health:read scope, included by default on every new key, and results are cached for up to 5 minutes.
What does the Talkory health check endpoint return?
A status field (ok or degraded), a checkedAt ISO 8601 timestamp, and a providers object with a per-provider ok/error status for GPT, Claude, Gemini, Grok, and Perplexity.
Need a key? Head to your API settings.