Console coming soon
Browse documentation

Developer docs

Start from a live reference page.

Phone layout stays search-first: pick a page here, then read it in a full single-column view.

Getting Started

Models

API Reference

Operations

Enterprise

Console

Policies

Models

Nine versions, one endpoint. Same request either way. You choose with the model field.

Endpoint

GET https://evaesi.dev/api/v1/models

Selection

Omit model on /api/v1/responses and the server uses instant by default. Pass an explicit identifier from the table below to choose another model.

The catalogue

Each family ships several versions. They share a backend and differ in how hard the model works, how much context it carries, and what it costs. Rates below are read live from the published card.

idNameInput / MOutput / MMax inMax out
instantEvaEsi Instant£0.09£0.3010000032000
instant.fastEvaEsi Instant Fast£0.14£0.4510000016000
reasoningEvaEsi Reasoning£0.36£1.2010000064000
reasoning.deepEvaEsi Reasoning Deep£0.42£1.4020000096000
reasoning.verifyEvaEsi Reasoning Verify£0.45£1.5010000032000
reasoning.fastEvaEsi Reasoning Fast£0.54£1.8010000032000
elementsElements£0.80£2.7010000064000
elements.fastElements Fast£1.00£3.3010000032000
elements.codebaseElements Codebase£1.15£3.7540000064000

Every version shares a 4096-byte context window and supports streaming. Batch and tool-call surfaces are not yet exposed on any of them.

The catalog response also includes evaexplore-1 (preview: true, available: false, no context window). It is not callable. Filter on available before use.

Older model names

Older or human-readable identifiers normalise to the canonical IDs above. Either form is accepted in POST /api/v1/responses.

AliasResolves to
eva, eva-1, EvaEsi, evaesi-v1, evaesi-instant, evaesi_instant, esi-standard, eva-standard, conversation, creativeinstant
evaesi-reasoning, evaesi_reasoning, analytics, reasonreasoning
Hyphenated version ids, e.g. elements-codebase, reasoning-deepThe dotted form, e.g. elements.codebase
esielement, esielement-1, element, code, codingelements

The response

{
  "models": [
    {
      "id": "instant",
      "name": "EvaEsi Instant",
      "description": "Fast general chat with live evidence.",
      "capabilities": ["text", "conversation", "analysis"],
      "max_input_rungs": 100000,
      "max_output_rungs": 32000,
      "available": true,
      "supports_streaming": true,
      "supports_batch": false,
      "supports_tools": false,
      "context_window": 4096,
      "preview": false,
      "deprecated": false,
      "sunset_at": null
    }
  ]
}

preview is true while a model's API surface may still change without notice.

Example

cURL

curl https://evaesi.dev/api/v1/models \
    -H "Authorization: Bearer esi_dev_YOUR_KEY"

Python

import requests

response = requests.get(
    "https://evaesi.dev/api/v1/models",
    headers={"Authorization": "Bearer esi_dev_YOUR_KEY"},
)

for model in response.json()["models"]:
    status = "available" if model["available"] else "not available"
    print(f"{model['id']}: {model['name']} ({status})")

JavaScript

const response = await fetch("https://evaesi.dev/api/v1/models", {
  headers: { "Authorization": "Bearer esi_dev_YOUR_KEY" },
});

const { models } = await response.json();
models.forEach(model => {
  console.log(`${model.id}: ${model.name}`);
});