vike

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.

  1. Create an account at vike.io
  2. Go to Account → API Keys
  3. Enter a label (for example Cursor) and click Create Key
  4. 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 buildingUseStart at
A script, a notebook, a backfillREST: JSON over HTTPS at https://data.vike.io/v1Your first request, then REST API
An AI client: Claude, Cursor, Gemini CLI, CopilotMCP at https://data.vike.io/mcp: the whole tool surface, conversationallyConnect an MCP client
A terminal sessionthe Data CLIData CLI
A research dataset, or a backtest over whole daysthe bulk Parquet filesYour 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
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.

  1. Open Settings → Connectors → Add custom connector
  2. Name: Vike
  3. URL: https://data.vike.io/mcp
  4. Leave the OAuth Client ID and Secret fields empty
  5. Click Add. A browser tab opens — log into Vike and click Allow
  6. 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/mcp

GitHub 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 --list

Install:

npx skills add vike-io/vike-data-cli

Your 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.

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.parquet

fills-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

On this page