# All endpoints

> Every route the server answers, 555 in all, generated from the router at start-up.

Source: https://immiscible.fly.dev/docs/api/endpoints

## Gateway

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/v1/chat/completions` | [Chat completions (OpenAI shape)](https://immiscible.fly.dev/docs/api/post-v1-chat-completions.md) | Workspace key |
| `POST` | `/anthropic/v1/messages` | [Messages (Anthropic shape)](https://immiscible.fly.dev/docs/api/post-anthropic-v1-messages.md) | Workspace key |
| `POST` | `/anthropic/v1/messages/count_tokens` | [Count tokens (Anthropic shape)](https://immiscible.fly.dev/docs/api/post-anthropic-v1-messages-count-tokens.md) | Workspace key |
| `POST` | `/v1/outcomes` | [Report an outcome](https://immiscible.fly.dev/docs/api/post-v1-outcomes.md) | Workspace key |
| `POST` | `/v1/route/preview` | [Preview a route](https://immiscible.fly.dev/docs/api/post-v1-route-preview.md) | Workspace key |
| `GET` | `/v1/models` | [List models](https://immiscible.fly.dev/docs/api/get-v1-models.md) | Workspace key |
| `GET` | `/v1/clients` | [List recognised clients](https://immiscible.fly.dev/docs/api/get-v1-clients.md) | Public |
| `GET` | `/v1/task-classes` | [List task classes](https://immiscible.fly.dev/docs/api/get-v1-task-classes.md) | Public |
| `GET` | `/v1/policy-profiles` | [List policy profiles](https://immiscible.fly.dev/docs/api/get-v1-policy-profiles.md) | Public |
| `GET` | `/v1/upstreams` | [Upstream status](https://immiscible.fly.dev/docs/api/get-v1-upstreams.md) | Admin key |
| `GET` | `/v1/reports/:kind` | [Read a report](https://immiscible.fly.dev/docs/api/get-v1-reports-kind.md) | Admin key |
| `GET` | `/v1/evidence/pack` | [Evidence pack](https://immiscible.fly.dev/docs/api/get-v1-evidence-pack.md) | Admin key |
| `GET` | `/v1/evidence/verify` | [Verify the ledger](https://immiscible.fly.dev/docs/api/get-v1-evidence-verify.md) | Admin key |
| `POST` | `/v1/admin/keys` | [Issue a key](https://immiscible.fly.dev/docs/api/post-v1-admin-keys.md) | Admin key |
| `GET` | `/v1/admin/budgets` | [List budgets](https://immiscible.fly.dev/docs/api/get-v1-admin-budgets.md) | Admin key |
| `POST` | `/v1/admin/budgets` | [Set a budget](https://immiscible.fly.dev/docs/api/post-v1-admin-budgets.md) | Admin key |
| `POST` | `/v1/admin/availability` | [Withdraw or restore a model](https://immiscible.fly.dev/docs/api/post-v1-admin-availability.md) | Admin key |
| `POST` | `/v1/ingest/devin` | [Ingest Devin usage](https://immiscible.fly.dev/docs/api/post-v1-ingest-devin.md) | Admin key |

## Actions and receipts

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/v1/actions/authorize` | [Authorise an action](https://immiscible.fly.dev/docs/api/post-v1-actions-authorize.md) | Agent key |
| `GET` | `/v1/actions/:id` | [Retrieve an action](https://immiscible.fly.dev/docs/api/get-v1-actions-id.md) | Agent key |
| `GET` | `/v1/actions/:id/explain` | [Explain a decision](https://immiscible.fly.dev/docs/api/get-v1-actions-id-explain.md) | Agent key |
| `POST` | `/v1/actions/:id/settle` | [Settle an action](https://immiscible.fly.dev/docs/api/post-v1-actions-id-settle.md) | Agent key |
| `POST` | `/v1/verify` | [Verify a receipt](https://immiscible.fly.dev/docs/api/post-v1-verify.md) | Public |
| `GET` | `/.well-known/immiscible-keys.json` | [Signing keys (JWKS)](https://immiscible.fly.dev/docs/api/get-well-known-immiscible-keys-json.md) | Public |
| `GET` | `/downloads/claude-code-hook.mjs` | [Download the Claude Code hook](https://immiscible.fly.dev/docs/api/get-downloads-claude-code-hook-mjs.md) | Public |
| `GET` | `/downloads/immiscible-openapi-3.0.json` | [OpenAPI (3.0)](https://immiscible.fly.dev/docs/api/get-downloads-immiscible-openapi-3-0-json.md) | Public |
| `GET` | `/downloads/immiscible-power-platform.swagger.json` | [Power Platform connector](https://immiscible.fly.dev/docs/api/get-downloads-immiscible-power-platform-swagger-json.md) | Public |
| `GET` | `/downloads/n8n-ask-immiscible.json` | [n8n workflow](https://immiscible.fly.dev/docs/api/get-downloads-n8n-ask-immiscible-json.md) | Public |
| `POST` | `/v1/actions/:id/callback` | [Create callback](https://immiscible.fly.dev/docs/api/post-v1-actions-id-callback.md) | Agent key |

## MCP

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/mcp` | [MCP server (no streams)](https://immiscible.fly.dev/docs/api/get-mcp.md) | Agent key |
| `DELETE` | `/mcp` | [MCP server (no sessions)](https://immiscible.fly.dev/docs/api/delete-mcp.md) | Agent key |
| `POST` | `/mcp` | [MCP server](https://immiscible.fly.dev/docs/api/post-mcp.md) | Agent key |
| `GET` | `/mcp/proxy/:uid` | [MCP proxy (no streams)](https://immiscible.fly.dev/docs/api/get-mcp-proxy-uid.md) | Agent key |
| `DELETE` | `/mcp/proxy/:uid` | [MCP proxy (no sessions)](https://immiscible.fly.dev/docs/api/delete-mcp-proxy-uid.md) | Agent key |
| `POST` | `/mcp/proxy/:uid` | [MCP proxy](https://immiscible.fly.dev/docs/api/post-mcp-proxy-uid.md) | Agent key |
| `GET` | `/api/w/:wid/mcp-upstreams` | [List MCP upstreams](https://immiscible.fly.dev/docs/api/get-api-w-wid-mcp-upstreams.md) | Session |
| `GET` | `/api/w/:wid/mcp-upstreams/:uid` | [Retrieve an MCP upstream](https://immiscible.fly.dev/docs/api/get-api-w-wid-mcp-upstreams-uid.md) | Session |
| `POST` | `/api/w/:wid/mcp-upstreams` | [Register an MCP upstream](https://immiscible.fly.dev/docs/api/post-api-w-wid-mcp-upstreams.md) | Session |
| `PATCH` | `/api/w/:wid/mcp-upstreams/:uid` | [Update an MCP upstream](https://immiscible.fly.dev/docs/api/patch-api-w-wid-mcp-upstreams-uid.md) | Session |
| `DELETE` | `/api/w/:wid/mcp-upstreams/:uid` | [Remove an MCP upstream](https://immiscible.fly.dev/docs/api/delete-api-w-wid-mcp-upstreams-uid.md) | Session |
| `POST` | `/api/w/:wid/mcp-upstreams/:uid/discover` | [Refresh discovery](https://immiscible.fly.dev/docs/api/post-api-w-wid-mcp-upstreams-uid-discover.md) | Session |
| `GET` | `/mcp/server-card` | [MCP server card](https://immiscible.fly.dev/docs/api/get-mcp-server-card.md) | Agent key |

## Agents and the kill switch

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/agents` | [List agents](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents.md) | Session |
| `POST` | `/api/w/:wid/agents` | [Register an agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents.md) | Session |
| `PATCH` | `/api/w/:wid/agents/:aid` | [Rename an agent](https://immiscible.fly.dev/docs/api/patch-api-w-wid-agents-aid.md) | Session |
| `DELETE` | `/api/w/:wid/agents/:aid` | [Remove an agent](https://immiscible.fly.dev/docs/api/delete-api-w-wid-agents-aid.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/freeze` | [Freeze an agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-freeze.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/unfreeze` | [Unfreeze an agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-unfreeze.md) | Session |
| `GET` | `/api/w/:wid/agents/:aid/freezes` | [Freeze history](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-freezes.md) | Session |
| `POST` | `/api/w/:wid/freeze` | [Freeze agents in bulk](https://immiscible.fly.dev/docs/api/post-api-w-wid-freeze.md) | Session |
| `POST` | `/api/w/:wid/freeze/:batchId/lift` | [Lift a bulk freeze](https://immiscible.fly.dev/docs/api/post-api-w-wid-freeze-batchid-lift.md) | Session |
| `POST` | `/api/w/:wid/drills` | [Run a drill](https://immiscible.fly.dev/docs/api/post-api-w-wid-drills.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/keys` | [Issue an agent key](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-keys.md) | Session |
| `GET` | `/api/w/:wid/freeze/pending` | [List pending freezes](https://immiscible.fly.dev/docs/api/get-api-w-wid-freeze-pending.md) | Session |
| `POST` | `/api/w/:wid/freeze/pending/:pid/confirm` | [Confirm a pending freeze](https://immiscible.fly.dev/docs/api/post-api-w-wid-freeze-pending-pid-confirm.md) | Session |
| `POST` | `/api/w/:wid/freeze/pending/:pid/dismiss` | [Dismiss a pending freeze](https://immiscible.fly.dev/docs/api/post-api-w-wid-freeze-pending-pid-dismiss.md) | Session |

## Autonomy and governance

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/api/w/:wid/settings/starting-tier/confirm` | [Confirm the starting tier](https://immiscible.fly.dev/docs/api/post-api-w-wid-settings-starting-tier-confirm.md) | Session |
| `GET` | `/api/w/:wid/governance/roles` | [List governance roles](https://immiscible.fly.dev/docs/api/get-api-w-wid-governance-roles.md) | Session |
| `POST` | `/api/w/:wid/governance/roles` | [Grant or remove a governance role](https://immiscible.fly.dev/docs/api/post-api-w-wid-governance-roles.md) | Session |
| `GET` | `/api/w/:wid/agents/:aid/standing` | [Retrieve an agent's standing](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-standing.md) | Session |
| `PATCH` | `/api/w/:wid/agents/:aid/standing` | [Update an agent's standing](https://immiscible.fly.dev/docs/api/patch-api-w-wid-agents-aid-standing.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/signoffs` | [Sign off a promotion](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-signoffs.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/tier` | [Promote or demote an agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-tier.md) | Session |
| `GET` | `/api/w/:wid/governance/approvers` | [Approver health](https://immiscible.fly.dev/docs/api/get-api-w-wid-governance-approvers.md) | Session |
| `GET` | `/api/w/:wid/governance/scorecard` | [Zero trust scorecard](https://immiscible.fly.dev/docs/api/get-api-w-wid-governance-scorecard.md) | Session |

## Mandates and approvals

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/mandate-templates` | [List mandate templates](https://immiscible.fly.dev/docs/api/get-api-w-wid-mandate-templates.md) | Session |
| `GET` | `/api/w/:wid/mandates` | [List mandates](https://immiscible.fly.dev/docs/api/get-api-w-wid-mandates.md) | Session |
| `POST` | `/api/w/:wid/mandates/preview` | [Preview mandate](https://immiscible.fly.dev/docs/api/post-api-w-wid-mandates-preview.md) | Session |
| `POST` | `/api/w/:wid/mandates` | [Create a mandate](https://immiscible.fly.dev/docs/api/post-api-w-wid-mandates.md) | Session |
| `POST` | `/api/w/:wid/mandates/:mid/revoke` | [Revoke a mandate](https://immiscible.fly.dev/docs/api/post-api-w-wid-mandates-mid-revoke.md) | Session |
| `GET` | `/api/w/:wid/approvals` | [List approvals](https://immiscible.fly.dev/docs/api/get-api-w-wid-approvals.md) | Session |
| `GET` | `/api/w/:wid/approvals/suggestions` | [Suggested rules](https://immiscible.fly.dev/docs/api/get-api-w-wid-approvals-suggestions.md) | Session |
| `GET` | `/api/w/:wid/approvals/:apid` | [Retrieve an approval](https://immiscible.fly.dev/docs/api/get-api-w-wid-approvals-apid.md) | Session |
| `GET` | `/api/w/:wid/approvals/:apid/rule-reference` | [Get rule reference](https://immiscible.fly.dev/docs/api/get-api-w-wid-approvals-apid-rule-reference.md) | Session |
| `POST` | `/api/w/:wid/approvals/:apid/feedback` | [Rate the rules' verdict](https://immiscible.fly.dev/docs/api/post-api-w-wid-approvals-apid-feedback.md) | Session |
| `POST` | `/api/w/:wid/approvals/:apid/remind` | [Create remind](https://immiscible.fly.dev/docs/api/post-api-w-wid-approvals-apid-remind.md) | Session |
| `POST` | `/api/w/:wid/approvals/:apid/approve` | [Approve](https://immiscible.fly.dev/docs/api/post-api-w-wid-approvals-apid-approve.md) | Session |
| `POST` | `/api/w/:wid/approvals/:apid/deny` | [Deny](https://immiscible.fly.dev/docs/api/post-api-w-wid-approvals-apid-deny.md) | Session |
| `GET` | `/api/w/:wid/vault` | [Read the vault](https://immiscible.fly.dev/docs/api/get-api-w-wid-vault.md) | Session |
| `GET` | `/api/w/:wid/vault/releases` | [Vault releases](https://immiscible.fly.dev/docs/api/get-api-w-wid-vault-releases.md) | Session |
| `PUT` | `/api/w/:wid/vault/:field` | [Store a vault field](https://immiscible.fly.dev/docs/api/put-api-w-wid-vault-field.md) | Session |
| `DELETE` | `/api/w/:wid/vault/:field` | [Delete a vault field](https://immiscible.fly.dev/docs/api/delete-api-w-wid-vault-field.md) | Session |
| `GET` | `/api/w/:wid/actions` | [List actions](https://immiscible.fly.dev/docs/api/get-api-w-wid-actions.md) | Session |
| `GET` | `/api/w/:wid/actions/:id` | [Retrieve an action](https://immiscible.fly.dev/docs/api/get-api-w-wid-actions-id.md) | Session |

## Evidence

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/evidence/bundle/stream` | [Stream the evidence bundle](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-bundle-stream.md) | Session |
| `GET` | `/api/w/:wid/activity` | [Activity](https://immiscible.fly.dev/docs/api/get-api-w-wid-activity.md) | Session |
| `GET` | `/api/w/:wid/evidence/verify` | [Verify the chain](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-verify.md) | Session |
| `GET` | `/api/w/:wid/evidence/pack` | [Evidence pack](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-pack.md) | Session |
| `GET` | `/api/w/:wid/evidence/checkpoints` | [List checkpoints](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-checkpoints.md) | Session |
| `POST` | `/api/w/:wid/evidence/checkpoints` | [Sign a checkpoint now](https://immiscible.fly.dev/docs/api/post-api-w-wid-evidence-checkpoints.md) | Session |
| `GET` | `/api/w/:wid/evidence/bundle` | [Evidence bundle](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-bundle.md) | Session |
| `GET` | `/api/w/:wid/evidence/ai-act` | [EU AI Act deployer evidence pack](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-ai-act.md) | Session |
| `POST` | `/api/w/:wid/evidence/checkpoints/verify` | [Verify a checkpoint](https://immiscible.fly.dev/docs/api/post-api-w-wid-evidence-checkpoints-verify.md) | Session |
| `GET` | `/api/w/:wid/evidence/auditor-bundle` | [Get auditor bundle](https://immiscible.fly.dev/docs/api/get-api-w-wid-evidence-auditor-bundle.md) | Session |
| `GET` | `/api/w/:wid/audit` | [Console audit log](https://immiscible.fly.dev/docs/api/get-api-w-wid-audit.md) | Session |

## Oversight

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/reviews` | [List reviews](https://immiscible.fly.dev/docs/api/get-api-w-wid-reviews.md) | Session |
| `POST` | `/api/w/:wid/reviews/:id` | [Give a review verdict](https://immiscible.fly.dev/docs/api/post-api-w-wid-reviews-id.md) | Session |
| `GET` | `/api/w/:wid/certifications` | [List recertification campaigns](https://immiscible.fly.dev/docs/api/get-api-w-wid-certifications.md) | Session |
| `POST` | `/api/w/:wid/certifications` | [Start a recertification campaign](https://immiscible.fly.dev/docs/api/post-api-w-wid-certifications.md) | Session |
| `GET` | `/api/w/:wid/certifications/:cid` | [Retrieve a campaign](https://immiscible.fly.dev/docs/api/get-api-w-wid-certifications-cid.md) | Session |
| `POST` | `/api/w/:wid/certifications/:cid/agents/:aid` | [Certify or revoke an agent's access](https://immiscible.fly.dev/docs/api/post-api-w-wid-certifications-cid-agents-aid.md) | Session |
| `GET` | `/api/w/:wid/traces/:traceId` | [Retrieve a trace](https://immiscible.fly.dev/docs/api/get-api-w-wid-traces-traceid.md) | Session |

## Identity and access

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/agents/:aid/connections` | [List an agent's connected apps](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-connections.md) | Session |
| `DELETE` | `/api/w/:wid/agents/:aid/connections/:gid` | [Disconnect an app from an agent](https://immiscible.fly.dev/docs/api/delete-api-w-wid-agents-aid-connections-gid.md) | Session |
| `GET` | `/api/me/connections` | [List my connected apps](https://immiscible.fly.dev/docs/api/get-api-me-connections.md) | Session |
| `DELETE` | `/api/me/connections/:gid` | [Disconnect one of my apps](https://immiscible.fly.dev/docs/api/delete-api-me-connections-gid.md) | Session |
| `GET` | `/api/w/:wid/applications` | [List applications](https://immiscible.fly.dev/docs/api/get-api-w-wid-applications.md) | Session |
| `POST` | `/api/w/:wid/applications` | [Register an application](https://immiscible.fly.dev/docs/api/post-api-w-wid-applications.md) | Session |
| `GET` | `/api/w/:wid/applications/proposals` | [List application proposals](https://immiscible.fly.dev/docs/api/get-api-w-wid-applications-proposals.md) | Session |
| `POST` | `/api/w/:wid/applications/proposals/:pid/confirm` | [Confirm an application change](https://immiscible.fly.dev/docs/api/post-api-w-wid-applications-proposals-pid-confirm.md) | Session |
| `GET` | `/api/w/:wid/applications/:id` | [Retrieve an application](https://immiscible.fly.dev/docs/api/get-api-w-wid-applications-id.md) | Session |
| `POST` | `/api/w/:wid/applications/:id/accept-manifest` | [Accept a changed tool manifest](https://immiscible.fly.dev/docs/api/post-api-w-wid-applications-id-accept-manifest.md) | Session |
| `POST` | `/api/w/:wid/applications/:id/retire` | [Retire an application](https://immiscible.fly.dev/docs/api/post-api-w-wid-applications-id-retire.md) | Session |
| `GET` | `/api/w/:wid/agents/:aid/profile` | [Retrieve an access profile](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-profile.md) | Session |
| `GET` | `/api/w/:wid/agents/:aid/profile/diff` | [Diff two profile versions](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-profile-diff.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/profile/verify` | [Verify a signed profile](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-profile-verify.md) | Session |
| `GET` | `/api/w/:wid/agents/:aid/allowlists` | [Retrieve allowlists](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-allowlists.md) | Session |
| `PUT` | `/api/w/:wid/agents/:aid/allowlists` | [Set allowlists](https://immiscible.fly.dev/docs/api/put-api-w-wid-agents-aid-allowlists.md) | Session |
| `GET` | `/api/w/:wid/members/:uid/entitlements` | [Retrieve entitlements](https://immiscible.fly.dev/docs/api/get-api-w-wid-members-uid-entitlements.md) | Session |
| `PUT` | `/api/w/:wid/members/:uid/entitlements` | [Set entitlements](https://immiscible.fly.dev/docs/api/put-api-w-wid-members-uid-entitlements.md) | Session |
| `GET` | `/api/w/:wid/sso/group-entitlements` | [List SSO group mappings](https://immiscible.fly.dev/docs/api/get-api-w-wid-sso-group-entitlements.md) | Session |
| `PUT` | `/api/w/:wid/sso/group-entitlements` | [Map SSO groups to entitlements](https://immiscible.fly.dev/docs/api/put-api-w-wid-sso-group-entitlements.md) | Session |

## Card rail

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/issuing/:wid/stripe` | [Stripe Issuing webhook](https://immiscible.fly.dev/docs/api/post-issuing-wid-stripe.md) | Signature |
| `POST` | `/issuing/:wid/generic/authorize` | [Authorise a card payment (any issuer)](https://immiscible.fly.dev/docs/api/post-issuing-wid-generic-authorize.md) | Signature |
| `POST` | `/issuing/:wid/generic/clear` | [Clear a card payment (any issuer)](https://immiscible.fly.dev/docs/api/post-issuing-wid-generic-clear.md) | Signature |
| `GET` | `/api/w/:wid/issuing` | [Card rail status](https://immiscible.fly.dev/docs/api/get-api-w-wid-issuing.md) | Session |
| `GET` | `/api/w/:wid/issuing/categories` | [Merchant codes per category](https://immiscible.fly.dev/docs/api/get-api-w-wid-issuing-categories.md) | Session |
| `PUT` | `/api/w/:wid/issuing/categories/:category` | [Set a category's merchant codes](https://immiscible.fly.dev/docs/api/put-api-w-wid-issuing-categories-category.md) | Session |
| `PUT` | `/api/w/:wid/issuing/:issuer` | [Connect a card issuer](https://immiscible.fly.dev/docs/api/put-api-w-wid-issuing-issuer.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/cards` | [Bind a card to an agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-cards.md) | Session |
| `GET` | `/api/w/:wid/issuing/proposals` | [List card proposals](https://immiscible.fly.dev/docs/api/get-api-w-wid-issuing-proposals.md) | Session |
| `POST` | `/api/w/:wid/issuing/proposals/:pid/confirm` | [Confirm a card proposal](https://immiscible.fly.dev/docs/api/post-api-w-wid-issuing-proposals-pid-confirm.md) | Session |
| `DELETE` | `/api/w/:wid/cards/:cid` | [Unbind a card](https://immiscible.fly.dev/docs/api/delete-api-w-wid-cards-cid.md) | Session |
| `GET` | `/api/w/:wid/card-authorizations` | [List card authorisations](https://immiscible.fly.dev/docs/api/get-api-w-wid-card-authorizations.md) | Session |

## Vendors and discovery

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/openrouter` | [OpenRouter routes and preferences](https://immiscible.fly.dev/docs/api/get-api-w-wid-openrouter.md) | Session |
| `PUT` | `/api/w/:wid/openrouter` | [Set OpenRouter preferences](https://immiscible.fly.dev/docs/api/put-api-w-wid-openrouter.md) | Session |
| `GET` | `/api/w/:wid/discovery` | [Discovery inventory](https://immiscible.fly.dev/docs/api/get-api-w-wid-discovery.md) | Session |
| `PUT` | `/api/w/:wid/discovery/:vendor` | [Connect a vendor for discovery](https://immiscible.fly.dev/docs/api/put-api-w-wid-discovery-vendor.md) | Session |
| `PATCH` | `/api/w/:wid/discovery/:vendor` | [Change a vendor's policy or schedule](https://immiscible.fly.dev/docs/api/patch-api-w-wid-discovery-vendor.md) | Session |
| `DELETE` | `/api/w/:wid/discovery/:vendor` | [Disconnect a vendor](https://immiscible.fly.dev/docs/api/delete-api-w-wid-discovery-vendor.md) | Session |
| `POST` | `/api/w/:wid/discovery/:vendor/sync` | [Sync a vendor now](https://immiscible.fly.dev/docs/api/post-api-w-wid-discovery-vendor-sync.md) | Session |
| `GET` | `/api/w/:wid/discovery/items/:id` | [A discovered item](https://immiscible.fly.dev/docs/api/get-api-w-wid-discovery-items-id.md) | Session |
| `POST` | `/api/w/:wid/discovery/items/:id/control` | [Bring an item under control](https://immiscible.fly.dev/docs/api/post-api-w-wid-discovery-items-id-control.md) | Session |
| `POST` | `/api/w/:wid/discovery/items/:id/ignore` | [Ignore an item](https://immiscible.fly.dev/docs/api/post-api-w-wid-discovery-items-id-ignore.md) | Session |
| `POST` | `/api/w/:wid/discovery/items/:id/revoke` | [Propose revoking a key at its vendor](https://immiscible.fly.dev/docs/api/post-api-w-wid-discovery-items-id-revoke.md) | Session |
| `GET` | `/api/w/:wid/vendor-proposals` | [Vendor proposals](https://immiscible.fly.dev/docs/api/get-api-w-wid-vendor-proposals.md) | Session |
| `POST` | `/api/w/:wid/vendor-proposals/:pid/confirm` | [Confirm a vendor proposal](https://immiscible.fly.dev/docs/api/post-api-w-wid-vendor-proposals-pid-confirm.md) | Session |
| `POST` | `/api/w/:wid/vendor-proposals/:pid/dismiss` | [Dismiss a vendor proposal](https://immiscible.fly.dev/docs/api/post-api-w-wid-vendor-proposals-pid-dismiss.md) | Session |
| `GET` | `/api/w/:wid/ramp` | [Ramp status, cards and charges](https://immiscible.fly.dev/docs/api/get-api-w-wid-ramp.md) | Session |
| `PUT` | `/api/w/:wid/ramp` | [Connect Ramp](https://immiscible.fly.dev/docs/api/put-api-w-wid-ramp.md) | Session |
| `PATCH` | `/api/w/:wid/ramp` | [Change Ramp options](https://immiscible.fly.dev/docs/api/patch-api-w-wid-ramp.md) | Session |
| `DELETE` | `/api/w/:wid/ramp` | [Disconnect Ramp](https://immiscible.fly.dev/docs/api/delete-api-w-wid-ramp.md) | Session |
| `POST` | `/api/w/:wid/ramp/sync` | [Import Ramp charges now](https://immiscible.fly.dev/docs/api/post-api-w-wid-ramp-sync.md) | Session |
| `PUT` | `/api/w/:wid/ramp/cards/:cardId` | [Map a Ramp card to an agent](https://immiscible.fly.dev/docs/api/put-api-w-wid-ramp-cards-cardid.md) | Session |
| `POST` | `/api/w/:wid/ramp/cards/:cardId/unlock` | [Propose unlocking a Ramp card](https://immiscible.fly.dev/docs/api/post-api-w-wid-ramp-cards-cardid-unlock.md) | Session |
| `GET` | `/api/w/:wid/ramp/transactions` | [Ramp charges](https://immiscible.fly.dev/docs/api/get-api-w-wid-ramp-transactions.md) | Session |
| `GET` | `/api/w/:wid/ramp/transactions/:tid` | [Why a Ramp charge happened](https://immiscible.fly.dev/docs/api/get-api-w-wid-ramp-transactions-tid.md) | Session |

## Personal workspaces

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/personal` | [Personal setup](https://immiscible.fly.dev/docs/api/get-api-w-wid-personal.md) | Session |
| `POST` | `/api/w/:wid/personal/setup` | [Apply personal defaults](https://immiscible.fly.dev/docs/api/post-api-w-wid-personal-setup.md) | Session |
| `POST` | `/api/w/:wid/personal/agents` | [Add a personal agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-personal-agents.md) | Session |
| `POST` | `/api/w/:wid/personal/stop` | [The kill switch](https://immiscible.fly.dev/docs/api/post-api-w-wid-personal-stop.md) | Session |

## SIEM and Shared Signals

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/export/ocsf` | [Export as OCSF](https://immiscible.fly.dev/docs/api/get-api-w-wid-export-ocsf.md) | Session |
| `GET` | `/api/w/:wid/export/otel` | [Export as OpenTelemetry](https://immiscible.fly.dev/docs/api/get-api-w-wid-export-otel.md) | Session |
| `GET` | `/api/w/:wid/webhooks` | [List webhooks](https://immiscible.fly.dev/docs/api/get-api-w-wid-webhooks.md) | Session |
| `POST` | `/api/w/:wid/webhooks` | [Create a webhook](https://immiscible.fly.dev/docs/api/post-api-w-wid-webhooks.md) | Session |
| `DELETE` | `/api/w/:wid/webhooks/:id` | [Delete a webhook](https://immiscible.fly.dev/docs/api/delete-api-w-wid-webhooks-id.md) | Session |
| `PATCH` | `/api/w/:wid/webhooks/:id` | [Change a webhook](https://immiscible.fly.dev/docs/api/patch-api-w-wid-webhooks-id.md) | Session |
| `POST` | `/api/w/:wid/webhooks/:id/rotate-secret` | [Rotate a webhook's secret](https://immiscible.fly.dev/docs/api/post-api-w-wid-webhooks-id-rotate-secret.md) | Session |
| `POST` | `/api/w/:wid/webhooks/:id/test` | [Send a test delivery](https://immiscible.fly.dev/docs/api/post-api-w-wid-webhooks-id-test.md) | Session |
| `GET` | `/api/w/:wid/webhooks/:id/deliveries` | [List deliveries](https://immiscible.fly.dev/docs/api/get-api-w-wid-webhooks-id-deliveries.md) | Session |
| `POST` | `/api/w/:wid/webhooks/:id/deliveries/:did/resend` | [Send a delivery again](https://immiscible.fly.dev/docs/api/post-api-w-wid-webhooks-id-deliveries-did-resend.md) | Session |
| `GET` | `/api/w/:wid/ssf/transmitter` | [Retrieve the SSF transmitter](https://immiscible.fly.dev/docs/api/get-api-w-wid-ssf-transmitter.md) | Session |
| `PUT` | `/api/w/:wid/ssf/transmitter` | [Configure the SSF transmitter](https://immiscible.fly.dev/docs/api/put-api-w-wid-ssf-transmitter.md) | Session |
| `DELETE` | `/api/w/:wid/ssf/transmitter` | [Remove the SSF transmitter](https://immiscible.fly.dev/docs/api/delete-api-w-wid-ssf-transmitter.md) | Session |
| `POST` | `/ssf/:wid/events` | [Receive a Security Event Token](https://immiscible.fly.dev/docs/api/post-ssf-wid-events.md) | Signature |
| `POST` | `/webhooks/stripe` | [Stripe billing webhook](https://immiscible.fly.dev/docs/api/post-webhooks-stripe.md) | Signature |

## Chat approvals

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/slack/install` | [Install the Slack app](https://immiscible.fly.dev/docs/api/get-slack-install.md) | Session |
| `GET` | `/slack/oauth/callback` | [Slack install callback](https://immiscible.fly.dev/docs/api/get-slack-oauth-callback.md) | Session |
| `POST` | `/slack/interactions` | [Slack interactions](https://immiscible.fly.dev/docs/api/post-slack-interactions.md) | Signature |
| `POST` | `/slack/commands` | [Slack slash command](https://immiscible.fly.dev/docs/api/post-slack-commands.md) | Signature |
| `POST` | `/slack/events` | [Create event](https://immiscible.fly.dev/docs/api/post-slack-events.md) | Public |
| `POST` | `/teams/callback/:wid` | [Teams callback](https://immiscible.fly.dev/docs/api/post-teams-callback-wid.md) | Signature |
| `GET` | `/api/w/:wid/chat` | [Chat connections](https://immiscible.fly.dev/docs/api/get-api-w-wid-chat.md) | Session |
| `PUT` | `/api/w/:wid/chat/settings` | [Set the chat line](https://immiscible.fly.dev/docs/api/put-api-w-wid-chat-settings.md) | Session |
| `PUT` | `/api/w/:wid/chat/:provider` | [Configure Slack or Teams](https://immiscible.fly.dev/docs/api/put-api-w-wid-chat-provider.md) | Session |
| `DELETE` | `/api/w/:wid/chat/:provider` | [Disconnect Slack or Teams](https://immiscible.fly.dev/docs/api/delete-api-w-wid-chat-provider.md) | Session |
| `POST` | `/api/w/:wid/chat/:provider/test` | [Send a test message](https://immiscible.fly.dev/docs/api/post-api-w-wid-chat-provider-test.md) | Session |
| `GET` | `/api/w/:wid/chat/:provider/members` | [List mapped members](https://immiscible.fly.dev/docs/api/get-api-w-wid-chat-provider-members.md) | Session |
| `POST` | `/api/w/:wid/chat/:provider/members` | [Map one member](https://immiscible.fly.dev/docs/api/post-api-w-wid-chat-provider-members.md) | Session |
| `POST` | `/api/w/:wid/chat/:provider/members/sync` | [Map every member by email](https://immiscible.fly.dev/docs/api/post-api-w-wid-chat-provider-members-sync.md) | Session |
| `DELETE` | `/api/w/:wid/chat/:provider/members/:externalId` | [Unmap a member](https://immiscible.fly.dev/docs/api/delete-api-w-wid-chat-provider-members-externalid.md) | Session |
| `POST` | `/teams/messages` | [Create message](https://immiscible.fly.dev/docs/api/post-teams-messages.md) | Public |

## Machine admin

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/service-tokens` | [List service tokens](https://immiscible.fly.dev/docs/api/get-api-w-wid-service-tokens.md) | Session |
| `POST` | `/api/w/:wid/service-tokens` | [Create a service token](https://immiscible.fly.dev/docs/api/post-api-w-wid-service-tokens.md) | Session |
| `DELETE` | `/api/w/:wid/service-tokens/:tid` | [Revoke a service token](https://immiscible.fly.dev/docs/api/delete-api-w-wid-service-tokens-tid.md) | Session |
| `GET` | `/v1/admin/agents` | [List agents (machine)](https://immiscible.fly.dev/docs/api/get-v1-admin-agents.md) | Service token |
| `POST` | `/v1/admin/agents` | [Register an agent from a blueprint](https://immiscible.fly.dev/docs/api/post-v1-admin-agents.md) | Service token |
| `POST` | `/v1/admin/agents/:aid/freeze` | [Freeze an agent (machine)](https://immiscible.fly.dev/docs/api/post-v1-admin-agents-aid-freeze.md) | Service token |
| `POST` | `/v1/admin/freeze` | [Freeze agents in bulk (machine)](https://immiscible.fly.dev/docs/api/post-v1-admin-freeze.md) | Service token |
| `POST` | `/v1/admin/drills` | [Run a drill (machine)](https://immiscible.fly.dev/docs/api/post-v1-admin-drills.md) | Service token |
| `GET` | `/v1/admin/approvals` | [Waiting approvals (machine)](https://immiscible.fly.dev/docs/api/get-v1-admin-approvals.md) | Service token |
| `GET` | `/v1/admin/scorecard` | [Scorecard (machine)](https://immiscible.fly.dev/docs/api/get-v1-admin-scorecard.md) | Service token |
| `GET` | `/v1/admin/evidence/bundle` | [Evidence bundle (machine)](https://immiscible.fly.dev/docs/api/get-v1-admin-evidence-bundle.md) | Service token |

## Developer CLI

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/oauth/device` | [Start a CLI sign-in](https://immiscible.fly.dev/docs/api/post-oauth-device.md) | Public |
| `GET` | `/api/me/device` | [Look up a CLI sign-in code](https://immiscible.fly.dev/docs/api/get-api-me-device.md) | Session |
| `POST` | `/api/me/device` | [Allow or deny a CLI sign-in](https://immiscible.fly.dev/docs/api/post-api-me-device.md) | Session |
| `GET` | `/api/me/cli-tokens` | [Your CLI sign-ins](https://immiscible.fly.dev/docs/api/get-api-me-cli-tokens.md) | Session |
| `DELETE` | `/api/me/cli-tokens/:tid` | [End one of your CLI sign-ins](https://immiscible.fly.dev/docs/api/delete-api-me-cli-tokens-tid.md) | Session |
| `GET` | `/api/w/:wid/cli-tokens` | [The workspace's CLI sign-ins](https://immiscible.fly.dev/docs/api/get-api-w-wid-cli-tokens.md) | Session |
| `POST` | `/api/w/:wid/cli-tokens` | [Make a CI token in the console](https://immiscible.fly.dev/docs/api/post-api-w-wid-cli-tokens.md) | Session |
| `DELETE` | `/api/w/:wid/cli-tokens/:tid` | [End a CLI sign-in](https://immiscible.fly.dev/docs/api/delete-api-w-wid-cli-tokens-tid.md) | Session |
| `GET` | `/v1/cli/whoami` | [Who the CLI token acts for](https://immiscible.fly.dev/docs/api/get-v1-cli-whoami.md) | CLI token |
| `GET` | `/v1/cli/purposes` | [What an agent can be for](https://immiscible.fly.dev/docs/api/get-v1-cli-purposes.md) | CLI token |
| `GET` | `/v1/cli/agents` | [List agents](https://immiscible.fly.dev/docs/api/get-v1-cli-agents.md) | CLI token |
| `POST` | `/v1/cli/agents` | [Add an agent with its rule and key](https://immiscible.fly.dev/docs/api/post-v1-cli-agents.md) | CLI token |
| `GET` | `/v1/cli/status` | [Waiting approvals, today, this month](https://immiscible.fly.dev/docs/api/get-v1-cli-status.md) | CLI token |
| `GET` | `/v1/cli/evidence/ai-act` | [EU AI Act deployer evidence pack](https://immiscible.fly.dev/docs/api/get-v1-cli-evidence-ai-act.md) | CLI token |
| `POST` | `/v1/cli/tokens` | [Make a CI token](https://immiscible.fly.dev/docs/api/post-v1-cli-tokens.md) | CLI token |
| `GET` | `/v1/cli/tokens` | [List your CLI tokens](https://immiscible.fly.dev/docs/api/get-v1-cli-tokens.md) | CLI token |
| `DELETE` | `/v1/cli/tokens/:tid` | [Revoke one of your CLI tokens](https://immiscible.fly.dev/docs/api/delete-v1-cli-tokens-tid.md) | CLI token |
| `DELETE` | `/v1/cli/token` | [Revoke this CLI token](https://immiscible.fly.dev/docs/api/delete-v1-cli-token.md) | CLI token |
| `GET` | `/v1/cli/agent-key` | [Check an agent key](https://immiscible.fly.dev/docs/api/get-v1-cli-agent-key.md) | Agent key |
| `POST` | `/v1/cli/test` | [Make the setup test call](https://immiscible.fly.dev/docs/api/post-v1-cli-test.md) | Agent key |

## Finance

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid/finance/summary` | [Finance summary](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-summary.md) | Session |
| `GET` | `/api/w/:wid/finance/reconciliation` | [Reconciliation](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-reconciliation.md) | Session |
| `POST` | `/api/w/:wid/finance/reconciliation` | [Upload a provider billing export](https://immiscible.fly.dev/docs/api/post-api-w-wid-finance-reconciliation.md) | Session |
| `GET` | `/api/w/:wid/finance/admin-keys` | [Provider admin keys](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-admin-keys.md) | Session |
| `PUT` | `/api/w/:wid/finance/admin-keys/:provider` | [Save a provider admin key](https://immiscible.fly.dev/docs/api/put-api-w-wid-finance-admin-keys-provider.md) | Session |
| `DELETE` | `/api/w/:wid/finance/admin-keys/:provider` | [Remove a provider admin key](https://immiscible.fly.dev/docs/api/delete-api-w-wid-finance-admin-keys-provider.md) | Session |
| `PUT` | `/api/w/:wid/finance/gateway-keys` | [Map gateway keys for finance](https://immiscible.fly.dev/docs/api/put-api-w-wid-finance-gateway-keys.md) | Session |
| `PUT` | `/api/w/:wid/finance/teams/:tid/cost-centre` | [Set a team's cost centre](https://immiscible.fly.dev/docs/api/put-api-w-wid-finance-teams-tid-cost-centre.md) | Session |
| `GET` | `/api/w/:wid/finance/chargebacks` | [Chargebacks](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-chargebacks.md) | Session |
| `GET` | `/api/w/:wid/finance/chargebacks.csv` | [Chargebacks as CSV](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-chargebacks-csv.md) | Session |
| `GET` | `/api/w/:wid/finance/forecast` | [Forecast](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-forecast.md) | Session |
| `GET` | `/api/w/:wid/finance/anomalies` | [Anomalies](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-anomalies.md) | Session |
| `GET` | `/api/w/:wid/finance/alerts` | [List alert rules](https://immiscible.fly.dev/docs/api/get-api-w-wid-finance-alerts.md) | Session |
| `POST` | `/api/w/:wid/finance/alerts` | [Create an alert rule](https://immiscible.fly.dev/docs/api/post-api-w-wid-finance-alerts.md) | Session |
| `PATCH` | `/api/w/:wid/finance/alerts/:rid` | [Update an alert rule](https://immiscible.fly.dev/docs/api/patch-api-w-wid-finance-alerts-rid.md) | Session |
| `DELETE` | `/api/w/:wid/finance/alerts/:rid` | [Delete an alert rule](https://immiscible.fly.dev/docs/api/delete-api-w-wid-finance-alerts-rid.md) | Session |
| `POST` | `/api/w/:wid/finance/alerts/evaluate` | [Evaluate alert rules now](https://immiscible.fly.dev/docs/api/post-api-w-wid-finance-alerts-evaluate.md) | Session |
| `POST` | `/api/w/:wid/finance/alerts/test` | [Send a test alert](https://immiscible.fly.dev/docs/api/post-api-w-wid-finance-alerts-test.md) | Session |
| `PUT` | `/api/w/:wid/finance/slack` | [Set the finance Slack webhook](https://immiscible.fly.dev/docs/api/put-api-w-wid-finance-slack.md) | Session |
| `DELETE` | `/api/w/:wid/finance/slack` | [Remove the finance Slack webhook](https://immiscible.fly.dev/docs/api/delete-api-w-wid-finance-slack.md) | Session |

## The AI check

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/api/check/upload` | [Create upload](https://immiscible.fly.dev/docs/api/post-api-check-upload.md) | Public |
| `POST` | `/api/w/:wid/check` | [Create check](https://immiscible.fly.dev/docs/api/post-api-w-wid-check.md) | Session |
| `GET` | `/api/w/:wid/check/latest` | [Get latest](https://immiscible.fly.dev/docs/api/get-api-w-wid-check-latest.md) | Session |
| `GET` | `/api/check/:token` | [Retrieve check](https://immiscible.fly.dev/docs/api/get-api-check-token.md) | Public |

## Security and sign-in

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/api/auth/mfa` | [Complete sign-in with a code](https://immiscible.fly.dev/docs/api/post-api-auth-mfa.md) | Public |
| `POST` | `/api/auth/mfa/enrol` | [Start two-factor during sign-in](https://immiscible.fly.dev/docs/api/post-api-auth-mfa-enrol.md) | Public |
| `POST` | `/api/auth/mfa/enrol/confirm` | [Confirm two-factor during sign-in](https://immiscible.fly.dev/docs/api/post-api-auth-mfa-enrol-confirm.md) | Public |
| `GET` | `/api/me/mfa` | [Two-factor status](https://immiscible.fly.dev/docs/api/get-api-me-mfa.md) | Session |
| `POST` | `/api/me/mfa/enrol` | [Start two-factor enrolment](https://immiscible.fly.dev/docs/api/post-api-me-mfa-enrol.md) | Session |
| `POST` | `/api/me/mfa/confirm` | [Confirm two-factor enrolment](https://immiscible.fly.dev/docs/api/post-api-me-mfa-confirm.md) | Session |
| `POST` | `/api/me/mfa/disable` | [Turn two-factor off](https://immiscible.fly.dev/docs/api/post-api-me-mfa-disable.md) | Session |
| `POST` | `/api/me/mfa/recovery-codes` | [Replace recovery codes](https://immiscible.fly.dev/docs/api/post-api-me-mfa-recovery-codes.md) | Session |
| `GET` | `/api/w/:wid/sso` | [Single sign-on configuration](https://immiscible.fly.dev/docs/api/get-api-w-wid-sso.md) | Session |
| `PUT` | `/api/w/:wid/sso` | [Configure single sign-on](https://immiscible.fly.dev/docs/api/put-api-w-wid-sso.md) | Session |
| `DELETE` | `/api/w/:wid/sso` | [Remove single sign-on](https://immiscible.fly.dev/docs/api/delete-api-w-wid-sso.md) | Session |
| `POST` | `/api/w/:wid/sso/domains/:domain/verify` | [Verify a single sign-on domain](https://immiscible.fly.dev/docs/api/post-api-w-wid-sso-domains-domain-verify.md) | Session |
| `GET` | `/sso/start` | [Start single sign-on](https://immiscible.fly.dev/docs/api/get-sso-start.md) | Public |
| `GET` | `/sso/saml/:wid/metadata` | [Get metadata](https://immiscible.fly.dev/docs/api/get-sso-saml-wid-metadata.md) | Public |
| `POST` | `/sso/saml/:wid/acs` | [Create ac](https://immiscible.fly.dev/docs/api/post-sso-saml-wid-acs.md) | Public |
| `POST` | `/api/w/:wid/sso/saml/test` | [Test saml](https://immiscible.fly.dev/docs/api/post-api-w-wid-sso-saml-test.md) | Session |
| `GET` | `/sso/callback` | [Single sign-on callback](https://immiscible.fly.dev/docs/api/get-sso-callback.md) | Public |
| `GET` | `/api/me/sessions` | [List my sessions](https://immiscible.fly.dev/docs/api/get-api-me-sessions.md) | Session |
| `DELETE` | `/api/me/sessions/:sid` | [End a session](https://immiscible.fly.dev/docs/api/delete-api-me-sessions-sid.md) | Session |
| `POST` | `/api/me/sessions/end-others` | [End every other session](https://immiscible.fly.dev/docs/api/post-api-me-sessions-end-others.md) | Session |
| `GET` | `/api/auth/providers` | [List sign-in options](https://immiscible.fly.dev/docs/api/get-api-auth-providers.md) | Public |
| `GET` | `/auth/oidc/:provider/start` | [Sign in with a provider](https://immiscible.fly.dev/docs/api/get-auth-oidc-provider-start.md) | Public |
| `GET` | `/auth/oidc/:provider/callback` | [Provider sign-in callback](https://immiscible.fly.dev/docs/api/get-auth-oidc-provider-callback.md) | Public |
| `POST` | `/api/auth/email/start` | [Email a sign-in link and code](https://immiscible.fly.dev/docs/api/post-api-auth-email-start.md) | Public |
| `GET` | `/api/auth/email/lookup` | [Look up a sign-in link](https://immiscible.fly.dev/docs/api/get-api-auth-email-lookup.md) | Public |
| `POST` | `/api/auth/email/verify` | [Sign in with an email link or code](https://immiscible.fly.dev/docs/api/post-api-auth-email-verify.md) | Public |
| `POST` | `/api/auth/passkey/options` | [Passkey sign-in challenge](https://immiscible.fly.dev/docs/api/post-api-auth-passkey-options.md) | Public |
| `POST` | `/api/auth/passkey/verify` | [Sign in with a passkey](https://immiscible.fly.dev/docs/api/post-api-auth-passkey-verify.md) | Public |
| `POST` | `/api/auth/mfa/passkey/options` | [Passkey second-factor challenge](https://immiscible.fly.dev/docs/api/post-api-auth-mfa-passkey-options.md) | Public |
| `POST` | `/api/auth/mfa/passkey` | [Complete sign-in with a passkey](https://immiscible.fly.dev/docs/api/post-api-auth-mfa-passkey.md) | Public |
| `GET` | `/api/me/passkeys` | [List my passkeys](https://immiscible.fly.dev/docs/api/get-api-me-passkeys.md) | Session |
| `POST` | `/api/me/passkeys/options` | [Passkey registration options](https://immiscible.fly.dev/docs/api/post-api-me-passkeys-options.md) | Session |
| `POST` | `/api/me/passkeys` | [Register a passkey](https://immiscible.fly.dev/docs/api/post-api-me-passkeys.md) | Session |
| `PATCH` | `/api/me/passkeys/:id` | [Rename a passkey](https://immiscible.fly.dev/docs/api/patch-api-me-passkeys-id.md) | Session |
| `DELETE` | `/api/me/passkeys/:id` | [Remove a passkey](https://immiscible.fly.dev/docs/api/delete-api-me-passkeys-id.md) | Session |
| `GET` | `/api/me/identities` | [List linked sign-ins](https://immiscible.fly.dev/docs/api/get-api-me-identities.md) | Session |
| `DELETE` | `/api/me/identities/:provider` | [Unlink a sign-in](https://immiscible.fly.dev/docs/api/delete-api-me-identities-provider.md) | Session |
| `GET` | `/api/w/:wid/security` | [Workspace security policy](https://immiscible.fly.dev/docs/api/get-api-w-wid-security.md) | Session |
| `GET` | `/api/w/:wid/security/posture.pdf` | [Get posture (pdf)](https://immiscible.fly.dev/docs/api/get-api-w-wid-security-posture-pdf.md) | Session |
| `PUT` | `/api/w/:wid/security` | [Set the workspace security policy](https://immiscible.fly.dev/docs/api/put-api-w-wid-security.md) | Session |

## OAuth for MCP clients

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/.well-known/oauth-authorization-server` | [OAuth server metadata](https://immiscible.fly.dev/docs/api/get-well-known-oauth-authorization-server.md) | Public |
| `GET` | `/.well-known/oauth-authorization-server/mcp` | [OAuth server metadata (MCP path)](https://immiscible.fly.dev/docs/api/get-well-known-oauth-authorization-server-mcp.md) | Public |
| `GET` | `/.well-known/openid-configuration/mcp` | [OpenID configuration (MCP path)](https://immiscible.fly.dev/docs/api/get-well-known-openid-configuration-mcp.md) | Public |
| `GET` | `/.well-known/oauth-protected-resource` | [Protected resource metadata](https://immiscible.fly.dev/docs/api/get-well-known-oauth-protected-resource.md) | Public |
| `GET` | `/.well-known/oauth-protected-resource/mcp` | [Protected resource metadata (MCP path)](https://immiscible.fly.dev/docs/api/get-well-known-oauth-protected-resource-mcp.md) | Public |
| `POST` | `/oauth/register` | [Register an OAuth client](https://immiscible.fly.dev/docs/api/post-oauth-register.md) | OAuth |
| `POST` | `/oauth/token` | [Exchange or refresh a token](https://immiscible.fly.dev/docs/api/post-oauth-token.md) | OAuth |
| `POST` | `/oauth/revoke` | [Revoke a token](https://immiscible.fly.dev/docs/api/post-oauth-revoke.md) | OAuth |
| `GET` | `/oauth/authorize` | [Consent page](https://immiscible.fly.dev/docs/api/get-oauth-authorize.md) | Session |
| `POST` | `/oauth/authorize` | [Give consent](https://immiscible.fly.dev/docs/api/post-oauth-authorize.md) | Session |
| `GET` | `/oauth/platform/authorize` | [Authorize platform](https://immiscible.fly.dev/docs/api/get-oauth-platform-authorize.md) | OAuth |
| `POST` | `/oauth/platform/authorize` | [Authorize platform](https://immiscible.fly.dev/docs/api/post-oauth-platform-authorize.md) | OAuth |

## Accounts

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/api/auth/signup` | [Sign up](https://immiscible.fly.dev/docs/api/post-api-auth-signup.md) | Public |
| `POST` | `/api/auth/login` | [Sign in with a password](https://immiscible.fly.dev/docs/api/post-api-auth-login.md) | Public |
| `POST` | `/api/auth/logout` | [Sign out](https://immiscible.fly.dev/docs/api/post-api-auth-logout.md) | Session |
| `POST` | `/api/auth/verify` | [Verify an email address](https://immiscible.fly.dev/docs/api/post-api-auth-verify.md) | Public |
| `POST` | `/api/auth/resend-verification` | [Resend the verification email](https://immiscible.fly.dev/docs/api/post-api-auth-resend-verification.md) | Public |
| `POST` | `/api/auth/forgot` | [Request a password reset](https://immiscible.fly.dev/docs/api/post-api-auth-forgot.md) | Public |
| `POST` | `/api/auth/reset` | [Reset a password](https://immiscible.fly.dev/docs/api/post-api-auth-reset.md) | Public |
| `GET` | `/api/auth/invite` | [Look up an invitation](https://immiscible.fly.dev/docs/api/get-api-auth-invite.md) | Public |
| `POST` | `/api/auth/accept-invite` | [Accept an invitation](https://immiscible.fly.dev/docs/api/post-api-auth-accept-invite.md) | Public |
| `GET` | `/api/me` | [Retrieve the signed-in person](https://immiscible.fly.dev/docs/api/get-api-me.md) | Session |
| `PATCH` | `/api/me` | [Update the signed-in person](https://immiscible.fly.dev/docs/api/patch-api-me.md) | Session |
| `POST` | `/api/workspaces` | [Create a workspace](https://immiscible.fly.dev/docs/api/post-api-workspaces.md) | Session |
| `POST` | `/api/me/step-up/options` | [Create option](https://immiscible.fly.dev/docs/api/post-api-me-step-up-options.md) | Session |
| `POST` | `/api/me/step-up` | [Create step up](https://immiscible.fly.dev/docs/api/post-api-me-step-up.md) | Session |
| `GET` | `/api/me/join-requests` | [List join requests](https://immiscible.fly.dev/docs/api/get-api-me-join-requests.md) | Session |
| `GET` | `/api/me/email-preferences` | [List email preferences](https://immiscible.fly.dev/docs/api/get-api-me-email-preferences.md) | Session |
| `PUT` | `/api/me/email-preferences` | [Set email preferences](https://immiscible.fly.dev/docs/api/put-api-me-email-preferences.md) | Session |
| `GET` | `/api/me/erasures` | [List erasures](https://immiscible.fly.dev/docs/api/get-api-me-erasures.md) | Session |
| `POST` | `/api/me/erasures/:wid/cancel` | [Cancel erasure](https://immiscible.fly.dev/docs/api/post-api-me-erasures-wid-cancel.md) | Session |
| `GET` | `/api/me/erasures/:wid/certificate.pdf` | [Get certificate (pdf)](https://immiscible.fly.dev/docs/api/get-api-me-erasures-wid-certificate-pdf.md) | Session |

## Mobile and push

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/api/mobile/v1/auth/email/start` | [Phone sign-in: email a code](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-auth-email-start.md) | Public |
| `POST` | `/api/mobile/v1/auth/email/verify` | [Phone sign-in: verify the code](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-auth-email-verify.md) | Public |
| `POST` | `/api/mobile/v1/auth/token` | [Phone sign-in: exchange for a device token](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-auth-token.md) | Public |
| `POST` | `/api/mobile/v1/auth/revoke` | [Sign this phone out](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-auth-revoke.md) | Device |
| `GET` | `/api/mobile/v1/me` | [The phone's person](https://immiscible.fly.dev/docs/api/get-api-mobile-v1-me.md) | Device |
| `GET` | `/api/mobile/v1/devices` | [List my phones](https://immiscible.fly.dev/docs/api/get-api-mobile-v1-devices.md) | Device |
| `DELETE` | `/api/mobile/v1/devices/:id` | [Sign a phone out](https://immiscible.fly.dev/docs/api/delete-api-mobile-v1-devices-id.md) | Device |
| `POST` | `/api/mobile/v1/devices/current/push` | [Register this phone for push](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-devices-current-push.md) | Device |
| `GET` | `/api/mobile/v1/approvals` | [Approvals waiting for me](https://immiscible.fly.dev/docs/api/get-api-mobile-v1-approvals.md) | Device |
| `GET` | `/api/mobile/v1/w/:wid/approvals/:apid` | [Retrieve an approval (phone)](https://immiscible.fly.dev/docs/api/get-api-mobile-v1-w-wid-approvals-apid.md) | Device |
| `POST` | `/api/mobile/v1/w/:wid/approvals/:apid/step-up` | [Step up to approve](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-w-wid-approvals-apid-step-up.md) | Device |
| `POST` | `/api/mobile/v1/w/:wid/approvals/:apid/decide` | [Decide an approval (phone)](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-w-wid-approvals-apid-decide.md) | Device |
| `GET` | `/api/mobile/v1/agents` | [My agents (phone)](https://immiscible.fly.dev/docs/api/get-api-mobile-v1-agents.md) | Device |
| `POST` | `/api/mobile/v1/w/:wid/agents/:aid/freeze` | [Freeze an agent (phone)](https://immiscible.fly.dev/docs/api/post-api-mobile-v1-w-wid-agents-aid-freeze.md) | Device |
| `GET` | `/api/push/key` | [Web Push public key](https://immiscible.fly.dev/docs/api/get-api-push-key.md) | Session |
| `GET` | `/api/push/subscriptions` | [List push subscriptions](https://immiscible.fly.dev/docs/api/get-api-push-subscriptions.md) | Session |
| `POST` | `/api/push/subscriptions` | [Subscribe this browser to push](https://immiscible.fly.dev/docs/api/post-api-push-subscriptions.md) | Session |
| `DELETE` | `/api/push/subscriptions` | [Unsubscribe this browser](https://immiscible.fly.dev/docs/api/delete-api-push-subscriptions.md) | Session |
| `POST` | `/api/push/test` | [Send a test notification](https://immiscible.fly.dev/docs/api/post-api-push-test.md) | Session |

## Workspace

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/w/:wid` | [Retrieve a workspace](https://immiscible.fly.dev/docs/api/get-api-w-wid.md) | Session |
| `PATCH` | `/api/w/:wid` | [Update a workspace](https://immiscible.fly.dev/docs/api/patch-api-w-wid.md) | Session |
| `DELETE` | `/api/w/:wid` | [Delete a workspace](https://immiscible.fly.dev/docs/api/delete-api-w-wid.md) | Session |
| `GET` | `/api/w/:wid/overview` | [Workspace overview](https://immiscible.fly.dev/docs/api/get-api-w-wid-overview.md) | Session |
| `GET` | `/api/w/:wid/reports/:kind` | [Read a report](https://immiscible.fly.dev/docs/api/get-api-w-wid-reports-kind.md) | Session |
| `GET` | `/api/w/:wid/assessment` | [Shadow assessment](https://immiscible.fly.dev/docs/api/get-api-w-wid-assessment.md) | Session |
| `GET` | `/api/w/:wid/keys` | [List gateway keys](https://immiscible.fly.dev/docs/api/get-api-w-wid-keys.md) | Session |
| `POST` | `/api/w/:wid/keys` | [Issue a gateway key](https://immiscible.fly.dev/docs/api/post-api-w-wid-keys.md) | Session |
| `DELETE` | `/api/w/:wid/keys/:kid` | [Revoke a gateway key](https://immiscible.fly.dev/docs/api/delete-api-w-wid-keys-kid.md) | Session |
| `GET` | `/api/w/:wid/teams` | [List teams](https://immiscible.fly.dev/docs/api/get-api-w-wid-teams.md) | Session |
| `POST` | `/api/w/:wid/teams` | [Create a team](https://immiscible.fly.dev/docs/api/post-api-w-wid-teams.md) | Session |
| `PATCH` | `/api/w/:wid/teams/:tid` | [Update a team](https://immiscible.fly.dev/docs/api/patch-api-w-wid-teams-tid.md) | Session |
| `GET` | `/api/w/:wid/principals` | [List principals](https://immiscible.fly.dev/docs/api/get-api-w-wid-principals.md) | Session |
| `POST` | `/api/w/:wid/principals` | [Create a principal](https://immiscible.fly.dev/docs/api/post-api-w-wid-principals.md) | Session |
| `PATCH` | `/api/w/:wid/principals/:pid` | [Update a principal](https://immiscible.fly.dev/docs/api/patch-api-w-wid-principals-pid.md) | Session |
| `GET` | `/api/w/:wid/members` | [List members](https://immiscible.fly.dev/docs/api/get-api-w-wid-members.md) | Session |
| `GET` | `/api/w/:wid/members/access-review.csv` | [List access review (csv)](https://immiscible.fly.dev/docs/api/get-api-w-wid-members-access-review-csv.md) | Session |
| `DELETE` | `/api/w/:wid/invites/:email` | [Delete invite](https://immiscible.fly.dev/docs/api/delete-api-w-wid-invites-email.md) | Session |
| `POST` | `/api/w/:wid/members` | [Invite a member](https://immiscible.fly.dev/docs/api/post-api-w-wid-members.md) | Session |
| `PATCH` | `/api/w/:wid/members/:uid` | [Change a member's role](https://immiscible.fly.dev/docs/api/patch-api-w-wid-members-uid.md) | Session |
| `DELETE` | `/api/w/:wid/members/:uid` | [Remove a member](https://immiscible.fly.dev/docs/api/delete-api-w-wid-members-uid.md) | Session |
| `GET` | `/api/w/:wid/budgets` | [List budgets](https://immiscible.fly.dev/docs/api/get-api-w-wid-budgets.md) | Session |
| `POST` | `/api/w/:wid/budgets` | [Set a budget](https://immiscible.fly.dev/docs/api/post-api-w-wid-budgets.md) | Session |
| `DELETE` | `/api/w/:wid/budgets/:scope/:scopeId` | [Delete budget](https://immiscible.fly.dev/docs/api/delete-api-w-wid-budgets-scope-scopeid.md) | Session |
| `GET` | `/api/w/:wid/settings` | [Workspace settings](https://immiscible.fly.dev/docs/api/get-api-w-wid-settings.md) | Session |
| `PUT` | `/api/w/:wid/settings` | [Change workspace settings](https://immiscible.fly.dev/docs/api/put-api-w-wid-settings.md) | Session |
| `GET` | `/api/w/:wid/providers` | [List provider connections](https://immiscible.fly.dev/docs/api/get-api-w-wid-providers.md) | Session |
| `PUT` | `/api/w/:wid/providers/:provider` | [Save a provider key](https://immiscible.fly.dev/docs/api/put-api-w-wid-providers-provider.md) | Session |
| `GET` | `/api/w/:wid/models` | [Models in this workspace](https://immiscible.fly.dev/docs/api/get-api-w-wid-models.md) | Session |
| `POST` | `/api/w/:wid/models/:action` | [Change a model's availability](https://immiscible.fly.dev/docs/api/post-api-w-wid-models-action.md) | Session |
| `GET` | `/api/w/:wid/integrations` | [List integrations](https://immiscible.fly.dev/docs/api/get-api-w-wid-integrations.md) | Session |
| `POST` | `/api/w/:wid/integrations/github` | [Connect GitHub](https://immiscible.fly.dev/docs/api/post-api-w-wid-integrations-github.md) | Session |
| `DELETE` | `/api/w/:wid/integrations/github` | [Disconnect GitHub](https://immiscible.fly.dev/docs/api/delete-api-w-wid-integrations-github.md) | Session |
| `GET` | `/api/w/:wid/billing` | [Billing](https://immiscible.fly.dev/docs/api/get-api-w-wid-billing.md) | Session |
| `POST` | `/api/w/:wid/billing/checkout` | [Start checkout](https://immiscible.fly.dev/docs/api/post-api-w-wid-billing-checkout.md) | Session |
| `POST` | `/api/w/:wid/billing/portal` | [Open the billing portal](https://immiscible.fly.dev/docs/api/post-api-w-wid-billing-portal.md) | Session |
| `GET` | `/api/w/:wid/agents/:aid/money` | [An agent's spent and left](https://immiscible.fly.dev/docs/api/get-api-w-wid-agents-aid-money.md) | Session |
| `POST` | `/api/w/:wid/agents/:aid/budget-increase` | [Ask for a temporary increase](https://immiscible.fly.dev/docs/api/post-api-w-wid-agents-aid-budget-increase.md) | Session |
| `GET` | `/api/w/:wid/proposals` | [List proposals](https://immiscible.fly.dev/docs/api/get-api-w-wid-proposals.md) | Session |
| `GET` | `/api/w/:wid/proposals/:pid` | [Retrieve proposal](https://immiscible.fly.dev/docs/api/get-api-w-wid-proposals-pid.md) | Session |
| `POST` | `/api/w/:wid/proposals/:pid/confirm` | [Confirm proposal](https://immiscible.fly.dev/docs/api/post-api-w-wid-proposals-pid-confirm.md) | Session |
| `POST` | `/api/w/:wid/proposals/:pid/dismiss` | [Dismiss proposal](https://immiscible.fly.dev/docs/api/post-api-w-wid-proposals-pid-dismiss.md) | Session |
| `GET` | `/api/w/:wid/inventory` | [Get inventory](https://immiscible.fly.dev/docs/api/get-api-w-wid-inventory.md) | Session |
| `GET` | `/api/w/:wid/inventory/export.cdx.json` | [List export.cdx (json)](https://immiscible.fly.dev/docs/api/get-api-w-wid-inventory-export-cdx-json.md) | Session |
| `PUT` | `/api/w/:wid/inventory/sources/:source` | [Set source](https://immiscible.fly.dev/docs/api/put-api-w-wid-inventory-sources-source.md) | Session |
| `POST` | `/api/w/:wid/inventory/sources/:source/connect` | [Create connect](https://immiscible.fly.dev/docs/api/post-api-w-wid-inventory-sources-source-connect.md) | Session |
| `POST` | `/api/w/:wid/inventory/sources/:source/sync` | [Sync source](https://immiscible.fly.dev/docs/api/post-api-w-wid-inventory-sources-source-sync.md) | Session |
| `DELETE` | `/api/w/:wid/inventory/sources/:source` | [Delete source](https://immiscible.fly.dev/docs/api/delete-api-w-wid-inventory-sources-source.md) | Session |
| `GET` | `/api/w/:wid/inventory/:id` | [Retrieve inventory](https://immiscible.fly.dev/docs/api/get-api-w-wid-inventory-id.md) | Session |
| `PATCH` | `/api/w/:wid/inventory/:id` | [Update inventory](https://immiscible.fly.dev/docs/api/patch-api-w-wid-inventory-id.md) | Session |
| `POST` | `/api/w/:wid/inventory/:id/govern` | [Create govern](https://immiscible.fly.dev/docs/api/post-api-w-wid-inventory-id-govern.md) | Session |
| `POST` | `/api/w/:wid/inventory/:id/ignore` | [Create ignore](https://immiscible.fly.dev/docs/api/post-api-w-wid-inventory-id-ignore.md) | Session |
| `POST` | `/api/w/:wid/inventory/:id/decommission` | [Create decommission](https://immiscible.fly.dev/docs/api/post-api-w-wid-inventory-id-decommission.md) | Session |
| `POST` | `/api/w/:wid/inventory/:id/agent-card` | [Create agent card](https://immiscible.fly.dev/docs/api/post-api-w-wid-inventory-id-agent-card.md) | Session |
| `GET` | `/api/w/:wid/connect` | [Get connect](https://immiscible.fly.dev/docs/api/get-api-w-wid-connect.md) | Session |
| `GET` | `/api/w/:wid/integrations/catalogue` | [Get catalogue](https://immiscible.fly.dev/docs/api/get-api-w-wid-integrations-catalogue.md) | Session |
| `POST` | `/api/w/:wid/connect/openrouter` | [Create openrouter](https://immiscible.fly.dev/docs/api/post-api-w-wid-connect-openrouter.md) | Session |
| `POST` | `/api/w/:wid/connect/ramp` | [Create ramp](https://immiscible.fly.dev/docs/api/post-api-w-wid-connect-ramp.md) | Session |
| `POST` | `/api/w/:wid/connect/mcp/:uid` | [Post to mcp](https://immiscible.fly.dev/docs/api/post-api-w-wid-connect-mcp-uid.md) | Session |
| `POST` | `/api/w/:wid/connect/github` | [Create github](https://immiscible.fly.dev/docs/api/post-api-w-wid-connect-github.md) | Session |
| `DELETE` | `/api/w/:wid/connect/github` | [Remove github](https://immiscible.fly.dev/docs/api/delete-api-w-wid-connect-github.md) | Session |
| `GET` | `/api/w/:wid/teams/app-package` | [Get app package](https://immiscible.fly.dev/docs/api/get-api-w-wid-teams-app-package.md) | Session |
| `GET` | `/api/w/:wid/teams/link/:state` | [Retrieve link](https://immiscible.fly.dev/docs/api/get-api-w-wid-teams-link-state.md) | Session |
| `POST` | `/api/w/:wid/teams/link` | [Create link](https://immiscible.fly.dev/docs/api/post-api-w-wid-teams-link.md) | Session |
| `GET` | `/api/w/:wid/finops` | [List finops](https://immiscible.fly.dev/docs/api/get-api-w-wid-finops.md) | Session |
| `POST` | `/api/w/:wid/accounting/:provider/connect` | [Create connect](https://immiscible.fly.dev/docs/api/post-api-w-wid-accounting-provider-connect.md) | Session |
| `GET` | `/api/w/:wid/accounting/:provider` | [Retrieve accounting](https://immiscible.fly.dev/docs/api/get-api-w-wid-accounting-provider.md) | Session |
| `GET` | `/api/w/:wid/accounting/:provider/accounts` | [List accounts](https://immiscible.fly.dev/docs/api/get-api-w-wid-accounting-provider-accounts.md) | Session |
| `PUT` | `/api/w/:wid/accounting/:provider/mapping` | [Set mapping](https://immiscible.fly.dev/docs/api/put-api-w-wid-accounting-provider-mapping.md) | Session |
| `POST` | `/api/w/:wid/accounting/:provider/close` | [Create close](https://immiscible.fly.dev/docs/api/post-api-w-wid-accounting-provider-close.md) | Session |
| `DELETE` | `/api/w/:wid/accounting/:provider` | [Delete accounting](https://immiscible.fly.dev/docs/api/delete-api-w-wid-accounting-provider.md) | Session |
| `POST` | `/api/w/:wid/alerting/pagerduty/connect` | [Create connect](https://immiscible.fly.dev/docs/api/post-api-w-wid-alerting-pagerduty-connect.md) | Session |
| `GET` | `/api/w/:wid/alerting/pagerduty/services` | [List services](https://immiscible.fly.dev/docs/api/get-api-w-wid-alerting-pagerduty-services.md) | Session |
| `POST` | `/api/w/:wid/alerting/pagerduty/service` | [Create service](https://immiscible.fly.dev/docs/api/post-api-w-wid-alerting-pagerduty-service.md) | Session |
| `GET` | `/api/w/:wid/alerting/:dest` | [Retrieve alerting](https://immiscible.fly.dev/docs/api/get-api-w-wid-alerting-dest.md) | Session |
| `PUT` | `/api/w/:wid/alerting/:dest` | [Set alerting](https://immiscible.fly.dev/docs/api/put-api-w-wid-alerting-dest.md) | Session |
| `PATCH` | `/api/w/:wid/alerting/:dest` | [Update alerting](https://immiscible.fly.dev/docs/api/patch-api-w-wid-alerting-dest.md) | Session |
| `POST` | `/api/w/:wid/alerting/:dest/test` | [Test alerting](https://immiscible.fly.dev/docs/api/post-api-w-wid-alerting-dest-test.md) | Session |
| `POST` | `/api/w/:wid/alerting/:dest/retry` | [Create retry](https://immiscible.fly.dev/docs/api/post-api-w-wid-alerting-dest-retry.md) | Session |
| `DELETE` | `/api/w/:wid/alerting/:dest` | [Delete alerting](https://immiscible.fly.dev/docs/api/delete-api-w-wid-alerting-dest.md) | Session |
| `GET` | `/api/w/:wid/directory` | [Get directory](https://immiscible.fly.dev/docs/api/get-api-w-wid-directory.md) | Session |
| `POST` | `/api/w/:wid/directory/scim/token` | [Create token](https://immiscible.fly.dev/docs/api/post-api-w-wid-directory-scim-token.md) | Session |
| `DELETE` | `/api/w/:wid/directory/scim/token` | [Remove token](https://immiscible.fly.dev/docs/api/delete-api-w-wid-directory-scim-token.md) | Session |
| `POST` | `/api/w/:wid/directory/:provider/connect` | [Create connect](https://immiscible.fly.dev/docs/api/post-api-w-wid-directory-provider-connect.md) | Session |
| `GET` | `/api/w/:wid/directory/:provider/review` | [Get review](https://immiscible.fly.dev/docs/api/get-api-w-wid-directory-provider-review.md) | Session |
| `POST` | `/api/w/:wid/directory/:provider/review` | [Create review](https://immiscible.fly.dev/docs/api/post-api-w-wid-directory-provider-review.md) | Session |
| `POST` | `/api/w/:wid/directory/:provider/sync` | [Sync directory](https://immiscible.fly.dev/docs/api/post-api-w-wid-directory-provider-sync.md) | Session |
| `DELETE` | `/api/w/:wid/directory/:provider` | [Delete directory](https://immiscible.fly.dev/docs/api/delete-api-w-wid-directory-provider.md) | Session |
| `GET` | `/api/w/:wid/onboarding` | [Get onboarding](https://immiscible.fly.dev/docs/api/get-api-w-wid-onboarding.md) | Session |
| `PATCH` | `/api/w/:wid/onboarding` | [Update onboarding](https://immiscible.fly.dev/docs/api/patch-api-w-wid-onboarding.md) | Session |
| `POST` | `/api/w/:wid/onboarding/rules/preview` | [Preview rule](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-rules-preview.md) | Session |
| `PUT` | `/api/w/:wid/onboarding/rules` | [Set rules](https://immiscible.fly.dev/docs/api/put-api-w-wid-onboarding-rules.md) | Session |
| `POST` | `/api/w/:wid/onboarding/rules` | [Create rule](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-rules.md) | Session |
| `GET` | `/api/w/:wid/onboarding/example` | [Get example](https://immiscible.fly.dev/docs/api/get-api-w-wid-onboarding-example.md) | Session |
| `GET` | `/api/w/:wid/onboarding/would-hold` | [Get would hold](https://immiscible.fly.dev/docs/api/get-api-w-wid-onboarding-would-hold.md) | Session |
| `POST` | `/api/w/:wid/onboarding/spend-handoff` | [Create spend handoff](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-spend-handoff.md) | Session |
| `POST` | `/api/w/:wid/onboarding/engineer-invite` | [Create engineer invite](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-engineer-invite.md) | Session |
| `POST` | `/api/w/:wid/onboarding/invite` | [Create invite](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-invite.md) | Session |
| `GET` | `/api/w/:wid/onboarding/engineer` | [Get engineer](https://immiscible.fly.dev/docs/api/get-api-w-wid-onboarding-engineer.md) | Session |
| `POST` | `/api/w/:wid/onboarding/agents` | [Create agent](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-agents.md) | Session |
| `POST` | `/api/w/:wid/onboarding/agents/:aid/handoff` | [Create handoff](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-agents-aid-handoff.md) | Session |
| `POST` | `/api/w/:wid/onboarding/agents/:aid/handoff/email` | [Create email](https://immiscible.fly.dev/docs/api/post-api-w-wid-onboarding-agents-aid-handoff-email.md) | Session |
| `GET` | `/api/w/:wid/rules` | [List rules](https://immiscible.fly.dev/docs/api/get-api-w-wid-rules.md) | Session |
| `GET` | `/api/w/:wid/home` | [Get home](https://immiscible.fly.dev/docs/api/get-api-w-wid-home.md) | Session |
| `GET` | `/api/w/:wid/dashboards` | [List dashboards](https://immiscible.fly.dev/docs/api/get-api-w-wid-dashboards.md) | Session |
| `GET` | `/api/w/:wid/dashboards/daily` | [Get daily](https://immiscible.fly.dev/docs/api/get-api-w-wid-dashboards-daily.md) | Session |
| `GET` | `/api/w/:wid/dashboards/csv/:view` | [Retrieve csv](https://immiscible.fly.dev/docs/api/get-api-w-wid-dashboards-csv-view.md) | Session |
| `POST` | `/api/w/:wid/dashboards/sheets/connect` | [Create connect](https://immiscible.fly.dev/docs/api/post-api-w-wid-dashboards-sheets-connect.md) | Session |
| `POST` | `/api/w/:wid/dashboards/sheets/sync` | [Sync sheet](https://immiscible.fly.dev/docs/api/post-api-w-wid-dashboards-sheets-sync.md) | Session |
| `DELETE` | `/api/w/:wid/dashboards/sheets` | [Remove sheets](https://immiscible.fly.dev/docs/api/delete-api-w-wid-dashboards-sheets.md) | Session |
| `GET` | `/api/w/:wid/dashboards/board-links` | [List board links](https://immiscible.fly.dev/docs/api/get-api-w-wid-dashboards-board-links.md) | Session |
| `POST` | `/api/w/:wid/dashboards/board-links` | [Create board link](https://immiscible.fly.dev/docs/api/post-api-w-wid-dashboards-board-links.md) | Session |
| `DELETE` | `/api/w/:wid/dashboards/board-links/:id` | [Delete board link](https://immiscible.fly.dev/docs/api/delete-api-w-wid-dashboards-board-links-id.md) | Session |
| `DELETE` | `/api/w/:wid/dashboards/board-links` | [Remove board links](https://immiscible.fly.dev/docs/api/delete-api-w-wid-dashboards-board-links.md) | Session |
| `GET` | `/api/w/:wid/crypto/payments` | [List payments](https://immiscible.fly.dev/docs/api/get-api-w-wid-crypto-payments.md) | Session |
| `GET` | `/api/w/:wid/wallets` | [List wallets](https://immiscible.fly.dev/docs/api/get-api-w-wid-wallets.md) | Session |
| `PUT` | `/api/w/:wid/wallets/:provider` | [Set wallet](https://immiscible.fly.dev/docs/api/put-api-w-wid-wallets-provider.md) | Session |
| `DELETE` | `/api/w/:wid/wallets/:provider` | [Delete wallet](https://immiscible.fly.dev/docs/api/delete-api-w-wid-wallets-provider.md) | Session |
| `GET` | `/api/w/:wid/platform-apps` | [List platform apps](https://immiscible.fly.dev/docs/api/get-api-w-wid-platform-apps.md) | Session |
| `POST` | `/api/w/:wid/platform-apps` | [Create platform app](https://immiscible.fly.dev/docs/api/post-api-w-wid-platform-apps.md) | Session |
| `DELETE` | `/api/w/:wid/platform-apps/:cid` | [Delete platform app](https://immiscible.fly.dev/docs/api/delete-api-w-wid-platform-apps-cid.md) | Session |
| `GET` | `/api/w/:wid/platform-connections` | [List platform connections](https://immiscible.fly.dev/docs/api/get-api-w-wid-platform-connections.md) | Session |
| `DELETE` | `/api/w/:wid/platform-connections/:gid` | [Delete platform connection](https://immiscible.fly.dev/docs/api/delete-api-w-wid-platform-connections-gid.md) | Session |
| `GET` | `/api/w/:wid/members/:uid/sessions` | [List sessions](https://immiscible.fly.dev/docs/api/get-api-w-wid-members-uid-sessions.md) | Session |
| `DELETE` | `/api/w/:wid/members/:uid/sessions` | [Remove sessions](https://immiscible.fly.dev/docs/api/delete-api-w-wid-members-uid-sessions.md) | Session |
| `GET` | `/api/w/:wid/audit/stream` | [Get stream](https://immiscible.fly.dev/docs/api/get-api-w-wid-audit-stream.md) | Session |
| `GET` | `/api/w/:wid/retention` | [Get retention](https://immiscible.fly.dev/docs/api/get-api-w-wid-retention.md) | Session |
| `PUT` | `/api/w/:wid/retention` | [Set retention](https://immiscible.fly.dev/docs/api/put-api-w-wid-retention.md) | Session |
| `GET` | `/api/w/:wid/join-requests` | [List join requests](https://immiscible.fly.dev/docs/api/get-api-w-wid-join-requests.md) | Session |
| `POST` | `/api/w/:wid/join-requests` | [Create join request](https://immiscible.fly.dev/docs/api/post-api-w-wid-join-requests.md) | Session |
| `GET` | `/api/w/:wid/roles` | [List roles](https://immiscible.fly.dev/docs/api/get-api-w-wid-roles.md) | Session |
| `GET` | `/api/w/:wid/export.zip` | [Get export (zip)](https://immiscible.fly.dev/docs/api/get-api-w-wid-export-zip.md) | Session |

## Public

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/api/public/plans` | [Plans](https://immiscible.fly.dev/docs/api/get-api-public-plans.md) | Public |
| `GET` | `/api/public/catalog` | [Model catalogue](https://immiscible.fly.dev/docs/api/get-api-public-catalog.md) | Public |
| `GET` | `/api/public/task-classes` | [Task classes](https://immiscible.fly.dev/docs/api/get-api-public-task-classes.md) | Public |
| `GET` | `/api/public/policy-profiles` | [Policy profiles](https://immiscible.fly.dev/docs/api/get-api-public-policy-profiles.md) | Public |
| `GET` | `/api/public/clients` | [Recognised clients](https://immiscible.fly.dev/docs/api/get-api-public-clients.md) | Public |
| `POST` | `/api/leads` | [Contact sales](https://immiscible.fly.dev/docs/api/post-api-leads.md) | Public |

## Inbound webhooks

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/hooks/github-app` | [Create github app](https://immiscible.fly.dev/docs/api/post-hooks-github-app.md) | Signature |
| `POST` | `/hooks/github/:wid` | [GitHub webhook](https://immiscible.fly.dev/docs/api/post-hooks-github-wid.md) | Signature |

## Health

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `GET` | `/healthz` | [Liveness](https://immiscible.fly.dev/docs/api/get-healthz.md) | Public |
| `GET` | `/readyz` | [Readiness](https://immiscible.fly.dev/docs/api/get-readyz.md) | Public |

## Other

| Method | Path | Endpoint | Auth |
|---|---|---|---|
| `POST` | `/v1/hooks/claude-code` | [Claude Code http hook](https://immiscible.fly.dev/docs/api/post-v1-hooks-claude-code.md) | Workspace key |
| `GET` | `/.well-known/assay-keys.json` | [List assay keys (json)](https://immiscible.fly.dev/docs/api/get-well-known-assay-keys-json.md) | Public |
| `GET` | `/connect/inventory/:source/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-inventory-source-callback.md) | Public |
| `GET` | `/connect/openrouter/callback/:state` | [Retrieve callback](https://immiscible.fly.dev/docs/api/get-connect-openrouter-callback-state.md) | Public |
| `GET` | `/connect/ramp/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-ramp-callback.md) | Public |
| `GET` | `/connect/mcp/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-mcp-callback.md) | Public |
| `GET` | `/connect/github/setup` | [Get setup](https://immiscible.fly.dev/docs/api/get-connect-github-setup.md) | Public |
| `GET` | `/connect/github/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-github-callback.md) | Public |
| `GET` | `/connect/xero/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-xero-callback.md) | Public |
| `GET` | `/connect/quickbooks/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-quickbooks-callback.md) | Public |
| `GET` | `/connect/pagerduty/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-pagerduty-callback.md) | Public |
| `GET` | `/scim/v2/Users` | [List Users](https://immiscible.fly.dev/docs/api/get-scim-v2-users.md) | Public |
| `POST` | `/scim/v2/Users` | [Create User](https://immiscible.fly.dev/docs/api/post-scim-v2-users.md) | Public |
| `GET` | `/scim/v2/Users/:id` | [Retrieve User](https://immiscible.fly.dev/docs/api/get-scim-v2-users-id.md) | Public |
| `PUT` | `/scim/v2/Users/:id` | [Set User](https://immiscible.fly.dev/docs/api/put-scim-v2-users-id.md) | Public |
| `PATCH` | `/scim/v2/Users/:id` | [Update User](https://immiscible.fly.dev/docs/api/patch-scim-v2-users-id.md) | Public |
| `DELETE` | `/scim/v2/Users/:id` | [Delete User](https://immiscible.fly.dev/docs/api/delete-scim-v2-users-id.md) | Public |
| `GET` | `/scim/v2/Groups` | [List Groups](https://immiscible.fly.dev/docs/api/get-scim-v2-groups.md) | Public |
| `POST` | `/scim/v2/Groups` | [Create Group](https://immiscible.fly.dev/docs/api/post-scim-v2-groups.md) | Public |
| `GET` | `/scim/v2/Groups/:id` | [Retrieve Group](https://immiscible.fly.dev/docs/api/get-scim-v2-groups-id.md) | Public |
| `PUT` | `/scim/v2/Groups/:id` | [Set Group](https://immiscible.fly.dev/docs/api/put-scim-v2-groups-id.md) | Public |
| `PATCH` | `/scim/v2/Groups/:id` | [Update Group](https://immiscible.fly.dev/docs/api/patch-scim-v2-groups-id.md) | Public |
| `DELETE` | `/scim/v2/Groups/:id` | [Delete Group](https://immiscible.fly.dev/docs/api/delete-scim-v2-groups-id.md) | Public |
| `GET` | `/scim/v2/ServiceProviderConfig` | [Get ServiceProviderConfig](https://immiscible.fly.dev/docs/api/get-scim-v2-serviceproviderconfig.md) | Public |
| `GET` | `/scim/v2/ResourceTypes` | [List ResourceTypes](https://immiscible.fly.dev/docs/api/get-scim-v2-resourcetypes.md) | Public |
| `GET` | `/scim/v2/ResourceTypes/:id` | [Retrieve ResourceType](https://immiscible.fly.dev/docs/api/get-scim-v2-resourcetypes-id.md) | Public |
| `GET` | `/scim/v2/Schemas` | [List Schemas](https://immiscible.fly.dev/docs/api/get-scim-v2-schemas.md) | Public |
| `GET` | `/scim/v2/Schemas/:id` | [Retrieve Schema](https://immiscible.fly.dev/docs/api/get-scim-v2-schemas-id.md) | Public |
| `GET` | `/scim/v2/*` | [Get v2](https://immiscible.fly.dev/docs/api/get-scim-v2-rest.md) | Public |
| `POST` | `/scim/v2/*` | [Create v2](https://immiscible.fly.dev/docs/api/post-scim-v2-rest.md) | Public |
| `PUT` | `/scim/v2/*` | [Set v2](https://immiscible.fly.dev/docs/api/put-scim-v2-rest.md) | Public |
| `PATCH` | `/scim/v2/*` | [Update v2](https://immiscible.fly.dev/docs/api/patch-scim-v2-rest.md) | Public |
| `DELETE` | `/scim/v2/*` | [Remove v2](https://immiscible.fly.dev/docs/api/delete-scim-v2-rest.md) | Public |
| `GET` | `/directory/google/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-directory-google-callback.md) | Public |
| `GET` | `/directory/microsoft/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-directory-microsoft-callback.md) | Public |
| `GET` | `/handoff/:token` | [Retrieve handoff](https://immiscible.fly.dev/docs/api/get-handoff-token.md) | Public |
| `POST` | `/handoff/:token` | [Post to handoff](https://immiscible.fly.dev/docs/api/post-handoff-token.md) | Public |
| `GET` | `/handoff/spend/:token` | [Retrieve spend](https://immiscible.fly.dev/docs/api/get-handoff-spend-token.md) | Public |
| `POST` | `/handoff/spend/:token` | [Post to spend](https://immiscible.fly.dev/docs/api/post-handoff-spend-token.md) | Public |
| `GET` | `/connect/google-sheets/callback` | [Get callback](https://immiscible.fly.dev/docs/api/get-connect-google-sheets-callback.md) | Public |
| `POST` | `/wallets/:wid/fireblocks/v2/tx_sign_request` | [Create tx sign request](https://immiscible.fly.dev/docs/api/post-wallets-wid-fireblocks-v2-tx-sign-request.md) | Public |
| `GET` | `/v1/platform/workspace` | [Get workspace](https://immiscible.fly.dev/docs/api/get-v1-platform-workspace.md) | Workspace key |
| `GET` | `/v1/platform/purposes` | [List purposes](https://immiscible.fly.dev/docs/api/get-v1-platform-purposes.md) | Workspace key |
| `GET` | `/v1/platform/agents` | [List agents](https://immiscible.fly.dev/docs/api/get-v1-platform-agents.md) | Workspace key |
| `POST` | `/v1/platform/agents` | [Create agent](https://immiscible.fly.dev/docs/api/post-v1-platform-agents.md) | Workspace key |
| `GET` | `/email/unsubscribe` | [Get unsubscribe](https://immiscible.fly.dev/docs/api/get-email-unsubscribe.md) | Public |
| `POST` | `/email/unsubscribe` | [Create unsubscribe](https://immiscible.fly.dev/docs/api/post-email-unsubscribe.md) | Public |
| `GET` | `/trust/pack.zip` | [Get pack (zip)](https://immiscible.fly.dev/docs/api/get-trust-pack-zip.md) | Public |
| `GET` | `/version` | [Get version](https://immiscible.fly.dev/docs/api/get-version.md) | Public |
| `GET` | `/docs.md` | [Get docs (md)](https://immiscible.fly.dev/docs/api/get-docs-md.md) | Public |
| `GET` | `/llms-full/:file` | [Retrieve llms full](https://immiscible.fly.dev/docs/api/get-llms-full-file.md) | Public |
| `GET` | `/install.sh` | [Get install (sh)](https://immiscible.fly.dev/docs/api/get-install-sh.md) | Public |
| `GET` | `/install.ps1` | [Get install (ps1)](https://immiscible.fly.dev/docs/api/get-install-ps1.md) | Public |
| `GET` | `/.well-known/mcp/server-card.json` | [MCP server card (well-known)](https://immiscible.fly.dev/docs/api/get-well-known-mcp-server-card-json.md) | Public |
| `GET` | `/.well-known/mcp.json` | [MCP server card (older path)](https://immiscible.fly.dev/docs/api/get-well-known-mcp-json.md) | Public |
| `GET` | `/.well-known/ai-catalog.json` | [AI catalog](https://immiscible.fly.dev/docs/api/get-well-known-ai-catalog-json.md) | Public |
| `GET` | `/.well-known/mcp-registry-auth` | [MCP Registry domain proof](https://immiscible.fly.dev/docs/api/get-well-known-mcp-registry-auth.md) | Public |
| `GET` | `/.well-known/openai-apps-challenge` | [OpenAI app review domain token](https://immiscible.fly.dev/docs/api/get-well-known-openai-apps-challenge.md) | Public |
| `GET` | `/case` | [Get case](https://immiscible.fly.dev/docs/api/get-case.md) | Public |
| `GET` | `/builders` | [List builders](https://immiscible.fly.dev/docs/api/get-builders.md) | Public |
| `GET` | `/check` | [Get check](https://immiscible.fly.dev/docs/api/get-check.md) | Public |
| `GET` | `/check/r/:ref` | [Retrieve r](https://immiscible.fly.dev/docs/api/get-check-r-ref.md) | Public |
| `GET` | `/check/r/:ref/pdf` | [Get pdf](https://immiscible.fly.dev/docs/api/get-check-r-ref-pdf.md) | Public |
| `GET` | `/launch` | [Get launch](https://immiscible.fly.dev/docs/api/get-launch.md) | Public |
| `GET` | `/demo` | [Get demo](https://immiscible.fly.dev/docs/api/get-demo.md) | Public |
| `GET` | `/apply/startup` | [Get startup](https://immiscible.fly.dev/docs/api/get-apply-startup.md) | Public |
| `GET` | `/apply/scale` | [Get scale](https://immiscible.fly.dev/docs/api/get-apply-scale.md) | Public |
| `GET` | `/signin` | [Get signin](https://immiscible.fly.dev/docs/api/get-signin.md) | Public |
| `GET` | `/terms` | [List terms](https://immiscible.fly.dev/docs/api/get-terms.md) | Public |
| `GET` | `/privacy` | [Get privacy](https://immiscible.fly.dev/docs/api/get-privacy.md) | Public |
| `GET` | `/dpa` | [Get dpa](https://immiscible.fly.dev/docs/api/get-dpa.md) | Public |
| `GET` | `/acceptable-use` | [Get acceptable use](https://immiscible.fly.dev/docs/api/get-acceptable-use.md) | Public |
| `GET` | `/sub-processors` | [List sub processors](https://immiscible.fly.dev/docs/api/get-sub-processors.md) | Public |
| `GET` | `/subprocessors` | [List subprocessors](https://immiscible.fly.dev/docs/api/get-subprocessors.md) | Public |
| `GET` | `/buy` | [Get buy](https://immiscible.fly.dev/docs/api/get-buy.md) | Public |
