Quickstart
First call in under a minute — no signup, no key. Then a paper trade and a live price tick in five.
You can get your first successful response from the Drazill API before you sign up for anything: public market data needs no authentication. From there it is three short steps to an authenticated call, a paper (test-money) order, and a realtime price tick.
Every request lives under the /api/v1 prefix.
Every snippet on this page is lifted verbatim from the SDKs’ tested example files
(sdks/python/examples/, sdks/typescript/examples/) and pinned to them by a
snippet-parity CI gate, so what you copy is what actually runs. The curl calls target
staging, which serves the same code paths as production against a safe test dataset.
Step 1 — Read a market (no auth)
Listing markets is a public read. This works for every reader, right now:
The response is a page envelope. Each market carries its outcomes, and each outcome’s
price is a decimal string in [0, 1] — the market’s implied probability for that
outcome. (Prices across a market’s outcomes always sum to exactly 1 — see
How pricing works.)
Environments
Point the SDKs at an environment with DRAZILL_BASE_URL (and DRAZILL_WS_URL for
realtime); both default to staging in the examples so you can run them safely as-is.
Step 2 — Get an API key
Create a key in the staging developer dashboard.
Prefer a test key first: test keys carry the drzl_test_ prefix, trade paper money
only, and are the only keys you should ever place in a browser or a shared notebook. Live
keys carry drzl_live_. The full key is shown once at creation — store it securely.
Test keys require the sandbox (DEVELOPER_SANDBOX_ENABLED), which is on by default on
staging and off on production — see Sandbox for the per-environment table.
Get an API key walks this step in full: minting the key, pasting it into
the interactive Explorer, and running the same call from the drazill SDKs.
Step 3 — Make an authenticated call
Send the key in the X-API-Key header. GET /auth/me echoes the authenticated identity —
a one-line proof your key works:
Keep the key server-side. See Authentication for scopes, key classes, and why browser apps must proxy through your own backend.
Step 4 — Place a paper order
With a drzl_test_ key, the ordinary trading endpoints route onto the price-isolated
paper engine — the same request you would send in production, with zero real-money risk.
Preview a fee-inclusive quote, then place the order binding that quote and an idempotency
key so a client-side retry can never double-place:
A drzl_test_ key is hard-rejected with TEST_KEY_LIVE_ENDPOINT if it ever hits a
real-money endpoint, so a paper key cannot move real funds. See Paper vs live.
Step 5 — Follow a live price tick
Open a WebSocket to /ws, authenticate with your key, and subscribe to
prices:{outcome_id} for price-tick updates (the lightest realtime channel — one
price_tick per price move):
The full realtime contract — every channel, the sequence/replay guarantees, and the raw message protocol — lives under Realtime.
Where next
- Authentication — scopes, key classes, and request signing.
- Concepts — how the hybrid order-book + LMSR engine actually prices.
- Sandbox — the paper-trading environment end to end.
- SDKs — install the Python and TypeScript clients.
A longer, onboarding-checklist version of this walkthrough (accept terms → key → first
call → webhook) lives in the repo at docs/guides/getting-started.md; this page is its
canonical rendering.

