List matches
GET/api/v1/matches
Soft-deleted matches are never listed. Filterable on id, gameId, gameName, playsetId, playsetName, communityId, communityName, recorderId, recorderName, playedAt, finalizedAt, editRequestsEnabled, lastEditedAt, lastEditedById, createdAt, expansionsId, expansionsName; sortable on id, playedAt, editRequestsEnabled, createdAt.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Maximum number of items to return
Opaque cursor from a previous response’s nextCursor. Omit to fetch the first page. Clients must treat this value as opaque and only pass back what was previously returned.
RSQL filter expression evaluated against this resource’s filterable fields. Combine multiple conditions with ; (AND) or , (OR), e.g. gameId==3fa85f64-...;playedAt=gt=2026-01-01T00:00:00Z. The set of filterable fields is documented per endpoint in the API reference; filtering on a field that isn’t in that whitelist returns 400 Bad Request.
Sort order. Format: field:direction. Direction is ASC or DESC (default ASC if omitted).
Use a comma-separated list for multi-column sorting; priority follows the parameter order.
Examples
Sort by a single column
playedAt:DESCSort by multiple columns
playedAt:DESC,status:ASCOmitted direction defaults to ASC
status,playedAt:DESCResponses
Section titled “ Responses ”List of matches
object
Maximum number of items returned in this page
Opaque cursor to pass as the cursor query parameter to fetch the previous page. Null when there is no previous results. Clients must not parse or construct this value.
Opaque cursor to pass as the cursor query parameter to fetch the next page. Null when there are no more results. Clients must not parse or construct this value.
Matches in this page
object
object
object
object
object
DRAFT matches are freely mutable directly via PATCH. Once a match is finalized it becomes immutable except through the match-edit proposal and approval workflow.
Date-time (ISO 8601)
When the match was finalized; absent while it is a DRAFT.
Date-time (ISO 8601)
object
Date-time (ISO 8601)
Date-time (ISO 8601)
object
object
object
Score of a participant: points (SCORE), seconds (TIME) or turns (TURNS), with at most two decimals; a value with more decimals is refused with 400.
Position in the match, 1 for the winner; tied participants share a rank
object
object
Date-time (ISO 8601)
Date-time (ISO 8601)
Why the player disagrees with the recorded result
Date-time (ISO 8601)
object
Date-time (ISO 8601)
Date-time (ISO 8601)
Request validation failed
object
Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
object
Field or property that failed validation
Machine-readable validation error code, e.g. REQUIRED, VALUE_TOO_LONG, INVALID_FORMAT, OUT_OF_RANGE. Canonical list is maintained per resource in the documentation.
Human readable validation message
The actual value that failed validation. Omitted if the value is sensitive.
Examples
{ "type": "https://errors.stratastax.dev/validation", "title": "Bad Request", "status": 400, "detail": "Received invalid request data", "errors": [ { "field": "displayName", "code": "REQUIRED", "message": "missing required field" } ]}{ "type": "https://errors.stratastax.dev/validation", "title": "Bad Request", "status": 400, "detail": "Received invalid request data", "errors": [ { "field": "participants[2].ghostPlayerId", "code": "DUPLICATE_GHOST_PLAYER", "message": "the ghost player already takes part in this match" } ]}{ "type": "https://errors.stratastax.dev/validation", "title": "Bad Request", "status": 400, "detail": "Request validation failed", "errors": [ { "field": "query", "code": "INVALID_SEARCH", "message": "'nonsense' is not a filterable field" } ]}Authentication required or token invalid
object
Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/authentication", "title": "Unauthorized", "status": 401, "detail": "Authentication required"}Insufficient permissions
object
Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/authorization", "title": "Access denied", "status": 403, "detail": "Insufficient permissions"}Unexpected server error
object
Canonical error type identifier (URI). The values are the problem types of stratastax-http’s problem-core; stratastax-codegen fails the build of a service when the two disagree.
Short, human-readable summary
HTTP status code
Human-readable explanation
URI of the request that caused the error
Examples
{ "type": "https://errors.stratastax.dev/internal", "title": "Oops! Something went wrong.", "status": 500, "detail": "Try again later."}