Skip to main content
The 8bitedge catalog endpoints give you read-only access to game and console metadata — titles, slugs, console associations, and pricing — for all enabled retro titles. Use them to resolve IDs, build browse interfaces, or enrich your inventory data. These endpoints are purely reference data: they reflect the current state of the catalog and do not contain time-series demand metrics. To pair a game with its demand profile, see Demand Signals.
Scopes required:
  • games.read — for all /games/* endpoints
  • consoles.read — for all /consoles and /consoles/{id} endpoints
Keys missing the required scope receive 403 insufficient_scope.

Games

Browsing the catalog

Two lightweight list endpoints let you page through all enabled games without loading full game objects — useful for building autocomplete, sync jobs, or ID-to-name mappings. /games/titles returns paginated id + display name pairs, ordered alphabetically:
curl -s "https://api.8bitedge.com/api/v1/games/titles" \
  -H "Authorization: Bearer $TOKEN" | jq
{
  "data": [
    { "id": 12, "display_game_name": "Aladdin" },
    { "id": 47, "display_game_name": "Battletoads" }
  ],
  "meta": {
    "pagination": { "mode": "page", "page": 1, "per_page": 25, "total": 842, "last_page": 34 }
  },
  "links": {
    "next": "https://api.8bitedge.com/api/v1/games/titles?page=2",
    "prev": null
  }
}
/games/slugs returns paginated id + slug pairs, ordered by slug:
curl -s "https://api.8bitedge.com/api/v1/games/slugs" \
  -H "Authorization: Bearer $TOKEN" | jq
Both endpoints support limit, page, cursor, and paginate query parameters. See Pagination for details.

Lookup by ID

Use /games/game/{id} to retrieve a single full game object by its numeric ID. This is the fastest lookup when you already have an ID — for example, from a demand leaderboard row.
curl -s "https://api.8bitedge.com/api/v1/games/game/123" \
  -H "Authorization: Bearer $TOKEN" | jq
{
  "data": {
    "id": 123,
    "game_name": "Chrono Trigger",
    "game_slug": "chrono-trigger",
    "console_id": 19,
    "price_loose": "40.00",
    "price_complete": "95.50",
    "price_new": "300.00"
  }
}
The endpoint returns 404 not_found if no enabled game with that ID exists.

Lookup by slug

Use /games/slug/{slug} to find all games whose slug matches the given value. The response is always an array, because the same slug can exist on multiple consoles (for example, a game ported to both SNES and Genesis).
curl -s "https://api.8bitedge.com/api/v1/games/slug/chrono-trigger" \
  -H "Authorization: Bearer $TOKEN" | jq
{
  "data": [
    {
      "id": 123,
      "game_name": "Chrono Trigger",
      "game_slug": "chrono-trigger",
      "console_id": 19,
      "price_loose": "40.00",
      "price_complete": "95.50",
      "price_new": "300.00"
    }
  ],
  "meta": { "count": 1 }
}
When there are no matches, data is [] and meta.count is 0.
Slug and title lookups always return an array, even when there is only one match. This is intentional — the same title or slug can exist for multiple consoles, so a single-result wrapper would force you to handle both shapes.

Lookup by title

Use /games/title/{title} to find all games whose display name matches the given value. The response shape is identical to the slug lookup — an array of full game objects plus meta.count.
curl -s "https://api.8bitedge.com/api/v1/games/title/Chrono%20Trigger" \
  -H "Authorization: Bearer $TOKEN" | jq
URL-encoding: values that contain spaces or special characters must be percent-encoded before including them in the path. For example, Super Mario Bros. becomes Super%20Mario%20Bros.

All games for a console

Use /games/console/{console_id} to retrieve a paginated list of full game objects for a specific platform. This is useful for building console-specific browse pages or syncing an entire platform’s catalog.
curl -s "https://api.8bitedge.com/api/v1/games/console/19?limit=50" \
  -H "Authorization: Bearer $TOKEN" | jq
Results are ordered by name and support the standard pagination parameters. An unknown console_id returns an empty list rather than a 404.

Consoles

List all consoles

Use /consoles to retrieve a paginated list of all enabled platforms:
curl -s "https://api.8bitedge.com/api/v1/consoles" \
  -H "Authorization: Bearer $TOKEN" | jq
{
  "data": [
    { "id": 3,  "console_name": "Nintendo 64" },
    { "id": 19, "console_name": "Nintendo SNES" }
  ],
  "meta": {
    "pagination": { "mode": "page", "page": 1, "per_page": 25, "total": 18, "last_page": 1 }
  },
  "links": { "next": null, "prev": null }
}

Single console

Use /consoles/{id} to retrieve one console by its numeric ID:
curl -s "https://api.8bitedge.com/api/v1/consoles/19" \
  -H "Authorization: Bearer $TOKEN" | jq
The endpoint returns 404 not_found if no enabled console with that ID exists.

Full game object reference

Every endpoint that returns complete game data uses this object shape:
FieldTypeDescription
idintUnique game identifier
game_namestringDisplay name
game_slugstringURL-friendly slug
console_idintID of the associated console
price_loosestring (decimal)Market price for loose copy (cartridge or disc only)
price_completestring (decimal)Market price for CIB (complete in box)
price_newstring (decimal)Market price for sealed or new copy
Prices are returned as decimal strings to avoid floating-point rounding issues. Parse them with a decimal library if you need arithmetic precision.

Combining catalog with demand

A common pattern is to resolve a game by slug or title first, then pass the returned id to the demand endpoints to get its full buyer-activity profile.
1

Look up the game by slug

curl -s "https://api.8bitedge.com/api/v1/games/slug/chrono-trigger" \
  -H "Authorization: Bearer $TOKEN" | jq '.data[0].id'
This returns 123 (or whichever ID corresponds to your target console entry).
2

Pass the ID to the demand profile endpoint

curl -s "https://api.8bitedge.com/api/v1/demand-intent/games/123" \
  -H "Authorization: Bearer $TOKEN" | jq
You now have the full demand profile — redirects, watches, momentum, and rank — across all three time periods.
3

Optionally check condition demand

curl -s "https://api.8bitedge.com/api/v1/demand-intent/games/123/conditions" \
  -H "Authorization: Bearer $TOKEN" | jq
This tells you whether buyers want the title loose, CIB, new, or don’t have a preference.

Next steps

Games API Reference

Full parameter reference for all /games/* endpoints.

Consoles API Reference

Full parameter reference for the /consoles endpoints.

Demand Signals Guide

Learn how to combine catalog IDs with demand metrics to find what buyers want.

Pagination

How to use page mode and cursor mode to walk large result sets efficiently.