ChessPivot

The ChessPivot public API

ChessPivot provides a documented public API: four read-only routes that return your own data — games, repertoire, weaknesses, profile — to your tools, protected by a personal access token.

Get a token

Tokens are generated from the My account page, in the “API access tokens” section. A token is shown only once — we only keep a fingerprint of it — and can be revoked from the same place. Every request sends it in the following header:

Authorization: Bearer cp_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
Open My account

The routes

Your games (PGN)

GET /api/public/v1/games

Returns your games in PGN format, one block per game. Optional parameters: since and until (inclusive date bounds, YYYY-MM-DD format, UTC), limit (1 to 500 games per page, default 100) and cursor. When a page is full, the X-Next-Cursor response header carries the cursor of the next page; its absence marks the last page.

Example

curl -H "Authorization: Bearer cp_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" \
  "https://www.chesspivot.com/api/public/v1/games?since=2026-01-01&limit=100"

Your repertoire (PGN)

GET /api/public/v1/repertoire

Returns your opening repertoire in PGN format. Optional parameter: locale (fr or en, default fr), the language of the opening names in the file headers.

Example

curl -H "Authorization: Bearer cp_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" \
  "https://www.chesspivot.com/api/public/v1/repertoire?locale=fr"

Your weaknesses (JSON)

GET /api/public/v1/weaknesses

Returns, for each linked account, your detected weaknesses: stable identifier, French and English name, number of games involved and recent trend. Nothing more — the detection machinery is not published.

Example

curl -H "Authorization: Bearer cp_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" \
  "https://www.chesspivot.com/api/public/v1/weaknesses"

Your profile (JSON)

GET /api/public/v1/profile

Returns the usernames linked to the account, the number of analysed games and the date of the latest analysis, account by account.

Example

curl -H "Authorization: Bearer cp_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" \
  "https://www.chesspivot.com/api/public/v1/profile"

Rate limits

30 requests per minute per IP address, across all routes. Beyond that, the response is a 429 status code: wait for the next minute. A missing, invalid or revoked token receives a 401 status code.

The API policy

  • Read-only: no route writes, changes or deletes anything.
  • Your data only: the served scope comes from the token — no route accepts an account identifier, so there is no parameter to tamper with to read someone else’s data.
  • Immediate revocation: a token revoked from My account is refused from the very next request.
  • The know-how stays closed: the API exposes what the service found, never how it found it — no threshold or detection parameter is published.