Skip to main content
POST
Create a reward session

Authorizations

Authorization
string
header
required

Your workspace API key, e.g. sk_sovereign_..., sent as Authorization: Bearer <key>.

Body

application/json
reward
object
required
rewardBudgetUsd
number
required

Held in the wallet at creation; released on stop, expiry or exhaustion. Max 10000.

agentic
boolean
default:false

Whole-trajectory rewards need trace-unit judges; single-turn rewards need request-unit ones.

ttlHours
number
default:72

Session expiry (max 720). Scoring past it is refused and the hold released.

label
string
Maximum string length: 120
anchor
object
tasks
object[]

Optional taskset (≤ 2,000). Stored on the session so GET /v1/reward/sessions/{id}/environment?format=tasks hands back tasks.jsonl.

Response

Created, with certificates.

id
string
status
enum<string>

OVERBUDGET: the reward budget's kill switch fired. STOPPED: stopped by you or expired.

Available options:
ACTIVE,
COMPLETED,
OVERBUDGET,
STOPPED,
FAILED
agentic
boolean
reward
object
label
string | null
budget_usd
number
spent_usd
number

Ledger-true judge spend so far.

expires_at
string<date-time>
created_at
string<date-time>
stopped_at
string<date-time> | null
certificates
object[]

One signed judge certificate per reward criterion (see GET /v1/criteria/{id}/certificate): sensitivity, specificity, κ with intervals, trust, what voids it.

anchor
object | null
task_count
integer

Tasks stored on the session (0 when the trainer keeps its own).