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

# Create token

`POST /account/tokens`

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

---

[API](https://skmtc.net/tradeparadex/apis/paradex-rest-api-2.md) · [All operations](https://skmtc.net/tradeparadex/apis/paradex-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tradeparadex/paradex-rest-api-2/versions/6a76453d754c/schema)
