Current or historical complete MSF snapshot manifest.
const url = 'https://api.betflux.ai/v1/games/example/example/snapshot';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.betflux.ai/v1/games/example/example/snapshot \ --header 'Authorization: Bearer <token>'Fetch every listed authenticated Parquet file, then use this manifest cursor to follow complete revisions. Served only where MSF serving is enabled: GET /v1/datasets lists the MSF datasets available, and elsewhere every MSF route answers 404.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”A published revision to read instead of the current head. Requires epoch.
A published revision to read instead of the current head. Requires epoch.
The stream epoch at_revision belongs to (a manifest’s stream_epoch). Requires at_revision.
The stream epoch at_revision belongs to (a manifest’s stream_epoch). Requires at_revision.
Responses
Section titled “Responses”Snapshot manifest.
object
object
object
object
object
Newest independently evidenced source version applied to serving state; null when no checkpoint evidence is published.
Time of the last publication containing data changes; null when change history is not evidenced.
Latest independently observed source request start, which does not prove request completion.
Latest pull completion evidenced by source pull state; separate from source update time.
Latest normalization evidenced by a retained normalize receipt; null when unavailable.
Time this independent health evidence was observed; null when health evidence is unavailable.
Example
{ "dataset": "game-state", "scope": { "kind": "game" }, "revision_kind": "patch", "history_origin": "captured", "source_observation": { "timestamp_basis": "source" }, "status": "provisional", "coverage": { "state": "complete" }}The If-None-Match ETag still matches. Free.
Validation failed — unknown or invalid query parameter, or a malformed range (problem type validation-error).
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}Missing, malformed, or unrecognized API key (problem type invalid-key).
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}The key is valid, but the account has no active subscription (problem type subscription-required). The response includes upgrade_url.
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}API key revoked or suspended (problem type key-disabled), or a game or league revision outside the key’s history window (problem type history-restricted).
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}Unknown MSF dataset, unknown game, an uncovered league, nothing published yet or a revision boundary never published (problem type not-yet-available), or a revision outside retained history (reason revision_not_retained, with snapshot and archives links).
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}Rate limit, monthly row quota, or ops throttle — the problem type distinguishes rate-limited, quota-exhausted, and throttled.
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}Temporary failure resolving the game id; retry shortly.
RFC 9457 problem details. Dispatch on the stable type URI (https://api.betflux.ai/problems/*), never on the English title.
object
Stable problem type URI.
Short human-readable summary.
HTTP status code.
Explanation specific to this occurrence.
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example"}