Skip to main content
POST
Rate limit tier: submission (60 req/min) — see Rate limits. Launches an eval — one graded run of a workflow’s whole dataset against a target version. The call is async and fire-and-forget: it enqueues a fresh extraction for every dataset document, pins the realized cohort into a new eval, and returns 202 immediately with an eval_id and run_number. Grading finalizes on a worker — poll the eval by its eval_id until its status leaves in_progress. The response carries counts, never internal ids: enqueued_count (documents whose extraction was queued) and failed_count (documents that failed to enqueue). Read the eval by eval_id for the per-document breakdown.

Target version

Omit version_id to evaluate the workflow’s current version; pass one to override. A workflow with no version yet returns 404 NOT_FOUND.

Idempotency

Without an Idempotency-Key, every launch creates a new eval — re-launching runs a fresh cohort and is metered accordingly (see How credits work). Supplying the header replays: a retry with the same key returns the original eval instead of launching a second run. See Idempotency.
When you omit version_id, a replayed key sent after a new version was published resolves to a different version than the first call, so the request no longer matches and returns 422. Pass an explicit version_id when you need a stable replay across version changes.

Errors

Authorizations

Authorization
string
header
required

API key issued from app.anyformat.ai/api-key. Send as Authorization: Bearer <key>.

Headers

Idempotency-Key
string | null

Optional caller-supplied key (Stripe convention). Retrying with the same key returns the original eval instead of launching (and billing) a second full-dataset run.

Path Parameters

workflow_id
string
required

Body

application/json

Body for POST /v3/workflows/{workflow_id}/evals/ (JSON, optional).

Send {} (or no body) to evaluate the workflow's current version.

version_id
string | null

Workflow version to evaluate. Omit to run against the workflow's current version; pass a value to override.

Example:

"abcdef1234"

Response

Successful Response

202 response: the eval was created and its cohort enqueued.

Exposes counts, never the internal extraction/file ids. Read the eval by eval_id for the per-document breakdown (including which documents failed to enqueue).

eval_id
string
required

Unique identifier of the new eval (hyphenated UUID); the poll handle.

Example:

"069dcc2c-e14c-7606-8000-2ee4fb17b4f9"

run_number
integer
required

Per-workflow run counter (#1, #2, …) for this eval.

Example:

3

enqueued_count
integer
required

Number of dataset documents whose extraction was enqueued for this run.

Example:

42

failed_count
integer
required

Number of dataset documents that failed to enqueue. Read the eval for the failed document ids.

Example:

0