Skip to content
Everruns Cloud is open in early access. Run agents without operating the platform.

Start an async dataset export for an eval run.

POST
/v1/evals/{eval_id}/runs/{run_id}/dataset
curl --request POST \
--url https://app.everruns.com/api/v1/evals/example/runs/example/dataset \
--header 'Content-Type: application/json' \
--data '{ "filters": { "min_score": 0.8, "pass": true }, "format": "trajectory", "redaction": { "redact_content": true } }'

The NDJSON is produced by a background job; fetch it once ready via GET .../dataset/{dataset_id}.

eval_id
required
string

Eval ID

run_id
required
string

Eval run ID

Media typeapplication/json

Request body for POST /v1/evals/{eval_id}/runs/{run_id}/dataset.

object
filters

Per-case selection filters.

object
min_score

Keep only cases whose mean scorer value is >= this (0.0–1.0).

number | null format: double
Example
0.8
pass

Keep only cases whose pass/fail equals this.

boolean | null
Example
true
format

Output schema (defaults to trajectory).

string
Allowed values: trajectory sft atif
redaction

Redaction controls.

object
redact_content

When true, replace message text/tool content with a placeholder, keeping only structure (roles, tool names, ids). Secret scrubbing still runs.

boolean
Example
true

Export enqueued

Media typeapplication/json

An async dataset-export handle: the durable result of enqueuing a dataset export from a completed eval run. The body (NDJSON) is only populated on the GET .../dataset/{dataset_id} detail view once status is completed.

object
body

The produced NDJSON. Only present on the detail view once completed.

string | null
created_at
required

When the export was enqueued.

string format: date-time
error_message

Failure detail when status is failed.

string | null
eval_run_id
required

The eval run this dataset was exported from.

string
id
required

External identifier (evaldataset_<32-hex>).

string
record_count

Number of NDJSON records (surviving cases). Set on completion.

integer | null format: int64
status
required

Export lifecycle status.

string
Allowed values: pending running completed failed
updated_at
required

When the export was last updated.

string format: date-time
Example
{
"body": "{\"source_key\": \"evalrun_a/evalresult_b\"}",
"created_at": "2026-01-15T10:30:00Z",
"error_message": "Export failed",
"eval_run_id": "evalrun_01933b5a000070008000000000000001",
"id": "evaldataset_01933b5a000070008000000000000001",
"record_count": 24,
"status": "pending",
"updated_at": "2026-01-15T10:30:00Z"
}

Eval run not found

Media typeapplication/json

Standard error response.

Wire shape is RFC 9457 Problem Details: every error response includes title and status, and may include detail, code, allowed_actions, retry_after_seconds, instance, and type. The content type is rewritten to application/problem+json with the application/problem+json content type.

object
allowed_actions

Recovery actions the caller can take next.

Array<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

  • Error recovery — ErrorResponse.allowed_actions carries rels like retry, retry-later, unarchive, get-existing so the agent knows the right next call after a 4xx/429.
  • Entity hypermedia — WithUrls<T>.allowed_actions carries state-aware rels like cancel, events, self, update on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed rel vocabulary distinguishes them.

object
hint

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null
href

Absolute (preferred) or relative URL the caller may invoke directly. Always present on entity hypermedia actions (WithUrls<T>.allowed_actions); optional on error-recovery actions (ErrorResponse.allowed_actions) where the matching operation_id is enough and the URI is implicit from the failed call.

string | null
method

HTTP method to use against href. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null
operation_id

OpenAPI operationId the caller should invoke. Lets an MCP client resolve the call without parsing href.

string | null
rel
required

Link relation describing the action. Examples: self, cancel, pause, resume, events, retry, retry-later, unarchive, get-existing, delete, update.

string
schema_ref

OpenAPI $ref to the request-body schema, when the action takes one (e.g. #/components/schemas/UpdateSessionRequest). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null
code

Stable, machine-readable error code (snake_case).

string | null
detail

Human-readable explanation specific to this occurrence.

string | null
instance

Request URI for this occurrence.

string | null
retry_after_seconds

Seconds the caller should wait before retrying (429 / transient 503).

integer | null format: int32
status
required

HTTP status code; mirrors the response status line.

integer format: int32
title
required

Short, human-readable summary of the problem (e.g. “Not Found”).

string
type

RFC 9457 problem type URI. Optional; identifies the problem class.

string | null
Example
{
"allowed_actions": [
{
"method": "POST"
}
],
"code": "session_not_found",
"detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.",
"instance": "/v1/sessions/session_01933b5a000070008000000000000001",
"retry_after_seconds": 30,
"status": 404,
"title": "Session not found",
"type": "https://docs.everruns.com/errors/session_not_found"
}