> ## Documentation Index
> Fetch the complete documentation index at: https://docs.0xarchive.io/llms.txt
> Use this file to discover all available pages before exploring further.

# API playground

> Use the interactive API playground and curl examples to inspect 0xArchive REST routes, parameters, responses, authentication, and schemas.

Endpoint Reference includes an interactive playground for endpoint calls. Use it for quick payload checks, then move stable workflows into SDK, CLI, or application code.

<div className="oxa-growth-cta oxa-growth-cta--key" style={{margin: "1.5rem 0", padding: "1.25rem 1.5rem", border: "1px solid color-mix(in srgb, var(--oxa-green) 38%, var(--oxa-border))", borderRadius: "var(--oxa-radius)", background: "linear-gradient(135deg, color-mix(in srgb, var(--oxa-green) 9%, transparent), transparent 48%), var(--oxa-panel)", display: "flex", alignItems: "center", gap: "1.25rem", flexWrap: "wrap"}}>
  <div style={{flex: "1 1 220px"}}>
    <p className="oxa-kicker" style={{marginBottom: "0.4rem"}}>Free tier, no card</p>
    <p style={{margin: 0, fontWeight: 600, fontSize: "1.05rem", lineHeight: 1.3}}>Get a key and run a real call</p>
    <p style={{margin: "0.3rem 0 0", color: "var(--oxa-text-muted)", fontSize: "0.9rem"}}>New accounts start free, no card required. Create a key in the dashboard and paste it into any example here.</p>
  </div>

  <a href="https://0xarchive.io/dashboard?utm_source=docs&utm_medium=referral&utm_campaign=growth_funnel&utm_content=create-key-cta" style={{display: "inline-flex", alignItems: "center", gap: "0.45rem", padding: "0.6rem 1.1rem", borderRadius: "8px", background: "var(--oxa-green)", color: "var(--oxa-green-ink)", fontWeight: 700, fontSize: "0.92rem", textDecoration: "none", whiteSpace: "nowrap"}} data-oxa-cta="create-key">
    Create a key →
  </a>
</div>

<Steps>
  <Step title="Choose an endpoint">
    Start with a low-risk market-state route such as a Hyperliquid order book.
  </Step>

  <Step title="Add your API key">
    Use the `X-API-Key` auth control in Endpoint Reference.
  </Step>

  <Step title="Run the request">
    Inspect `success`, `data`, and `meta.request_id`.
  </Step>

  <Step title="Copy the code example">
    Move the same request into curl, Python, JavaScript, or Go.
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="Endpoint reference" icon="square-terminal" href="/api-reference">
    Browse OpenAPI-backed endpoint pages.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Run the same flow from your terminal.
  </Card>
</CardGroup>

## Playground Review Checklist

Use the playground result to create a small implementation note before copying code into a client.

| Field             | Capture                                                                                     |
| ----------------- | ------------------------------------------------------------------------------------------- |
| Endpoint          | Method, route, symbol, and query parameters from Endpoint Reference                         |
| Auth state        | Whether `X-API-Key` was supplied through the playground control or through copied curl      |
| Response envelope | `success`, `data`, `error`, and `meta.request_id` behavior                                  |
| Generated example | The curl, Python, JavaScript, or Go example copied from the same endpoint page              |
| Client gap        | Retry, pagination, request-ID logging, freshness, or limit behavior still missing from code |
| Next surface      | SDK, CLI, WebSocket, OpenAPI codegen, or Data Catalog when the job is file delivery         |

If the browser run fails but the generated curl works, continue from curl and keep the browser limitation out of the application design. If both fail, keep the status, error code, route, parameters, and request ID together before debugging the client. The public website links to this docs playground instead of maintaining a separate static endpoint tester.

## What The Playground Is Good For

Use the playground to confirm route shape, auth, parameters, and response fields before writing code. It is especially useful when you are deciding between route families: compare a Hyperliquid core example, a Spot pair, a HIP-3 namespaced symbol, a HIP-4 outcome, and a Lighter symbol before committing the route to a client.

The playground is not a replacement for production error handling. After you copy an example into code, add retries, request-ID logging, pagination, data-quality checks, and a clear key-management path. If browser execution is limited by an auth or CORS environment, the generated curl example is still the stable fallback because it shows the exact method, path, parameters, and `X-API-Key` header.

## Safe Test Pattern

Start with low-cost market-state routes, then move to historical windows. Keep query parameters narrow while testing: one symbol, one route, one time window, and a small `limit`. Once the response is understood, move to CLI, SDK, REST code, or OpenAPI codegen for repeatable workflows.

## Review Rule

Do not treat a playground success as production readiness. It confirms that one route can respond with the provided key and parameters. Production code still needs key management, retries, request-ID logging, pagination, limit handling, and data-quality gates where downstream use depends on correctness.
