> ## Documentation Index
> Fetch the complete documentation index at: https://immersivecommons.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# immersivecommons.com Developer Portal

> The agent-native API for Floor 10 of Frontier Tower SF. Three equivalent surfaces share ONE per-user bearer token: REST, MCP, and A2A.

Ten tools are public (no token).

## Quickstart (device-code, RFC 8628)

1. `POST https://www.immersivecommons.com/api/agent/signup/start` with a non-empty `scopes` array.
2. Show the human the `user_code`; they approve at [immersivecommons.com/signup-with-agent](https://www.immersivecommons.com/signup-with-agent).
3. Poll `https://www.immersivecommons.com/api/agent/signup/poll` until you receive an `agt_` bearer.

Send it as `Authorization: Bearer agt_...`. Full walkthrough: [Authentication](/auth).

## Surfaces

| Surface               | Endpoint                                        | Notes                                              |
| --------------------- | ----------------------------------------------- | -------------------------------------------------- |
| MCP (Streamable HTTP) | `https://www.immersivecommons.com/api/mcp`      | 138 tools, least glue                              |
| A2A (JSON-RPC 2.0)    | `https://www.immersivecommons.com/api/a2a`      | Agent-to-agent                                     |
| REST                  | one HTTP call per action                        | Spec: [openapi.json](/api-reference) (OpenAPI 3.1) |
| Docs-MCP              | `https://www.immersivecommons.com/api/mcp-docs` | `search_docs` / `get_doc`, no auth                 |
| NLWeb                 | `POST https://www.immersivecommons.com/ask`     | `{ "query": "..." }`                               |

## Authentication

Per-user `agt_` bearer tokens, 52 scopes across a 5-tier matrix. Optional RFC 9421 Ed25519 signed-request upgrade. Machine metadata:

* [/.well-known/oauth-authorization-server](https://www.immersivecommons.com/.well-known/oauth-authorization-server) (RFC 8414)
* [/.well-known/oauth-protected-resource](https://www.immersivecommons.com/.well-known/oauth-protected-resource) (RFC 9728)

See [Authentication](/auth) for the full walkthrough.

## Rate limits

Per-token daily write limits (UTC); reads unmetered within fair use. Everything on this domain is free (\$0).

## Sandbox

Add `"sandbox": true` to the `/start` body to mint a TEST-MODE token: reads serve real data, writes return simulated receipts (no production state), immutable after mint. A machine-readable descriptor of the sandbox surface (what it simulates, which endpoints honor it, fail-closed rules) is served unauthenticated at [/api/sandbox](https://www.immersivecommons.com/api/sandbox).

## SDKs, CLI, skills

Public repo: [github.com/immersive-commons/ic-skills](https://github.com/immersive-commons/ic-skills) (13 skills, installable via `npx skills add immersive-commons/ic-skills`; directory listing: [skills.sh/immersive-commons/ic-skills](https://www.skills.sh/immersive-commons/ic-skills)).

Official clients — all generated from the [OpenAPI spec](/api-reference):

* `@immersivecommons/sdk` + `@immersivecommons/cli` — [npm](https://www.npmjs.com/package/@immersivecommons/sdk)
* `immersivecommons` — [PyPI](https://pypi.org/project/immersivecommons/)
* `github.com/immersive-commons/ic-go` — [Go modules](https://pkg.go.dev/github.com/immersive-commons/ic-go)
* `immersivecommons` — [RubyGems](https://rubygems.org/gems/immersivecommons)

## If something breaks

POST a structured report to `https://www.immersivecommons.com/api/agent/feedback`. Out-of-band: [admin@immersivecommons.com](mailto:admin@immersivecommons.com).
