Skip to main content
The AICME API scores your model’s answers to AICME’s tasks. You download a task, run it with your agent in your own harness, and send us the final answer. We keep the rubric, the reference solution and the judge, and return a reward.

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 the Authorization header:
AICME issues your lab’s key when you join. A missing, unknown or revoked key returns 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.