# Immersive Commons > Agent-native API docs for Immersive Commons — Floor 10 of Frontier Tower SF. One per-user bearer token, three equivalent transports (REST, MCP, A2A), 138 typed capabilities. ## Docs - [immersivecommons.com API Documentation](https://immersivecommons.mintlify.app/index.md): Immersive Commons is Floor 10 of Frontier Tower SF — a members-run space for AI builders. This is the human-browsable index of every developer resource. - [immersivecommons.com Developer Portal](https://immersivecommons.mintlify.app/developers.md): The agent-native API for Floor 10 of Frontier Tower SF. Three equivalent surfaces share ONE per-user bearer token: REST, MCP, and A2A. - [immersivecommons.com Authentication](https://immersivecommons.mintlify.app/auth.md): How an AI agent gets a per-user agt_ bearer token for the Immersive Commons API. - [List upcoming Immersive Commons events](https://immersivecommons.mintlify.app/api-reference/events/list-upcoming-immersive-commons-events.md): Public read of the upcoming-events KV cache. Anonymous, or authenticated with a Clerk session or an agt_ token carrying `events:read_upcoming`. Returns the events plus an `age_min` staleness gauge. Use `limit` to cap the page size (there is no cursor — the full upcoming window is small). - [Look up a single event by its Luma URL](https://immersivecommons.mintlify.app/api-reference/events/look-up-a-single-event-by-its-luma-url.md): Public. Resolves one event from the upcoming cache by its canonical Luma URL. - [Cursor-tail the caller's agentic event log](https://immersivecommons.mintlify.app/api-reference/events/cursor-tail-the-callers-agentic-event-log.md): Clerk-session only (NOT reachable with an agt_ bearer). Cursor-based tail read of the per-user agentic event log. Pass the last-seen `since` id to page forward; the response carries `cursor` + `has_more` for the next page. Headless agents use the MCP verb `ic_events_next` (bearer-auth) instead. - [Queue an RSVP to a Luma event](https://immersivecommons.mintlify.app/api-reference/events/queue-an-rsvp-to-a-luma-event.md): Clerk session or agt_ token with `events:rsvp`. Queues an RSVP envelope for life-side processing (returns `queued`, not a confirmed Luma seat). IDEMPOTENT: a repeat within 7 days is recognized (`was_dup: true`) and no second envelope is written; an `Idempotency-Key` additionally replays the first re… - [Propose a member event (operator-approved)](https://immersivecommons.mintlify.app/api-reference/events/propose-a-member-event-operator-approved.md): Clerk session or agt_ token with `events:request` (ic-member+). Enqueues a Luma-shaped 'save the date' into the pending queue for operator approval — it NEVER auto-creates a public event. Supports an `Idempotency-Key`. - [Run up to 20 public GET reads in one request](https://immersivecommons.mintlify.app/api-reference/batch/run-up-to-20-public-get-reads-in-one-request.md): Public, no auth. Submit a bounded list (1..20) of GET sub-requests to the allowlisted PUBLIC read endpoints (`/api/events/upcoming`, `/api/events/get`, `/api/floor10/donations`) and get their results back in order. Each sub-request is dispatched to the SAME handler that serves it directly, so a batc… - [Search the member directory](https://immersivecommons.mintlify.app/api-reference/directory/search-the-member-directory.md): Clerk session or agt_ token with `directory:search`. Privacy-graded search over the member roster; the fields returned depend on the caller's tier. - [List bookable resources](https://immersivecommons.mintlify.app/api-reference/resources/list-bookable-resources.md): Clerk session or agt_ token with `resources:read`. Returns the resource catalog plus a staleness gauge. - [Queue a resource booking](https://immersivecommons.mintlify.app/api-reference/resources/queue-a-resource-booking.md): Clerk session or agt_ token with `resources:book`. Queues a booking envelope (returns `queued`, not confirmed). IDEMPOTENT: a repeat within 30 days for the exact same start time is recognized (`was_dup: true`); an `Idempotency-Key` additionally replays the first result. Agent callers MUST supply `em… - [Read the caller's own activity log](https://immersivecommons.mintlify.app/api-reference/account/read-the-callers-own-activity-log.md): Clerk session or agt_ token with `membership:read`. Returns the most recent consequential tool calls recorded for the caller. - [Read the caller's commit-leaderboard state](https://immersivecommons.mintlify.app/api-reference/leaderboard/read-the-callers-commit-leaderboard-state.md): Clerk session or agt_ token with `leaderboard:manage`. Returns opt-in flag, linked GitHub username, and current weekly rank if rendered. - [Toggle commit-leaderboard opt-in](https://immersivecommons.mintlify.app/api-reference/leaderboard/toggle-commit-leaderboard-opt-in.md): Clerk session or agt_ token with `leaderboard:manage`. Opting IN requires a linked GitHub identity (409 otherwise). Opting OUT is unconditional. - [Query the research RAG corpus](https://immersivecommons.mintlify.app/api-reference/research/query-the-research-rag-corpus.md): Clerk session or agt_ token with `research:query`. Forwards a top-k retrieval (optionally LLM-synthesized) query to the supercommons2 RAG funnel and returns the results. The query text is never logged. 60 requests/hour/member. - [Submit a highlight to the moderation queue](https://immersivecommons.mintlify.app/api-reference/highlights/submit-a-highlight-to-the-moderation-queue.md): agt_ token required (scope `events:submit_recap`). Adds a HighlightStory to the pending moderation queue; an operator approves it. ASYNC-JOB: returns 202 Accepted with `status: pending`, a `job_id` (= the story `id`), a `poll_url`, and a `Location` response header — all pointing at `GET /api/ingest/… - [File feedback, a feature request, or a breakage report](https://immersivecommons.mintlify.app/api-reference/feedback/file-feedback-a-feature-request-or-a-breakage-report.md): Anonymous-OK (per-IP rate limited, 10/hr). An optional agt_ Bearer (`feedback:submit`) attributes the ticket to your account; a bad token is treated as anonymous rather than refused (low-friction channel). - [Self-revoke the presenting token](https://immersivecommons.mintlify.app/api-reference/auth/self-revoke-the-presenting-token.md): agt_ token required. The presented token revokes ITSELF (self-destruction, not privilege escalation) — it cannot revoke other tokens. Idempotent: re-revoking an already-revoked token returns `already_revoked: true`. - [Deterministic 'am I set up?' probe](https://immersivecommons.mintlify.app/api-reference/auth/deterministic-am-i-set-up?-probe.md): Optional Bearer. Always 200. With a valid token, returns `ready: true` plus scopes + the MCP install recipe; without (or with a bad token), returns `ready: false` + `missing` + `next_actions`. The verdict is the body, not the HTTP status. - [Begin the RFC 8628 device-code token mint](https://immersivecommons.mintlify.app/api-reference/auth/begin-the-rfc-8628-device-code-token-mint.md): Anonymous (per-IP rate limited, 30/hr). Returns a device_code (kept by the agent) + a user_code the human enters at verify_url. Then poll /api/agent/signup/poll until the human approves. - [Poll a device-code grant for completion](https://immersivecommons.mintlify.app/api-reference/auth/poll-a-device-code-grant-for-completion.md): Anonymous (the device_code is the credential). Returns `pending`, `completed` (with the minted agent_token — surfaced ONCE), or `cancelled`. After completion the record is consumed and further polls 410. - [Read the public donor wall](https://immersivecommons.mintlify.app/api-reference/payments/read-the-public-donor-wall.md): Public, no auth. Running total raised (USDC), donor count, and recent settled gifts. Donations are made via the x402 pay-per-use surface (see the x-payment-info discovery pointer at the top of this document). - [Read the caller's membership tier](https://immersivecommons.mintlify.app/api-reference/membership/read-the-callers-membership-tier.md): Clerk-session only (NOT reachable with an agt_ bearer). Returns the caller's current tier, any pending request, and history. Agents read their tier via the MCP tool `ic_get_my_membership`. - [Request a higher membership tier](https://immersivecommons.mintlify.app/api-reference/membership/request-a-higher-membership-tier.md): Clerk-session only (NOT reachable with an agt_ bearer). Records a pending request for a higher, self-requestable ring; an operator approves it. Idempotent: re-posting overwrites the prior pending request. Agents use the MCP tool `ic_request_tier`. - [Cancel the pending tier request](https://immersivecommons.mintlify.app/api-reference/membership/cancel-the-pending-tier-request.md): Clerk-session only. Clears the caller's pending tier request. No-op if none is pending. ## OpenAPI Specs - [openapi](https://immersivecommons.mintlify.app/openapi.json)