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/responsesPass "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
| Field | Value |
|---|---|
| Max input rungs | 100,000 |
| Max output rungs | 64,000 |
| Context window | 4,096 model bytes (billing rungs are a separate unit) |
| Streaming | Yes |
| Batch | No. The route is mounted but returns 503 EVA_UNAVAILABLE |
| Tools | No |
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
| Field | Type | Required | Description |
|---|---|---|---|
prompt | string | Yes | Prompt text. Max 100,000 bytes. |
model | string | Yes | Pass "elements" to route here. |
max_output_rungs | u64? | No | Output cap, validated against the model's 64,000 limit (400 INVALID_REQUEST above it). Falls back to 64,000. |
code_mode | bool | No | Hint the dispatcher this is code work. |
stream | bool? | No | Server-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);