---
title: "POST /extension/exchange"
method: POST
path: "/extension/exchange"
---

# POST /extension/exchange

`POST /extension/exchange`

## Request

- Base URL: `https://api.useanima.sh/v1`
- URL: `https://api.useanima.sh/v1/extension/exchange`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Request body

- object: Request body for exchanging a code for extension credentials
  - `code` string, required: One-time exchange code from createToken

## Response `200`

OK

- object: Extension credentials returned after code exchange
  - `token` string, required: Extension auth token (API key) for the browser extension
  - `signingSecret` string, required: HMAC signing secret for WebSocket bridge messages
  - `orgId` string, required: Organization ID for channel subscription
  - `expiresAt` string, date-time, nullable, required: ISO 8601 expiration time. Null for session-based.
  - `requiresApproval` boolean, required: Whether the owner must approve this token in the extension UI

---

[API](https://skmtc.dev/useanima/apis/anima-api.md) · [All operations](https://skmtc.dev/useanima/apis/anima-api/llms.txt) · [OpenAPI document](https://skmtc.dev/useanima/apis/anima-api/revisions/aaa148188980?raw)
