Skip to main content
One request asks edith-1.1 a set of questions about one agent run. This page covers the default format, POST /v1/decisions. To keep another decision API’s format, see Compatible formats.

Connect

There is no cold start.

Request

Send a JSON body to POST /v1/decisions:
Request body
string
edith-1.1. Other vendors’ model names are accepted and echoed back; see Compatible formats.
object | string | array
required
The run. Send a trial object for the best answers. A string, or an array of user messages with input_text parts, is read as is. To add screenshots or other images, use input_image parts; see Images.
array
required
1 to 128 questions about the run.
string
auto, default, or flex. Omit it, or use auto or default, for standard processing. Flex processing costs half as much and takes longer.

Question types

Each question has a type and instructions. The optional name must be unique within the request and is echoed in the answer. Unknown fields are rejected.
A claim. The answer is the probability that the run establishes it.
Write instructions as a statement, not a question. A claim the record neither supports nor contradicts scores low.

The trial object

Only trajectory is required.
Long trial objects are trimmed: the start, end, and suspicious steps are retained within the limits below. Other steps become one-line digests. Strings and message arrays are not trimmed; if either leaves no room for a question, the request returns 400 context_length_exceeded.

Images

edith-1.1 reads images alongside text, including screenshots from a computer-use run. Images are off by default. Enable them for your account through any of these controls: Changing the setting through the CLI or SDK requires a write key. Allow up to one minute for it to apply. Until images are enabled, requests with images return 403 images_not_enabled. Send input as user messages with input_text and input_image content parts. For this HTTP example, run pip install requests, save a PNG as screenshot.png, set EVOLVE_API_KEY, and enable images first.
Python (HTTP)

Image input rules

These parts also work inside input messages. Replace the placeholder data with your image’s base64 bytes.
image_url part
image part
Each image larger than 1.6 megapixels (1,638,400 pixels) is scaled down to fit, keeping its aspect ratio. See Usage and billing for what an image costs and Limits for the rest. Other formats take images too; see Compatible formats.

Response

Answers follow the order of questions. A response to the predicate request above has this shape:
Choice and score questions return these answer objects:
Include the x-request-id response header when you report a problem. The non-JSON errors listed under Errors do not have this header.

Long requests

Requests over 131,072 tokens take minutes in every format. JSON parsers ignore the leading spaces. If processing fails after the status is sent, the body contains the usual error object plus http_status.
An HTTP 200 does not guarantee success. Check for http_status before reading answers, as the image example does. Failed requests are not charged. A streamed request cancelled before its answer is ready is not charged.

Flex processing

Set service_tier to flex in any format to pay 50% of the standard price. Flex uses the same request and response shape, but waits for spare capacity.
HTTP
Omitting service_tier, or sending auto or default, uses standard processing. Check the response body for errors even when the HTTP status is 200. Flex suits evals, backfills and offline trace review. Use the default tier when you need answers right away.

Batch API (private beta)

For large offline workloads, the Batch API takes many requests at once and returns every answer when the batch finishes. Email team@evolvingmachines.ai with your expected volume and run lengths to get access.

Usage and billing

Only input tokens are billed. usage.input_tokens is the billed count: the run once, plus each question’s tokens. Images use the same input-token price: usage.input_tokens includes image tokens. Image requests also report them in usage.input_tokens_details.image_tokens.

Errors

param names the field at fault, if there is one. Two more errors aren’t JSON and have no x-request-id:
  • 503 with no Retry-After: briefly unavailable. Retry with backoff.
  • 504: nothing was sent for 60 seconds. Retry.

Limits

Last modified on November 9, 2026