---
title: "Exchange an API key grant"
method: POST
path: "/api/v1/keys/exchange"
---

# Exchange an API key grant

`POST /api/v1/keys/exchange`

## Request

- Base URL: `https://spoolis.com`
- URL: `https://spoolis.com/api/v1/keys/exchange`
- Auth: none required

Exchanges a short-lived, single-use grant for its bound API key. Owner grants mint verify scope. Spool invitations mint counterparty scope bound to one Spool. No Clerk session is required.

## Request body

- object
  - `grant_token` string, required

## Response `201`

Scoped API key, shown once

- KeyExchange
  - `api_key_id` string, required
  - `key` string, required
  - `scope` 'full' | 'verify' | 'counterparty', required
  - `spool_id` string

## Other responses

- `400`: Machine-readable API error
- `403`: Machine-readable API error
- `429`: Machine-readable API error
- `503`: Machine-readable API error

---

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