Developer API

Read a board's standings and push score updates from your own code — a game, an app, a spreadsheet script, or a server job. Updates appear on the live board, embeds, and TV view in real time.


Requirements

The API is available on the Pro and Premium plans. Upgrade if you're on the Free plan.

Authentication

There are no separate API keys. Each board is accessed with its admin token, which you pass directly in the URL path. Find it in the Share modal on your dashboard, under Developer API.

Base URL

https://maketheboard.com/api/v1/<admin_token>

⚠️ Treat the token like a password — anyone who has it can update your board. Don't embed it in public client-side code.

Endpoints

Get the board & standings

GET /api/v1/<admin_token>
curl https://maketheboard.com/api/v1/<admin_token>

Returns board metadata and the ranked standings:

{
  "board": {
    "id": 123,
    "title": "Sales Leaderboard",
    "board_type": "leaderboard",
    "share_slug": "abc123",
    "sort_order": "desc",
    "participant_count": 5
  },
  "standings": [
    { "rank": 1, "participant_id": 12, "name": "Alex", "score": 48200 },
    { "rank": 2, "participant_id": 13, "name": "Jordan", "score": 41750 }
  ]
}

Get standings only

GET /api/v1/<admin_token>/standings

Update scores

POST /api/v1/<admin_token>/scores

Identify a participant by participant (name, case-insensitive) or participant_id. Set an absolute value with score, or adjust the current score with delta.

Single update — add 5 points to Alex:

curl -X POST https://maketheboard.com/api/v1/<admin_token>/scores \
  -H "Content-Type: application/json" \
  -d '{"participant":"Alex","delta":5}'

Set an absolute score:

curl -X POST https://maketheboard.com/api/v1/<admin_token>/scores \
  -H "Content-Type: application/json" \
  -d '{"participant_id":12,"score":100}'

Batch update — many participants in one call:

curl -X POST https://maketheboard.com/api/v1/<admin_token>/scores \
  -H "Content-Type: application/json" \
  -d '{"scores":[
        {"participant":"Alex","score":100},
        {"participant":"Jordan","delta":-1}
      ]}'

The response returns the updated standings and any per-item errors:

{
  "updated": 2,
  "standings": [ ... ],
  "errors": [
    { "index": 2, "error": "Participant not found", "item": { "participant": "Nobody" } }
  ]
}

Participants are matched, never created — add players from the dashboard first, then push their scores by name or id.

Responses & limits

  • 200 — success. 400 — bad request / no valid updates. 402 — the board owner isn't on a paid plan. 404 — invalid token or board not found.
  • Rate limited to 120 requests per minute per token.
  • Scores accept any finite number (including negatives and decimals).

Real-time

Every successful score update broadcasts to anyone viewing the board, its embed, or the TV display — no refresh needed.

Ready to build?

Open the Share modal on any board to grab your API base URL.

Go to your boards