Getting started
Get an API key, choose how to connect, make a first REST request or connect an MCP client, and download a first file from each archive.
Four steps: get an API key, choose how to connect, make a first request — over REST or by connecting an MCP client — and download a first file from each archive.
Claude Desktop needs no API key at all, and neither do the free archive samples; every other path does.
Get an API key
Every other client, all REST access and the archive's data files use an API key.
- Create an account at vike.io
- Go to Account → API Keys
- Enter a label (for example
Cursor) and click Create Key - Copy the key — it starts with
vk_
Up to 3 active keys per account. You can read a key back from that page later; Authentication explains how.
Keep it in an environment variable for everything below:
export VIKE_API_KEY="vk_..."Choose how to connect
| You are building | Use | Start at |
|---|---|---|
| A script, a notebook, a backfill | REST: JSON over HTTPS at https://data.vike.io/v1 | Your first request, then REST API |
| An AI client: Claude, Cursor, Gemini CLI, Copilot | MCP at https://data.vike.io/mcp: the whole tool surface, conversationally | Connect an MCP client |
| A terminal session | the Data CLI | Data CLI |
| A research dataset, or a backtest over whole days | the bulk Parquet files | Your first archive file |
REST and MCP draw on one hourly budget per API key (your OAuth tokens share one between them); archive downloads do not spend it.
Your first request
The REST API is plain JSON over HTTPS at https://data.vike.io/v1, keyed by the X-API-Key header:
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?hours=6"Endpoints are grouped into namespaces — onchain (21), hyperliquid (47), hl-cohorts (11) and polymarket (16), with /v1/search shared by all four,
plus the archive, the spec surfaces and four WebSockets.
API endpoints is the per-endpoint reference: one page per endpoint, each
with its method, full path and parameters.
Over MCP, the first request is a tool call your client makes for you — connect it as the next section shows.
Connect an MCP client
The endpoint is https://data.vike.io/mcp for every client. What follows is the short version;
Client setup has a page per client, with troubleshooting. Vike's second MCP
server — the local vike-cli mcp for the trading platform — is set up separately, on
Trader / Client setup.
One canonical MCP endpoint
Use https://data.vike.io/mcp. OAuth clients such as Claude Desktop use it too: sign-in stays on
vike.io, which the server names as its authorization server. https://vike.io/mcp, the older
address, still reaches the same server with the same tools and the same API key, but it is being
retired: switch an existing config to data.vike.io/mcp.
Claude Desktop — no API key needed
Claude Desktop supports OAuth 2.1 with Dynamic Client Registration, so Vike registers your client automatically. There is no key to copy, no JSON file to edit and no Node.js involved.
- Open Settings → Connectors → Add custom connector
- Name:
Vike - URL:
https://data.vike.io/mcp - Leave the OAuth Client ID and Secret fields empty
- Click Add. A browser tab opens — log into Vike and click Allow
- The Vike tools appear under the hammer icon in the chat input
Revoke access at any time under Account → API Keys → Connected Apps.
Claude Code
One command, user-scoped. Restart any open session afterwards.
claude mcp add --transport http vike https://data.vike.io/mcp \
--header "X-API-KEY: $VIKE_API_KEY"Cursor
Settings → MCP → Add new server, or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"vike": {
"url": "https://data.vike.io/mcp",
"headers": { "X-API-KEY": "YOUR_KEY" }
}
}
}Gemini CLI
gemini mcp add --transport http \
--header "X-API-KEY: $VIKE_API_KEY" \
vike https://data.vike.io/mcpGitHub Copilot (VS Code)
Create .vscode/mcp.json in your workspace and reload:
{
"servers": {
"vike": {
"type": "http",
"url": "https://data.vike.io/mcp",
"headers": { "X-API-KEY": "YOUR_KEY" }
}
}
}Raw HTTP
JSON-RPC 2.0 over HTTP, for scripting or a one-off call:
curl https://data.vike.io/mcp \
-H "X-API-KEY: $VIKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'A raw HTTP client must read the body, not just the status
On /mcp, a bad or missing credential is HTTP 401 with a WWW-Authenticate header, and the
hourly limit is a 429. Every other failure comes back as HTTP 200 with the error in the body: a
JSON-RPC error member for a malformed request or an unknown method or tool, and a result carrying
isError: true for a tool that failed. Checking response.ok alone will make those look successful.
See Errors.
Verify it worked
Ask your assistant:
Search for PEPE token using Vike
A working connection calls the token_search tool and returns matching tokens.
Vike Skills (CLI playbooks)
The skills ship with the Data CLI, vike-data — see Data CLI for the command
line itself.
Skill playbooks teach an agent how to use Vike's tools well. The installer auto-detects Claude Code, Cursor, Codex, Copilot, Gemini CLI and many more.
Preview what is available:
npx skills add vike-io/vike-data-cli --listInstall:
npx skills add vike-io/vike-data-cliYour first archive file
Two archives, fetched in two different ways. Neither download spends your hourly budget.
Polymarket: a folder tree
The Polymarket archive is date-partitioned Parquet at https://data.vike.io/archive. Start with the
index, which needs no key:
curl -s https://data.vike.io/archive/manifest.json | jq '.dates[0]'It lists every available date and family with row counts and byte sizes, plus the schema of each
stream. Free daily samples live under https://data.vike.io/archive/samples/, also keyless.
Data files need a key. Download the whole file:
curl -O -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/archive/venue=polymarket/date=2026-09-01/trades.parquet"Download archive files — do not read them over HTTP
A Parquet reader pointed at a URL issues thousands of Range requests for a single file: one 1.26 GB
partition was measured producing 20,237 separate HTTP requests. Archive downloads do not spend
your hourly budget, but each of those requests crosses the network at a per-connection cap, and a
remote reader pays that cost again on every query. Download the file with curl -O (resume with
-C -) and read the local copy. Rate limits has the measurements.
Hyperliquid: a 7-day link
There is no Hyperliquid folder to browse, and no daily file has a permanent URL. The free samples are the exception, and need no key:
curl -f -O https://data.vike.io/archive/hl-samples/positions-sample.parquetfills-sample.parquet (every BTC fill of one UTC hour) sits beside it, and the manifest.json
there says which day both are cut from and lists the schema.
A full file takes two requests. Ask
/v1/hyperliquid/archive/url for a link with your key;
the link needs no key, names one file (on Cloudflare R2) and works for 7 days:
# 1. Ask for the link: the fills of one UTC day. jq -r prints the bare address.
URL=$(curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/archive/url?dataset=fills&date=2026-10-19" | jq -r '.url')
# 2. Download the whole file. The link carries the credential, so no key header here.
curl -f -o fills-2026-10-19.parquet "$URL"The ask costs one request of the hourly budget; the download costs nothing.
/v1/hyperliquid/archive/datasets lists the published
days, and Download the Hyperliquid file archive reads the
file with DuckDB, pyarrow or pandas.
Limits
The hourly budget is one counter per API key (your OAuth tokens share one between them), shared by MCP and REST, and archive downloads are not charged against it. Rate limits has the number, the window and what a 429 looks like.
Next
Authentication
Both credential types, which surface takes which, and the caching window that delays revocation.
Rate limits
One counter shared by MCP and REST, why the archive is exempt from it, and what a 429 looks like.
Errors
Status codes, the JSON envelope, and how MCP reports a failure.
MCP tools
The full tool surface, what each one returns, and worked examples.