API Reference
Tournaments
List and view tournaments, participants, brackets, and matches.
Required Scope:
tournaments:readList Tournaments
GET
/api/v1/tournamentsReturns a paginated list of tournaments. Only public tournaments and tournaments owned by the authenticated user are returned.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Results per page, max 100 (default: 25) |
sort | string | Sort field: created_at, start_date, name, max_participants |
direction | string | Sort direction: asc or desc (default: desc) |
filter[status] | string | Filter by status: draft, registration, in_progress, completed, cancelled |
filter[format] | string | Filter by format: single_elimination, double_elimination, round_robin |
filter[game] | string | Filter by game name (partial match) |
filter[organization_id] | uuid | Filter by hosting organization |
Example Requestbash
curl "https://readyraider.com/api/v1/tournaments?filter[status]=registration&per_page=10" \
-H "Authorization: Bearer rr_live_your_key"Response (200 OK)json
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Friday Night Valorant",
"slug": "friday-night-valorant",
"format": "single_elimination",
"status": "registration",
"game": "Valorant",
"max_participants": 32,
"start_date": "2026-02-20T20:00:00Z",
"registration_open": true,
"is_private": false,
"created_by": "user-uuid",
"organization_id": "org-uuid",
"created_at": "2026-02-13T10:00:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 10,
"total": 1,
"total_pages": 1
}
}Get Tournament
GET
/api/v1/tournaments/:idReturns a single tournament by ID or slug. Returns 404 for private tournaments unless you are the owner.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | uuid | string | Tournament UUID or slug |
Example Requestbash
curl "https://readyraider.com/api/v1/tournaments/friday-night-valorant" \
-H "Authorization: Bearer rr_live_your_key"Response (200 OK)json
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Friday Night Valorant",
"slug": "friday-night-valorant",
"description": "Weekly Valorant tournament...",
"format": "single_elimination",
"status": "registration",
"game": "Valorant",
"max_participants": 32,
"start_date": "2026-02-20T20:00:00Z",
"check_in_start": "2026-02-20T19:30:00Z",
"registration_open": true,
"is_private": false,
"team_size": 5,
"rules": "Standard competitive rules...",
"prize_pool": "$500",
"created_by": "user-uuid",
"organization_id": "org-uuid",
"created_at": "2026-02-13T10:00:00Z",
"updated_at": "2026-02-13T10:00:00Z"
}
}Note
The
password field is never included in API responses, even for tournament owners.List Participants
GET
/api/v1/tournaments/:id/participantsReturns a paginated list of participants for a tournament.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | uuid | string | Tournament UUID or slug |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Results per page, max 100 (default: 25) |
sort | string | Sort field: created_at, seed, name |
direction | string | Sort direction: asc or desc |
filter[status] | string | Filter by status: registered, checked_in, eliminated, winner |
Example Requestbash
curl "https://readyraider.com/api/v1/tournaments/550e8400.../participants?per_page=50" \
-H "Authorization: Bearer rr_live_your_key"Response (200 OK)json
{
"data": [
{
"id": "participant-uuid",
"tournament_id": "550e8400...",
"user_id": "user-uuid",
"team_id": "team-uuid",
"name": "Team Alpha",
"seed": 1,
"status": "checked_in",
"checked_in_at": "2026-02-20T19:45:00Z",
"created_at": "2026-02-15T12:00:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 16,
"total_pages": 1
}
}Get Brackets
GET
/api/v1/tournaments/:id/bracketsReturns all brackets for a tournament. For single elimination, there is one bracket. For double elimination, there are winners and losers brackets.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | uuid | string | Tournament UUID or slug |
Example Requestbash
curl "https://readyraider.com/api/v1/tournaments/550e8400.../brackets" \
-H "Authorization: Bearer rr_live_your_key"Response (200 OK)json
{
"data": [
{
"id": "bracket-uuid",
"tournament_id": "550e8400...",
"type": "winners",
"rounds": 4,
"created_at": "2026-02-20T20:00:00Z"
},
{
"id": "bracket-uuid-2",
"tournament_id": "550e8400...",
"type": "losers",
"rounds": 6,
"created_at": "2026-02-20T20:00:00Z"
}
]
}List Matches
GET
/api/v1/tournaments/:id/matchesReturns a paginated list of matches for a tournament. Includes participant details and scores.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | uuid | string | Tournament UUID or slug |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Results per page, max 100 (default: 25) |
sort | string | Sort field: round, match_number, created_at, scheduled_at |
direction | string | Sort direction: asc or desc |
filter[status] | string | Filter by status: pending, in_progress, completed |
filter[round] | integer | Filter by round number |
filter[bracket_id] | uuid | Filter by bracket ID |
Example Requestbash
curl "https://readyraider.com/api/v1/tournaments/550e8400.../matches?filter[status]=completed&sort=round" \
-H "Authorization: Bearer rr_live_your_key"Response (200 OK)json
{
"data": [
{
"id": "match-uuid",
"tournament_id": "550e8400...",
"bracket_id": "bracket-uuid",
"round": 1,
"match_number": 1,
"participant1_id": "participant-uuid-1",
"participant2_id": "participant-uuid-2",
"participant1_score": 2,
"participant2_score": 1,
"winner_id": "participant-uuid-1",
"status": "completed",
"scheduled_at": "2026-02-20T20:15:00Z",
"completed_at": "2026-02-20T20:45:00Z",
"created_at": "2026-02-20T20:00:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 15,
"total_pages": 1
}
}Tip
Use
filter[bracket_id] to get matches from a specific bracket (e.g., only losers bracket matches in a double elimination tournament).