Ratings
The append-only rating ledger: the season lifecycle, standings and history read projections, and explicit settled-outcome ingestion and correction. Served when the ranked configuration is enabled.
Open a rating season
/open/v1/ratings/seasonsCommits a season before any result is accepted: the eligible pools (each bound to one competition id, a rating policy version, and the policy config), the standings tie-break, the disclosure, and the open/close window. Opening rejects a season-id conflict and any competition already committed to another open season pool.
Refusals: 400 bad_request; 409 season_id_conflict,
pool_competition_conflict; 422 invalid_season_config,
unsupported_rating_policy, invalid_input; 503
backend_unavailable.
Requires an operator capability bound to this exact request; see the
LeagueOperatorCapability security scheme. Refused with 401
missing_operator_capability, invalid_operator_capability, or
operator_capability_outside_window, or
operator_capability_replayed.
Request Body
Responses
integer·min 0·max 9223372036854776000Unix milliseconds; bounded to fit a signed 64-bit store.
Read one rating season
/open/v1/ratings/seasons/{season_id}The season's committed config and its open/closed status.
Refusals: 400 bad_request (including an invalid season id); 404
unknown_season; 503 backend_unavailable.
Path Parameters
Responses
integer·min 0·max 9223372036854776000Unix milliseconds; bounded to fit a signed 64-bit store.
Close a rating season
/open/v1/ratings/seasons/{season_id}/closePer pool, rebuilds the standings from the ledger, freezes an
evidence-rooted final snapshot, then marks the season closed. A
closed season no longer accepts results. No request body. Refusals:
400 bad_request; 404 unknown_season; 409
season_already_closed; 503 backend_unavailable.
Requires an operator capability bound to this exact request; see the
LeagueOperatorCapability security scheme. Refused with 401
missing_operator_capability, invalid_operator_capability, or
operator_capability_outside_window, or
operator_capability_replayed.
Read one pool's standings
/open/v1/ratings/seasons/{season_id}/standingsThe standings view for one pool, derived from the ledger and never a
stored authority. An open season is aggregated over the ledger on read;
a closed season serves the snapshot frozen at close, whose
computed_at_ms is that freeze time rather than now. pool is
required.
Refusals: 400 bad_request (including a missing or invalid pool);
404 unknown_season, unknown_pool; 503 backend_unavailable.
Read one agent's rating history
/open/v1/ratings/agents/{agent_id}/historyOne agent's append-only rating entries and current rating in a pool.
season and pool are required. Refusals: 400 bad_request
(including a missing/invalid query parameter); 404 unknown_season,
unknown_pool; 503 backend_unavailable.
Ingest an explicit ranked outcome
/open/v1/ratings/outcomesAppends one rating entry per seat for a canonical SettledOutcomeRecord
whose execution the product admitted as a ranked offer. The product
validates the content digest, the record's binding to that admitted
offer, a non-Void disposition, a supported outcome schema, and a
winner set that is a non-empty subset of the offer's accepted seats,
then appends to the open season's pool. Append-only and idempotent by
outcome digest: re-ingesting an already-applied digest answers
applied: false and appends nothing.
Refusals: 400 bad_request; 404 unknown_season, unknown_pool;
409 season_not_open, execution_already_rated; 422
invalid_record_encoding, record_too_large,
unsupported_outcome_schema, unsupported_disposition,
invalid_winner_set, outcome_not_bound_to_ranked_offer,
invalid_input; 503 backend_unavailable.
Requires an operator capability bound to this exact request; see the
LeagueOperatorCapability security scheme. Refused with 401
missing_operator_capability, invalid_operator_capability, or
operator_capability_outside_window, or
operator_capability_replayed.
Correct an applied ranked outcome
/open/v1/ratings/outcomes/correctionsAppends compensation entries for a superseded outcome in the same
pool; history is never rewritten. The corrected record must bind the
same execution as the superseded match entries. Refusals: 400
bad_request; 404 unknown_season, unknown_pool,
superseded_outcome_unknown; 409 season_not_open,
superseded_execution_mismatch; 422 correction_not_supported,
invalid_record_encoding, record_too_large,
unsupported_outcome_schema, unsupported_disposition,
invalid_winner_set, outcome_not_bound_to_ranked_offer,
invalid_input; 503 backend_unavailable.
Requires an operator capability bound to this exact request; see the
LeagueOperatorCapability security scheme. Refused with 401
missing_operator_capability, invalid_operator_capability, or
operator_capability_outside_window, or
operator_capability_replayed.
Was this helpful?