Skip to content

Documentation

Send your first request.

The API speaks the OpenAI chat-completions format. If your code already talks to that, changing the base URL is the whole integration.

Get a key

Create an account, confirm your email, then generate a key under API keys. Keys start with clst_live_ and are shown once — we only ever store a hash.

Base URL

https://api.calest.dev/v1
Use calest as the model name. Which model actually runs is decided per task and reported back with the answer.

Limits

Requests are billed by usage, not per call, and every response carries what it cost. Rate limits are per account and generous enough that normal use never meets them — a 429 means back off and retry, not that something is broken.

A complete request

request.sh
curl https://api.calest.dev/v1/chat/completions \  -H "Authorization: Bearer clst_live_..." \  -H "Content-Type: application/json" \  -d '{    "model": "calest",    "messages": [{"role": "user", "content": "Summarise this quarter."}]  }'

Errors

Every failure returns the same shape: a status code, a stable code, a sentence you can show a user, and a request id to quote at us.

  • 400invalid_requestSomething in the body is missing or malformed.
  • 401unauthorizedNo key, or a key that has been revoked.
  • 403forbiddenThe account exists but isn't allowed to do this yet.
  • 402insufficient_creditsOut of credit. Top up and retry.
  • 429rate_limitedToo many requests. Back off and retry.
  • 5xxinternal / upstreamOur side, or the model provider. Safe to retry.

Something missing here? Tell us what you were trying to build and we'll write it up. More about the API.