API reference
Every operation of Evanesca's OpenAI-compatible API: its parameters, the call in cURL, Python, JavaScript and Go, its responses — and, for each one, where it runs and what it costs.
SoonOpening soon: what follows describes the service as it will work.
Base URL and key
https://evanesca.app/api/v1Send your key in the Authorization: Bearer header; keys start with sk-eva-. The catalogue needs no key (authentication). OpenAI's official SDKs work as they are: give this URL to base_url (baseURL in JavaScript) (first request).
Endpoints
| Endpoint | What it does | Key |
|---|---|---|
POST/chat/completions | Runs a chat model; streaming supported. | Required |
POST/messages | The same chat models in Anthropic's Messages format; streaming supported. | Required |
POST/messages/count_tokens | Estimates, for free, the input tokens of a Messages request. | Required |
GET/models | Lists the catalogue: chat, embedding and image models. | None |
GET/models/{model} | Returns one model — what models.retrieve() calls in the OpenAI SDKs. | None |
POST/embeddings | Turns text into vectors. | Required |
POST/images/generations | Generates images from a text prompt. | Required |
POST/images/edits | Generates portraits from 1 to 4 face photos. | Required |
Formats served
Evanesca serves OpenAI's Chat Completions format and, on the same models, Anthropic's Messages format (POST /messages, for Claude Code and Anthropic's SDKs). It does not serve OpenAI's newer Responses API (/responses): a tool that defaults to it must be switched to chat completions — the integrations page says where.
Errors
Errors come back as JSON in OpenAI's shape: an error object with a readable message and a stable type (every status).
{
"error": {
"message": "Insufficient credit balance. Add credit to your account to continue.",
"type": "insufficient_credit"
}
}