---
title: "Create Unified Token"
method: POST
path: "/tokens"
---

# Create Unified Token

`POST /tokens`

## Request

- Base URL: `https://api-docs.session-exchange.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.session-exchange.com/tokens`
- Auth: none declared

Mint a single `ge_tok_`. Plaintext returned ONCE; only the hash persists.

## Request body

- UnifiedTokenCreateRequest
  - `base_role` string, required: 'shim' (producer/emit) or 'reader' (read-only)
  - `owner_id` string, nullable: Required for base_role=shim: the APPROVED producer_id this token emits as. Ignored for reader (a self-id is generated).
  - `label` string
  - `grants` string[]: RESERVED per-token topic grants (Phase 4: stored but inert).
  - `expires_at` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/session-exchange/apis/a4sx.md) · [All operations](https://skmtc.dev/session-exchange/apis/a4sx/llms.txt) · [OpenAPI document](https://skmtc.dev/session-exchange/apis/a4sx/revisions/abaefc33dfc7?raw)
