MapsMake API

A read-only JSON API for public charts, templates and profiles, plus your own charts with an access token.

Base URL: https://mapsmake.com/api/public/v1

Authentication

You don't need a token to read public charts. To read your own unlisted, private and draft charts, send a personal access token in the Authorization header. Tokens are read-only. Create a token

curl -H "Authorization: Bearer mmpat_…" https://mapsmake.com/api/public/v1/me/charts

The API never uses cookies, so being signed in on the website doesn't count. An invalid, expired or revoked token returns 401 instead of falling back to anonymous access.

Rate limits

Without a token: 20 requests per minute per IP address. With a token: 60 requests per minute per token. Every response has X-RateLimit-Limit and X-RateLimit-Remaining headers; going over returns 429 with Retry-After.

Responses and pagination

Responses are JSON objects with data and next_cursor. To get the next page, pass next_cursor back as ?cursor=. When next_cursor is null there are no more pages. URLs are absolute and dates are ISO 8601.

{
  "data": [ … ],
  "next_cursor": "bzoyNA"
}

Endpoints

GET /charts/{id}
A chart's details and its current published snapshot (evaluated): one entry per view, with the data its viewer draws.
GET /charts/{id}/versions/{n}
The same for one specific published version.
GET /charts/{id}/data.csv?view={node_id}&bom=1
One view's data as CSV (UTF-8; add bom=1 for Excel). Without view, the first view is used.
GET /charts?type=&sort=trending|new|top&q=&cursor=
Public charts, as on the browse page. Pass q to search.
GET /users/{handle}/charts?cursor=
A creator's public charts, newest first.
GET /me/charts?cursor= Token required
Every chart you own, including drafts, by last edit.
GET /templates?type=&category=&cursor=
Published templates, most used first. Filter by type and category slug.
curl https://mapsmake.com/api/public/v1/charts?type=tierlist&sort=top

Errors

Errors use HTTP status codes (400, 401, 404, 429, 500) and a JSON body with a machine-readable code and a message. Private charts you don't own return 404, the same as charts that don't exist.

{ "error": { "code": "not_found", "message": "Not found" } }

Browsers and CORS

Requests without a token can be made from any website (Access-Control-Allow-Origin: *). Requests with a token are meant for servers and scripts: never put a token in browser code.

Fair use

Bulk scraping without permission isn't allowed, and rate limits are enforced. Credit creators when you show their charts. Terms

Embedding a chart? Use oEmbed: https://mapsmake.com/oembed?url=…&format=json