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

  1. Sign in to app.talkory.ai โ†’ Settings โ†’ API Keys.
  2. Click Create key, give it a name, and (optionally) set a monthly spend cap.
  3. 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.
  4. 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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keep your key secret. Use it only from your own server. Never embed it in a website, mobile app, or any client-side code where users could read it. If a key is exposed, revoke it immediately from settings.

Rate 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:

HTTPcodeWhen it happensWhat to do
400invalid_requestMalformed request or failed validationFix the request format
401missing_api_keyNo Authorization headerSend the Bearer key
401invalid_api_keyKey is wrong, revoked, or expiredCreate a new key in settings
402insufficient_balanceWallet has no balance (paid endpoints)Top up your wallet
402spend_cap_reachedMonthly spend cap hit for the keyRaise the cap or wait for next month
403insufficient_scopeKey lacks the required scopeUse a key with the right scope
404not_foundEndpoint or resource does not existCheck the URL
413payload_too_largeRequest body too largeSend a smaller payload
429rate_limitedToo many requestsRetry after Retry-After seconds
500internal_errorUnexpected server errorRetry; contact support with requestId
503service_unavailableTemporary outage / maintenanceRetry shortly

Endpoint reference

GET/v1/health/llmFree ยท no wallet charge

Returns 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.

Request
curl https://api.talkory.ai/v1/health/llm \
  -H "Authorization: Bearer tk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Node.js
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);
Python
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())
Response 200 OK
{
  "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" }
  }
}
FieldTypeDescription
statusstringok if all providers are healthy, otherwise degraded
checkedAtstring (ISO 8601)When the health snapshot was taken
providersobjectPer-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.