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

# Quickstart

> Install the Context Protocol SDK and query Meridian with its marketplace tool ID.

This guide uses Context Query mode with Meridian pinned by tool ID. Query mode is the dependable starting point because Context handles method selection, execution, grounding, and response assembly.

## 1. Create a Context API key

1. Sign in at [ctxprotocol.com](https://ctxprotocol.com).
2. Configure the wallet spending cap required by Context.
3. Fund the Context wallet for paid tool calls.
4. Create an API key under **Settings → API Keys**.

Store the key in an environment variable. Never embed it in browser code or commit it to a repository.

```bash theme={null}
export CONTEXT_API_KEY="sk_live_YOUR_KEY"
```

## 2. Install an SDK

<CodeGroup>
  ```bash npm theme={null}
  npm install @ctxprotocol/sdk
  ```

  ```bash Python theme={null}
  pip install ctxprotocol
  ```
</CodeGroup>

## 3. Query Meridian

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { ContextClient } from "@ctxprotocol/sdk";

  const MERIDIAN_TOOL_ID = "e5e62fa5-28e1-42f4-8b84-f4866234df43";
  const client = new ContextClient({
    apiKey: process.env.CONTEXT_API_KEY!,
  });

  const result = await client.query.run({
    query: [
      "Use Meridian to return BTCUSDT futures rows for Binance, Bybit, OKX,",
      "and Hyperliquid from 2026-07-13 00:00 UTC to 01:00 UTC at 1h resolution.",
      "Include close_price, funding_rate, dollar_open_interest_close,",
      "buy_dollar_volume, and sell_dollar_volume."
    ].join(" "),
    tools: [MERIDIAN_TOOL_ID],
    responseShape: "evidence_only",
    includeData: true,
  });

  console.log(result.evidence);
  console.log(result.data);
  ```

  ```python Python theme={null}
  import asyncio
  import os

  from ctxprotocol import ContextClient

  MERIDIAN_TOOL_ID = "e5e62fa5-28e1-42f4-8b84-f4866234df43"

  async def main() -> None:
      async with ContextClient(api_key=os.environ["CONTEXT_API_KEY"]) as client:
          result = await client.query.run(
              query=(
                  "Use Meridian to return BTCUSDT futures rows for Binance, Bybit, "
                  "OKX, and Hyperliquid from 2026-07-13 00:00 UTC to 01:00 UTC "
                  "at 1h resolution. Include close_price, funding_rate, "
                  "dollar_open_interest_close, buy_dollar_volume, and "
                  "sell_dollar_volume."
              ),
              tools=[MERIDIAN_TOOL_ID],
              response_shape="evidence_only",
              include_data=True,
          )
          print(result.evidence)
          print(result.data)

  asyncio.run(main())
  ```
</CodeGroup>

## 4. Inspect the response

For repeatable data pipelines, prefer `evidence_only`. Context may return bounded rows inline and a full-data reference for larger results.

Meridian rows use canonical `exchange`, `product`, and `time` identities. Optional response sections include:

* `columns`: names, types, units, and data families.
* `coverage`: what exists for each exchange/product/range.
* `provenance`: the source and collection lineage.
* `warnings`: explicit limitations or source-limited values.

<Warning>
  Do not infer missing values as zero. Read coverage, provenance, and warnings before using a result in research or automation.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="TypeScript integration" icon="code" href="/integrations/typescript" />

  <Card title="Python integration" icon="python" href="/integrations/python" />

  <Card title="Official MCP endpoint" icon="plug" href="/integrations/mcp" />

  <Card title="Futures reference" icon="chart-candlestick" href="/reference/futures" />
</CardGroup>
