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

# Introduction

> Spot market data for Solana, Base, BNB Smart Chain, Robinhood Chain and Arc: tokens, candles, trades, discovery boards and live streams.

The Metastreams API serves real-time and historical spot market data for tokens on Solana, Base, BNB Smart Chain, Robinhood Chain and Arc. Use it to build trading bots, terminals, dashboards, alerts and agents.

<CardGroup cols={2}>
  <Card title="Get an API key" icon="key" href="/get-started/api-keys">
    Every request needs a key. Here is how to get one.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/get-started/quickstart">
    Make your first request and open your first stream in a few minutes.
  </Card>
</CardGroup>

## What you can read

| Data | Endpoint | What you get |
| - | - | - |
| [Token details](/reference/rest/token-details) | `GET /v1/tokens/{chain}/{address}` | Price, stats, holders, security, launchpad |
| [Candles](/reference/rest/token-ohlcv) | `GET /v1/tokens/{chain}/{address}/ohlcv` | OHLCV from 1s to 7d |
| [Token trades](/reference/rest/token-trades) | `GET /v1/tokens/{chain}/{address}/trades` | Every swap, newest first |
| [Identity trades](/reference/rest/identity-trades) | `GET /v1/trades` | Trades by KOLs and other notable wallets |
| [Discovery boards](/reference/rest/discovery) | `POST /v1/discovery` | Ranked launchpad tokens, filtered |
| [Live streams](/streams/overview) | `GET /v1/stream` | Trades, candles and tokens over WebSocket |

Every response follows the same conventions: camelCase field names, timestamps in Unix milliseconds, and exact decimal strings for money. See [Reading responses](/concepts/reading-responses).

## Base URLs

| Transport | URL |
| - | - |
| REST | `https://api.metastreams.io/v1` |
| WebSocket | `wss://api.metastreams.io/v1/stream` |
| OpenAPI document | `https://api.metastreams.io/openapi.json` |

The OpenAPI document needs no key. Use it to generate a client in your language.

Call every other path from a server you control: a key never belongs in browser or mobile code. See [Keys belong on your backend](/get-started/authentication#keys-belong-on-your-backend).

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/get-started/authentication">
    Send your key on REST requests and on the stream handshake.
  </Card>

  <Card title="Reading responses" icon="book-open" href="/concepts/reading-responses">
    Timestamps, prices, decimals and percentages.
  </Card>

  <Card title="Errors, limits and retries" icon="triangle-exclamation" href="/concepts/errors">
    Every error code, every limit, and which errors to retry.
  </Card>

  <Card title="Connecting to streams" icon="bolt" href="/streams/overview">
    Subscribe to live trades, candles and token updates.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.