---
title: "Read the caller's own figure, quota and in-flight run"
method: GET
path: "/api/funko/me"
tags: ["funko", "browser-session"]
---

# Read the caller's own figure, quota and in-flight run

`GET /api/funko/me`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/funko/me`
- Auth: API key in cookie `__session`

Clerk-session only. Read-only by construction - the quota preflight writes nothing, so opening the page cannot burn a member's free figure. `quota.allowed` is ADVISORY (it decides whether the UI shows the button); the real gate is POST /api/funko/run/start, which re-decides atomically at spend time.

## Response `200`

Profile, quota verdict, and the active run id if one is in flight.

- FunkoMeResponse
  - `ok` boolean, required
  - `profile` object, nullable: The member's stored figure profile, or null if they have none.
  - `quota` object, required: ADVISORY. The real gate re-decides atomically at POST /api/funko/run/start.
    - `used` integer
    - `allowance` integer
    - `remaining` integer
    - `lastRunAt` string, date-time
    - `verdict` object: Why the member is or is not allowed a run right now — render the REASON, do not infer it from `remaining`.
  - `activeRunId` string, nullable: Set when a run is in flight, so a reloaded page can offer 'keep watching'.
  - `tier` string

## Other responses

- `401`: Not signed in.
- `500`: KV read failed.

---

[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)
