> ## Documentation Index
> Fetch the complete documentation index at: https://docs.8bitedge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Look up retro game and console catalog data with 8bitedge

> Use the 8bitedge Games and Consoles endpoints to retrieve retro game metadata, pricing, and console listings by ID, slug, or title.

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](/guides/demand-signals).

<Note>
  **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`.
</Note>

***

## 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:

```bash theme={null}
curl -s "https://api.8bitedge.com/api/v1/games/titles" \
  -H "Authorization: Bearer $TOKEN" | jq
```

```json theme={null}
{
  "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:

```bash theme={null}
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](/concepts/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.

```bash theme={null}
curl -s "https://api.8bitedge.com/api/v1/games/game/123" \
  -H "Authorization: Bearer $TOKEN" | jq
```

```json theme={null}
{
  "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).

```bash theme={null}
curl -s "https://api.8bitedge.com/api/v1/games/slug/chrono-trigger" \
  -H "Authorization: Bearer $TOKEN" | jq
```

```json theme={null}
{
  "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`.

<Note>
  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.
</Note>

***

### 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`.

```bash theme={null}
curl -s "https://api.8bitedge.com/api/v1/games/title/Chrono%20Trigger" \
  -H "Authorization: Bearer $TOKEN" | jq
```

<Note>
  **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.`
</Note>

***

### 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.

```bash theme={null}
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:

```bash theme={null}
curl -s "https://api.8bitedge.com/api/v1/consoles" \
  -H "Authorization: Bearer $TOKEN" | jq
```

```json theme={null}
{
  "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:

```bash theme={null}
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:

| Field            | Type             | Description                                          |
| ---------------- | ---------------- | ---------------------------------------------------- |
| `id`             | int              | Unique game identifier                               |
| `game_name`      | string           | Display name                                         |
| `game_slug`      | string           | URL-friendly slug                                    |
| `console_id`     | int              | ID of the associated console                         |
| `price_loose`    | string (decimal) | Market price for loose copy (cartridge or disc only) |
| `price_complete` | string (decimal) | Market price for CIB (complete in box)               |
| `price_new`      | string (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.

<Steps>
  <Step title="Look up the game by slug">
    ```bash theme={null}
    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).
  </Step>

  <Step title="Pass the ID to the demand profile endpoint">
    ```bash theme={null}
    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.
  </Step>

  <Step title="Optionally check condition demand">
    ```bash theme={null}
    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.
  </Step>
</Steps>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Games API Reference" href="/api/games">
    Full parameter reference for all `/games/*` endpoints.
  </Card>

  <Card title="Consoles API Reference" href="/api/consoles">
    Full parameter reference for the `/consoles` endpoints.
  </Card>

  <Card title="Demand Signals Guide" href="/guides/demand-signals">
    Learn how to combine catalog IDs with demand metrics to find what buyers want.
  </Card>

  <Card title="Pagination" href="/concepts/pagination">
    How to use page mode and cursor mode to walk large result sets efficiently.
  </Card>
</CardGroup>
