Skip to content

List tournaments with pagination and search

GET
/api/v1/tournaments
curl --request GET \
--url 'https://internal.myscore.live/api/v1/api/v1/tournaments?page=1&perPage=20&sortBy=createdAt&sortOrder=asc&status=upcoming&search=Barcelona&hostClubId=WIMBLEDON&ownerId=550e8400-e29b-41d4-a716-446655440000&staffUserId=550e8400-e29b-41d4-a716-446655440000'

Public endpoint. Filter by status, search text, host club, owner, or staff member. Returns paginated metadata with totals.

page
number
default: 1 >= 1
Example
1

Page number (1-indexed)

perPage
number
default: 20 >= 1 <= 100
Example
20

Number of items per page

sortBy
string
Example
createdAt

Field to sort by

sortOrder
string
default: desc
Allowed values: asc desc
Example
desc

Sort order

status
string
Allowed values: upcoming active completed cancelled
Example
active

Filter by status

search
string
Example
Barcelona

Search by tournament name

hostClubId
string
Example
WIMBLEDON

Filter by host club ID

ownerId
string
Example
550e8400-e29b-41d4-a716-446655440000

Filter by tournament owner user ID

staffUserId
string
Example
550e8400-e29b-41d4-a716-446655440000

Filter by staff membership (returns tournaments where this user has any staff role)

List of tournaments

Media type application/json
object
data
required

Page of tournaments

Array<object>
object
id
required

Tournament ID

string
name
required

Tournament name

string
description

Tournament description

string
nullable
status
required

Current tournament status

string
Allowed values: upcoming active completed cancelled
sport
required

Sport type

string
Allowed values: tennis padel
surface

Court surface type

string
nullable
Allowed values: clay hard grass indoor
matchFormat

Default match format

string
nullable
Allowed values: best_of_3_mtb best_of_3 short_sets_to_4 pro_set best_of_3_to_4 best_of_5
startDate

Tournament start date

string format: date
nullable
endDate

Tournament end date

string format: date
nullable
registrationDeadline

Registration deadline

string format: date-time
nullable
createdAt
required

Creation timestamp

string format: date-time
updatedAt
required

Last update timestamp

string format: date-time
meta
required

Pagination metadata

object
total
required

Total number of items

number
page
required

Current page number (1-indexed)

number
>= 1
perPage
required

Number of items per page

number
>= 1
totalPages
required

Total number of pages

number
>= 1
hasNextPage
required

Whether there is a next page

boolean
hasPreviousPage
required

Whether there is a previous page

boolean
Example
{
"data": [
{
"id": "tourn_abc123",
"name": "Barcelona Open 2024",
"description": "Annual clay court tournament",
"status": "upcoming",
"sport": "tennis",
"surface": "clay",
"matchFormat": "best_of_3_mtb",
"startDate": "2026-06-15",
"endDate": "2026-06-22",
"registrationDeadline": "2026-06-10T23:59:59.000Z",
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z"
}
],
"meta": {
"total": 100,
"page": 1,
"perPage": 20,
"totalPages": 5,
"hasNextPage": true,
"hasPreviousPage": false
}
}

Rate limit exceeded