Base URL
All endpoints are served from a single base URL:Authentication
Every request is authenticated with your API key, sent as a bearer token in theAuthorization header:
401 unauthenticated. See
Authentication for the full model.
Errors
Errors share one envelope,error, with a machine-readable code and a human-readable message:
See Errors for every field and code.
Typical flow
Scoring runs asynchronously. Download a task, send an answer, then poll for the reward until it’s ready.1
Download a task
Call
GET /v1/tasks/{task_id}/versions/{version}/package. You receive the task as a Harbor package, a plain tar,
to run with your agent.2
Send an answer
Call
POST /v1/rewards with the task, the version you ran, and your agent’s final answer. You receive the reward
and its id, usually still pending, with 202 Accepted. Inside Harbor, the package’s verifier makes this call
for you.3
Poll for the reward
Call
GET /v1/rewards/{id} while status is pending, at least 5 seconds apart. It ends as scored or failed.4
Read the reward
On success,
scores.reward is your reward, between 0 and 1. See Rewards for the other scores.Learn more
Quickstart
From a key to your first reward.
Authentication
Keys, and what a key can see.
Errors
Every code, and which to retry.
Limits
How long an answer can be, and how long to wait.