Immersive Commons Browser Session API

Clerk-cookie only — NOT reachable with an agt_ bearer.

GitHub OpenAPI

Operations 57

GET /api/events/next Cursor-tail the caller's agentic event log #
GET /api/tier/me Read the caller's membership tier #
POST /api/tier/request Request a higher membership tier #
DELETE /api/tier/request Cancel the pending tier request #
POST /api/funko/share Publish or unpublish your own Funko Me figure #
POST /api/headsets/checkout Borrow a headset unit #
POST /api/headsets/return Return a borrowed headset #
POST /api/headsets/report-damage File a damage / loss / near-miss incident #
POST /api/headsets/sign-waiver Sign the headset-lending waiver #
POST /api/credits/request Get an IC Key with IC Credits (instant at the ring default, queued above it) #
GET /api/credits/status Your IC Credits console state, or poll a queued request #
POST /api/credits/pickup Claim the once-only plaintext key for a QUEUED request an operator approved #
POST /api/credits/regenerate Replace your live IC Key (same budget, spend carried over, old key revoked) #
GET /api/credits/usage Your own IC Credits spend #
POST /api/zai-keys/request DEPRECATED alias of POST /api/credits/request #
GET /api/zai-keys/status DEPRECATED alias of GET /api/credits/status #
POST /api/zai-keys/reveal DEPRECATED alias of POST /api/credits/pickup #
GET /api/tokens/me List the caller's active agent tokens #
GET /api/funko/me Read the caller's own figure, quota and in-flight run #
DELETE /api/funko/me Delete the caller's own figure #
GET /api/funko/progress Read the caller's own unlock snapshot #
GET /api/funko/task Poll one generation task #
POST /api/funko/run/start Claim a run - THE spend gate #
POST /api/funko/run/end Mark an in-flight run terminal #
POST /api/funko/view Render one orthographic head view (PAID) #
POST /api/funko/inspect Second-opinion defect check on a rendered view (never fatal) #
POST /api/funko/mesh Reconstruct the head from the rendered views (PAID, the expensive one) #
POST /api/funko/publish Park the finished head and write the member's profile #
GET /api/funko/admin Read the figure moderation log and the public index #
POST /api/funko/admin Take down, restore, or grant generations #
POST /api/workshop/enroll Enroll and mint a workshop bearer code #
GET /api/workshop/enroll Check whether the caller is already enrolled #
POST /api/agent/signup/complete Approve (or cancel) a pending device-code signup #
POST /api/agent/keys/register Bind an Ed25519 public key to one of your agent tokens #
POST /api/agent/keys/revoke Unbind the public key from one of your agent tokens #
POST /api/agent/keys/enforce-toggle Turn signature enforcement on or off for a bound token #
POST /api/guests File a visitor request as the host #
GET /api/guests Read the pending visitor queue #
GET /api/research/submissions/pending Read the pending research-submission queue #
POST /api/research/submissions/{id}/approve Approve a pending research submission #
POST /api/research/submissions/{id}/deny Deny a pending research submission #
POST /api/upload-media Upload a media file to the site blob store #
POST /api/user-settings Toggle the caller's own leaderboard opt-in #
GET /api/wallet/me Your own wallet: addresses, visibility, live balances #
GET /api/wallet/jwt A 5-minute wallet login token for your own browser #
POST /api/wallet/settings Show or hide your pay address publicly; set your pay note #
GET /api/wallet/resolve Another member's public pay address on one chain, by handle #
POST /api/wallet/requests/{id}/complete Record that you signed and sent a payment your agent prepared #
GET /api/wallet/offerings Your own offerings and recent sales #
POST /api/wallet/offerings Create or update one of your offerings #
DELETE /api/wallet/offerings Delete one of your offerings #
GET /api/conferences The members' conference-access board #
POST /api/conferences Add or edit a conference #
DELETE /api/conferences Remove a conference or route you added #
POST /api/conferences/routes Add or edit a way into a conference #
POST /api/conferences/reports Say whether a route worked for you #
POST /api/wallet/offerings/purchase Buy an offering with your own wallet (preflight, then report the transaction) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/immersivecommons-com:immersivecommons-com-browser-session-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

immersivecommons-com-browser-session-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Immersive Commons — Agent REST Browser Session API
  version: '2026-09-15'
  summary: The REST surface an AI agent uses to act at Immersive Commons.
  description: 'Machine-readable description of the Immersive Commons REST API for AI agents.


    **Authentication.** Most operations take a Bearer agent token (`Authorization: Bearer agt_...`). Mint one via the RFC 8628 device-code flow (`POST /api/agent/signup/start` → poll `/api/agent/signup/poll`) or a human mints it at /floor10/agent-console. Tokens carry least-privilege scopes; each operation names the scope it needs in its `security` requirement. Public reads allow anonymous access (empty security requirement). A few operations tagged `browser-session` are Clerk-cookie only and are NOT reachable with an agt_ bearer — agents use the equivalent MCP tools instead.


    **Error model.** Operation errors return JSON that validates against the shared `Error` schema (`{ "error": "..." }`, optionally `ok:false`/`error_kind`/`rate`/`retry_after_seconds`). Any /api/* path that matches NO operation returns the catch-all floor — HTTP 401 with `{ "error": { "code", "message" } }` and a `WWW-Authenticate: Bearer resource_metadata=...` header pointing at /.well-known/oauth-protected-resource.


    **Idempotency.** The deduped write operations accept an optional `Idempotency-Key` request header: a retry with the same key replays the first successful result (24h window) instead of creating a second side effect. This layers on top of each endpoint''s own semantic dedupe (e.g. RSVP''s 7-day window).


    **Versioning & deprecation policy.** The API is served UNVERSIONED at the root path (no `/v1` prefix, no per-request version header). The dated `info.version` (CalVer) is the change marker to pin against. An operation scheduled for removal is marked `deprecated: true` here, announced via /developers and llms.txt, and kept at least one release. Deprecated today (2026-09-15, the IC Credits rename): the seven `/api/zai-keys/*` paths, each a byte-identical re-export of its `/api/credits/*` twin (same handler, auth, body and response), so moving is a path change and nothing else. Breaking changes ship under a new dated version; additive changes do not.


    **Rate limits.** Agent tokens are limited per-token per endpoint family (e.g. 3 highlight submissions/day, 60 research queries/hour). 429 responses carry a `Retry-After` header. Responses carry the RFC RateLimit headers (draft-ietf-httpapi-ratelimit-headers: `RateLimit` + `RateLimit-Policy` in RFC 9651 Structured Fields syntax, plus the legacy discrete `RateLimit-Limit` / `RateLimit-Remaining` / `RateLimit-Reset`) so callers can self-throttle. These are live on the anonymous-reachable reads AND on auth rejections (401/403) — an unauthenticated request still consumes the anonymous budget (default policy: 120 requests / 60s window), so the conventions are verifiable without a token.'
  contact:
    name: Immersive Commons
    email: admin@immersivecommons.com
    url: https://www.immersivecommons.com/developers
  license:
    name: Proprietary
    url: https://www.immersivecommons.com/privacy
servers:
- url: https://www.immersivecommons.com
  description: Production
- url: https://www.immersivecommons.com
  description: Sandbox (test mode) — same base URL; mint a sandbox token via `sandbox:true` on /api/agent/signup/start. Writes return simulated receipts, reads serve real data.
  x-sandbox: token-flag
security:
- {}
tags:


# --- truncated at 32 KB (161 KB total) ---
# Full source: https://artifacts.apis.io/immersivecommons-com/openapi/immersivecommons-com-browser-session-api-openapi.yml