Skip to main content
GET
Python (SDK)

Authorizations

Authorization
string
header
required

Gateway auth: send Authorization: Bearer <mka1-api-key>. For multi-user server-side integrations, you can also send X-On-Behalf-Of: <external-user-id>.

Headers

X-On-Behalf-Of
string

Optional external end-user identifier forwarded by the API gateway.

Path Parameters

suite_id
string
required

Query Parameters

suite_version
integer

Narrow the ranking to runs recorded against one version of the suite. Scores are only comparable within a version, so leaderboard consumers should pass the version they score. A version the suite does not have returns an empty list, not 404, so it reads the same as a version with no completed runs yet.

Required range: 1 <= x <= 2147483647
per_group
integer
default:5

How many most-recent completed runs to keep per ranking group. A group is (model, targeted task) for task_ids-restricted runs — historical imports commit one run per model and task, so their boards assemble at per_group=1 — and (model) for unrestricted runs, which cover every task of their version. More than 1 lets a consumer fall back to an earlier run for a task whose newest run lacks usable stats.

Required range: 1 <= x <= 20
model
string

Narrow the ranking to one model's groups. Useful when the consumer already knows its board axes; for discovering and paging past a truncated response, use cursor/next_cursor. An empty value is rejected rather than treated as omitted.

Required string length: 1 - 255
cursor
string

Opaque resume cursor from a previous truncated response's next_cursor. Continues the ranking exactly where the previous page stopped — inside a model or a rank tier when that is where the cut landed. Pass it back verbatim; a malformed value is a 400. Page with a fixed filter set, like the run-list cursor.

Required string length: 1 - 2048

Response

200 - application/json

OK

object
any
required
data
object[]
required

The deduplicated runs behind groups, newest first.

groups
object[]
required

The server's group assignments — build boards from these, not from run.models/run.task_ids. Ordered by model, then task id with the covers-everything group first within each model, then rank; that ordering is contract.

truncated
boolean
required

True when a server ceiling trimmed the aggregate. Whole runs are kept in (rank, model, task) order — never dropped for being old; resume with cursor: next_cursor.

next_cursor
string | null
required

Set when truncated: pass as cursor on the next request and union the responses until truncated is false to assemble the complete aggregate. Null when this response is complete.