Public API

API for developers

Read public GameTome profiles, libraries and lists from your site, a bot or an app. No key and no sign-up needed.

How it works

  • Read-only JSON. It returns only what anyone can see on a public profile without signing in.
  • Up to 60 requests per minute per IP address. Beyond that, the response is 429 with a Retry-After header.
  • Responses are cached for 5 minutes, so a change can take that long to show up.
  • CORS is open: you can call it straight from the browser, from any site.
  • Existing fields never get renamed: new ones are added.

Endpoints

  • GET/api/v1/users/{username}

    The profile: games per status, hours, average rating, followers.

  • GET/api/v1/users/{username}/library?status=COMPLETED&page=1

    The library, 100 games per page, most recent first. Parameters: status (PLAYING, COMPLETED, BACKLOG, WISHLIST, DROPPED) and page.

  • GET/api/v1/users/{username}/lists

    The person's public lists, without the games.

  • GET/api/v1/lists/{id}

    A public list with its games in order and their notes.

Example

curl https://gametome.app/api/v1/users/gametome_test
{
  "username": "gametome_test",
  "avatarUrl": null,
  "joinedAt": "2026-08-20T10:12:00.000Z",
  "url": "https://gametome.app/users/gametome_test",
  "followers": 3,
  "following": 5,
  "stats": {
    "total": 42, "playing": 2, "completed": 25,
    "backlog": 10, "wishlist": 4, "dropped": 1,
    "hoursPlayed": 812.5, "averageRating": 3.9
  }
}

Errors

Errors look like { "error": "CODE" }: USER_NOT_FOUND and LIST_NOT_FOUND (404), INVALID_STATUS (400), RATE_LIMITED (429).