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

Elements

Coding and Studio model. Same API, dedicated route tuned for code, edits, and structured output.

Overview

Elements is the coding model and the explicit entry point for Studio work. Route through Elements directly when you want code, structured edits, or deterministic file-shaped output without the evidence-gather pass that Reasoning runs.

Endpoint

POST https://evaesi.dev/api/v1/responses

Pass "model": "elements" to route here. Older callers can use "code", "coding", "element", "esielement", or "esielement-1": the gateway normalises them all to elements.

Use Cases

  • Writing new code from a natural-language description
  • Refactors, renames, and structured edits across a file or snippet
  • Code review, explanation, and translation between languages
  • Studio-grade output (test scaffolds, config blocks, schemas) where shape matters

Limits

FieldValue
Max input rungs100,000
Max output rungs64,000
Context window4,096 model bytes (billing rungs are a separate unit)
StreamingYes
BatchNo. The route is mounted but returns 503 EVA_UNAVAILABLE
ToolsNo

Billing

Elements is billed at the base rate, 1.0×. Input and output rungs are metered separately and reported on usage plus the x-evaesi-*-rungs headers.

The request

FieldTypeRequiredDescription
promptstringYesPrompt text. Max 100,000 bytes.
modelstringYesPass "elements" to route here.
max_output_rungsu64?NoOutput cap, validated against the model's 64,000 limit (400 INVALID_REQUEST above it). Falls back to 64,000.
code_modeboolNoHint the dispatcher this is code work.
streambool?NoServer-sent event streaming.

Response

{
  "request_id": "req_a112...",
  "content": "fn parse(input: &str) -> Result<Doc, ParseError> {\n    ...\n}",
  "sources": [],
  "sources_url": "/api/v1/sources/req_a112...",
  "usage": {
    "input_rungs": 412,
    "output_rungs": 1180,
    "total_rungs": 1592
  },
  "model": "elements"
}

Examples

cURL

curl -X POST https://evaesi.dev/api/v1/responses \
    -H "Authorization: Bearer esi_dev_YOUR_KEY" \
    -H "Content-Type: application/json" \
  -d '{
    "prompt": "Write a Rust function that parses RFC3339 dates without external crates.",
    "model": "elements",
    "code_mode": true,
    "max_output_rungs": 4096
  }'

Python

import requests

response = requests.post(
    "https://evaesi.dev/api/v1/responses",
    headers={"Authorization": "Bearer esi_dev_YOUR_KEY"},
    json={
        "prompt": "Write a Rust function that parses RFC3339 dates without external crates.",
        "model": "elements",
        "code_mode": True,
        "max_output_rungs": 4096,
    },
)

data = response.json()
print(data["content"])

JavaScript

const response = await fetch("https://evaesi.dev/api/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer esi_dev_YOUR_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    prompt: "Write a Rust function that parses RFC3339 dates without external crates.",
    model: "elements",
    code_mode: true,
    max_output_rungs: 4096,
  }),
});

const data = await response.json();
console.log(data.content);