---
title: "List the browsable Funko unlock catalog"
method: GET
path: "/api/funko/catalog"
tags: ["funko"]
---

# List the browsable Funko unlock catalog

`GET /api/funko/catalog`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/funko/catalog`
- Auth: none required

Public, no auth, edge-cacheable. Returns every non-hidden catalog row projected through an explicit allowlist (id, kind, label, blurb, rarity, requires, asset). Carries NO per-member data of any kind, which is what makes a shared cache safe here; a member's own unlock state is GET /api/funko/progress, which is self-only.

## Response `200`

The catalog rows.

- FunkoCatalogResponse
  - `ok` boolean, required
  - `items` object[], required: Non-hidden catalog rows, projected through an explicit allowlist.
    - `id` string
    - `kind` string: clip | prop | ... — the slot the item occupies.
    - `label` string
    - `blurb` string
    - `rarity` string
    - `requires` string[]: Signal ids that gate this row.
    - `asset` string: Asset NAME, not an id. Clip ids and clip assets are different vocabularies.
  - `count` integer, required: Rows returned.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
