---
title: "Mint a self-serve sandbox API key (anonymous, 30 sec, no email)"
method: POST
path: "/v1/sandbox-keys"
tags: ["Sandbox"]
---

# Mint a self-serve sandbox API key (anonymous, 30 sec, no email)

`POST /v1/sandbox-keys`

## Request

- Base URL: `https://api.predictasiax.com`
- URL: `https://api.predictasiax.com/v1/sandbox-keys`
- Auth: HTTP bearer

Returns an `sk_live_*` bearer tagged `tier=self_serve` with $10 per-order
and $100 daily notional caps enforced at fill time. Quota: 5 mints /
hour / IP. Key valid for 30 days.

## Request body

- object
  - `org_name` string, required
  - `contact_email` string, email, nullable

## Response `200`

Sandbox key minted (shown ONCE)

- object
  - `ok` boolean
  - `key_id` integer
  - `key_prefix` string
  - `api_key` string
  - `user_id` string
  - `org_name` string
  - `tier` 'sandbox' | 'self_serve' | 'read_live' | 'trade_capped' | 'trade_full' | 'genesis' | 'partner': Progressive-trust tier controlling per-order + daily notional caps and rate multipliers. Ladder + auto-graduation thresholds (30-day attributed CLOB volume): - `sandbox` — legacy alias for `self_serve` (still accepted; both share the $10/order + $100/day caps). - `self_serve` — default tier for anonymous sandbox keys and newly-approved auto-provisioning tracks (`$10/order + $100/day` hard caps, simulated fills at mid-price). - `read_live` — auto-graduated at $100 30d volume; unlocks real-money trading with tier-native limits. - `trade_capped` — auto-graduated at $1,000 30d volume; per-order + daily notional ceilings ($100/order + $1,000/day). - `trade_full` — admin operator approval required at $50,000 30d volume; uncapped real-money trading. - `genesis` — admin operator approval required; inaugural cohort with 10× rate multiplier and early access to unreleased endpoints. - `partner` — signed partner/institutional agreement; up to 20× rate multiplier, dedicated infra, negotiated fee splits. Auto-graduation cron caps at `trade_capped` by default (env `BUILDER_AUTO_GRADUATION_MAX_TIER`). Newly minted keys via `POST /v1/sandbox-keys` return `self_serve`; the `sandbox` value is accepted by all backend routes for backward compatibility but is not issued to new keys.
  - `expires_at` string, date-time
  - `limits` object
    - `max_order_usdt` number
    - `daily_notional_usdt` number

## Other responses

- `429`: TOO_MANY_REQUESTS (per-IP quota exceeded)

---

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