Changes
Everything added or changed since a cursor, so a customer can sync without polling every list.
Livelast 30 days
Archive and upwhole archive
Cursor paging
Parameters
All optional, all in the query stringsincecursorCarry on from here: pass back meta.next_cursor exactly as it came. Leave it out to start from a day ago.
kindenumOnly one kind of change: match, player or event.
limitintHow many to return. Default 100, at most 500.
Try it
Your key, sent from your browser straight to the APIPaste your keyGet a free one in a minute
Run it to see your limits
What comes back
Each item in data, read from a real response| Field | Type | Example |
|---|---|---|
kind | string | "match" |
change | string | "updated" |
id | id | "mt_168KK1Y1YTY9YT7SPXF8" |
at | time | "2026-09-29T18:39:37Z" |
record | object | { match_id, played_on, round, winner, … } |
meta.next_cursor | string | Pass back as since for the next page; null on the last |
When it refuses
Every error code| Status | Code | When |
|---|---|---|
| 401 | no_key | No key, a malformed key, or one that is not ours. |
| 402 | upgrade_required | Your plan does not reach this endpoint. The message names the plan that does. |
| 422 | bad_parameter | A parameter is malformed or out of range, named in the message. |
| 429 | rate_limited | Over your rate or allowance. Retry-After says when. |