---
title: "Create token"
method: POST
path: "/account/tokens"
tags: ["Token"]
---

# Create token

`POST /account/tokens`

## Request

- Base URL: `https://api.prod.paradex.trade/v1`
- URL: `https://api.prod.paradex.trade/v1/account/tokens`
- Auth: API key in header `Authorization`

Create a new authentication token for the authenticated account with custom
name and expiration duration.

## Request body

- RequestsCreateToken
  - `allowed_cidrs` string[]: Optional IP CIDR allowlist applied atomically at creation, so the token is never live unrestricted. Empty/omitted = unrestricted. Max 50 entries; same format as PUT /account/tokens/:lookup_id/allowed-cidrs.
  - `expiry_duration` integer, required: Duration in seconds from now until expiration (1 min to 1 year).
  - `name` string, required: User-friendly name for the JWT token.
  - `token_type` string, required: Type of token to create.

## Response `200`

Token created successfully

- ResponsesCreateTokenResponse
  - `api_token` ResponsesApiToken
    - `allowed_cidrs` string[]: IP CIDR allowlist; empty means unrestricted
    - `created_at` integer: Token creation timestamp (nanoseconds since epoch)
    - `expiry_at` integer: Expiration timestamp (nanoseconds since epoch)
    - `kind` string: Token type (jwt, api_key, etc.)
    - `last_updated_at` integer: Last modification timestamp (nanoseconds since epoch)
    - `lookup_id` string: Identifier used for the token lookup
    - `name` string: User-provided token name
    - `revoked_at` integer: Revocation timestamp (nanoseconds since epoch, 0 if not revoked)
    - `token_id` string: Unique ID for the auth token
  - `token` string: The generated JWT token

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: IP restrictions not enabled for this account

## Changes

- **2026-10-22** `f33feb7333ea`: 9 warning
  - added the new `ADDRESS_BOOK_NOT_PARADEX_ACCOUNT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `ADDRESS_BOOK_NOT_PARADEX_ACCOUNT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
  - added the new `ADDRESS_BOOK_NOT_PARADEX_ACCOUNT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `403`
  - added the new `ADDRESS_BOOK_REPEATED_IN_IMPORT` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - …5 more
- **2026-10-20** `72c125c93c2b`: 6 warning
  - added the new `SESSION_EXPIRED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `SESSION_EXPIRED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
  - added the new `SESSION_EXPIRED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `403`
  - added the new `SESSION_REVOKED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - …2 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/changes/account/tokens/post.md)

---

[API](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2.md) - [All operations](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/llms.txt) - [OpenAPI document](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/revisions/f33feb7333ea?raw)
