List every board this key can address
Every board owned by the key's owner, oldest first, with the derived write contract on each. A key is bound to exactly one owner (a Discord guild, or a user for u_ boards) and can never address another owner's board.
Start here: write.endpoint, write.requires and write.rejects tell you what to send without reading any prose, and auto_applies tells you whether a write will ever return 201.
Requires the boards:read scope.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limitoptional | query | integer | Page size. Default 50, maximum 200. Out of range is a 422. |
| cursoroptional | query | string | Opaque cursor. Pass the previous page's |
Responses
| Status | Description |
|---|---|
| 200 | A page of boards. |
| 400 |
|
| 401 | Missing, malformed, unknown or revoked API key. Present the key as |
| 403 | The key authenticated but may not do this: it is missing the scope the operation needs, or it is a |
| 422 | The request was understood and refused. |
| 429 | Per-key token bucket: 600 reads and 60 writes per minute, tracked as separate buckets so a burst of writes cannot starve the polling that watches for their result. Rate limiting is evaluated BEFORE idempotency, so a 429 is never a replay. |
| 500 | Something failed on our side. The detail is deliberately generic — quote |
| Field | Type | Description |
|---|---|---|
| data | Board[] | |
| has_more | boolean | True when another page exists. Do not infer it from a short page — a page can be short and still have more. |
| next_cursor | string | null | Pass back as |
{
"data": [
{
"id": "board_1",
"display_name": "Tuesday Chess",
"type": "ELO",
"sort": "desc",
"team_size": 3,
"fixed_teams": false,
"url": "https://scoreboards.dev/leaderboards/111222333444555666/board_1",
"write": {
"endpoint": "/v1/boards/board_1/matches",
"requires": [
"team1",
"team2",
"winner"
],
"rejects": [
"team1_score",
"team2_score",
"score"
],
"operator": "elo",
"k_factor": 24,
"start_rating": 1000
},
"validation_window_hours": 24,
"auto_applies": false
},
{
"id": "board_2",
"display_name": "Sunday League",
"type": "League",
"sort": "desc",
"team_size": 1,
"fixed_teams": false,
"url": "https://scoreboards.dev/leaderboards/111222333444555666/board_2",
"write": {
"endpoint": "/v1/boards/board_2/matches",
"requires": [
"team1",
"team2",
"team1_score",
"team2_score"
],
"rejects": [
"winner",
"score"
],
"operator": "league_points",
"points_win": 3,
"points_draw": 1,
"points_loss": 0
},
"validation_window_hours": 0,
"auto_applies": true
},
{
"id": "board_3",
"display_name": "Speedrun",
"type": "Highscore",
"sort": "desc",
"team_size": 1,
"fixed_teams": false,
"url": "https://scoreboards.dev/leaderboards/111222333444555666/board_3",
"write": {
"endpoint": "/v1/boards/board_3/scores",
"requires": [
"player",
"score"
],
"rejects": [
"team1",
"team2",
"winner",
"team1_score",
"team2_score"
],
"operator": "keep_highest"
},
"validation_window_hours": 24,
"auto_applies": false
}
],
"has_more": false,
"next_cursor": null
}curl 'https://api.scoreboards.dev/v1/boards?cursor=eyJzIjoxMjAwLCJwIjoiMTk4Mzc0NjUyMDAwMDAwMDAyIn0' \
-H 'Authorization: Bearer sk_live_...'