Binance + Coinbase · BTC-USD / ETH-USD / SOL-USD · V1

The price,
and the receipts.

seekingdata turns raw exchange trades into one cross-venue reference price per symbol — and ships the confidence, staleness, and exact venue lineage behind every number, so an agent — or you — can verify it instead of trusting it.

No auth walls in V1. No history rewritten after the fact. Every field traceable to a venue and a timestamp.

GET/v1/price/BTC-USD200 · 41ms
{
  "data": {
    "symbol": "BTC-USD",
    "price": 60010.25,
    "venues": [
      {
        "venue": "binance",
        "price": 60000.5,
        "ts": "2026-07-09T12:00:00.100Z"
      },
      {
        "venue": "coinbase",
        "price": 60020,
        "ts": "2026-07-09T12:00:00.500Z"
      }
    ]
  },
  "meta": {
    "as_of": "2026-07-09T12:00:00.600Z",
    "venues": [
      "binance",
      "coinbase"
    ],
    "staleness_ms": 100,
    "confidence": 0.98
  },
  "provenance": {
    "sources": [
      {
        "venue": "binance",
        "symbol": "BTC-USD",
        "ts": "2026-07-09T12:00:00.100Z"
      },
      {
        "venue": "coinbase",
        "symbol": "BTC-USD",
        "ts": "2026-07-09T12:00:00.500Z"
      }
    ],
    "method": "outlier-trimmed cross-venue median (USDT≈USD in V1)"
  }
}

A real response shape — abbreviated timestamps for readability, nothing cropped.

The envelope

Three parts, every response.

seekingdata never hands back a bare number. Every endpoint wraps its payload in the same three-part envelope, so the shape you learn once works everywhere.

01

data

The number

The reference price and the raw per-venue prints it was built from — never a black box, always the inputs alongside the output.

{
  "symbol": "BTC-USD",
  "price": 60010.25,
  "venues": [
    {
      "venue": "binance",
      "price": 60000.5
    },
    {
      "venue": "coinbase",
      "price": 60020
    }
  ]
}
02

meta

How much to trust it, right now

staleness_ms and a computed confidence let an agent decide in code whether a price is fresh and certain enough to act on — instead of assuming.

{
  "staleness_ms": 100,
  "confidence": 0.98
}
03

provenance

Where it came from

Exact venues, timestamps, and the derivation method behind the number — so it can be audited and reproduced, not just believed.

{
  "method": "outlier-trimmed cross-venue median"
}

How AI uses seekingdata

One command, and an agent gets typed tools.

seekingdata ships an MCP server that wraps the API. An agent's host — Claude Desktop, an IDE, an agent framework — connects to it and the model sees typed tools it can call directly, instead of you hand-writing a REST client for every integrator. One command —claude mcp add seekingdata — and an agent has typed tools.

claude mcp add seekingdata -- npx -y @seekingdata/mcp

Defaults to the hosted API at https://api.seekingdata.dev. Self-hosting the server? Set SEEKINGDATA_API.

Tools

Question-shaped, each with enum'd arguments and a one-line "when not to use."

reference_price

What's the current cross-venue price for a symbol, and how much should I trust it right now?

Not for a price history — use ohlcv.

ohlcv

What did a symbol do over a window? Open/high/low/close/volume bars.

Not for a single point-in-time price — use reference_price.

recent_trades

What are the actual raw prints behind the price, per venue?

Not for an aggregated series — use ohlcv.

option_chain

What's the mark price, IV, and greeks for BTC/ETH options right now?

Not for spot price alone — use reference_price.

catalog

What datasets and categories does seekingdata serve — live or planned?

Not for pulling actual data — it's a directory, not a source.

provenance

Which exact venues, timestamps, and method produced a given number?

Skip it if you already hold an envelope — provenance ships inline on every response.

venues

Which venues does seekingdata collect from, and are they healthy right now?

Not for symbol-level detail — use catalog.

Resources

Slow-moving reference data — loaded once and cached by the host, not re-fetched per turn.

catalogsymbolsvenues

A compound question, in one session

Static transcript — this is what the tool calls and envelopes actually look like.

seekingdata MCP · stdio session
user

What's BTC trading at, and can I get downside protection with options right now?

tool callreference_price({ symbol: "BTC-USD" })
{
  "data": {
    "symbol": "BTC-USD",
    "price": 60010.25
  },
  "meta": {
    "confidence": 0.98,
    "staleness_ms": 100
  },
  "provenance": {
    "method": "outlier-trimmed cross-venue median"
  }
}
tool calloption_chain({ underlying: "BTC", option_type: "put", max_response_tokens: 300 })
{
  "data": {
    "underlying": "BTC",
    "underlying_px": 60010.25,
    "options": [
      {
        "instrument": "BTC-31JUL26-60000-P",
        "strike": 60000,
        "option_type": "put",
        "mark_price_usd": 1979.9,
        "mark_iv": 0.44,
        "delta": -0.48
      }
    ]
  },
  "meta": {
    "confidence": 0.95,
    "truncated": false
  },
  "provenance": {
    "method": "Deribit mark price snapshot"
  }
}
assistant

BTC-USD is $60,010.25 (98% confidence, 100ms stale, Binance + Coinbase). For downside protection: the Jul-31 $60,000 put is quoting $1,979.90 (44% IV, delta −0.48) on Deribit.

  • Token-budgetedEvery tool takes max_response_tokens, truncates to whole rows (never mid-object), and returns meta.truncated + meta.next_cursor + a one-line hint.
  • Provenance inlineEvery envelope carries the exact venues, timestamps, and method behind the number — no separate lookup needed to decide whether to trust it.
  • RFC 9457 errorsFailures come back as application/problem+json with retryable, retry_after, and error_category — an agent can branch on a failure in code, not by parsing prose.
  • Honest tool contractsEnum'd args, readOnlyHint / idempotentHint / openWorldHint annotations, and outputSchema — the host can show what a tool will do before it's called.

Live demo

Ask it. Get the receipts back.

Pick a symbol and pull a live reference price from the seekingdata API. Unreachable? The widget falls back to a realistic sample so you can still see the full envelope.

Reference price
Confidence
Staleness
Venues
Full envelope
Loading…

How it works

Four hops from tick to envelope.

Nothing exotic: independent collectors per venue, a columnar store built for time-series, and a read path that computes trust metrics instead of caching them.

01

Exchange WebSockets

Binance · Coinbase

Raw trade prints, subscribed per symbol, per venue.

02

Rust collectors

one per venue

Normalize, timestamp, detect gaps, reconnect on drop.

03

ClickHouse

columnar store

Trades and derived 1s/1m candles, queried in milliseconds.

04

REST API

the envelope

data + meta + provenance, computed on read.

Data catalog

Category-agnostic, by design.

seekingdata collects anything time-stamped and source-attributable — crypto today, weather, sports, and macro next. Every category and dataset below renders straight from the same catalog the API and MCP server serve, so this list can't drift from reality.

Showing the bundled catalog — the live API is unreachable from here right now.

Crypto markets

live

Normalized, provenance-carrying crypto market data across venues.

Cross-venue reference price

live

A single derived reference price per symbol, combined from multiple venues with an outlier-trimmed median. Ships full provenance.

unitUSD cadencereal-time (sub-second) sourcesbinance, coinbase GET /v1/price/{symbol}

OHLCV candles

live

Open/high/low/close/volume bars, 1s and 1m, per-venue or combined.

unitUSD cadence1s / 1m (incrementally maintained) sourcesbinance, coinbase GET /v1/ohlcv/{symbol}

Spot trades (tape)

live

Normalized taker-aggressor trade prints per venue.

unitUSD cadencereal-time (tick) sourcesbinance, coinbase GET /v1/trades/{symbol}

Options pricing & greeks

live

Per-instrument option mark price, implied volatility, greeks (delta/gamma/vega/theta), open interest and the underlying price.

unitunderlying + USD cadencenear-real-time (polled snapshots) sourcesderibit GET /v1/options/{underlying}

Perp funding rates

planned

Funding rate and next-funding time for perpetual futures.

unitrate cadenceper funding window sourcesbinance, bybit GET /v1/funding/{symbol}

Weather

planned

Station and gridded weather observations, source-attributed.

Surface observations

planned

Temperature, wind, precipitation per station.

unitSI cadencehourly sourcesnoaa, openmeteo GET /v1/weather/{station}

Sports results

planned

Match results and live scores, source-attributed.

Match results

planned

Final and in-progress scores per fixture.

unitscore cadenceevent-driven sources GET /v1/sports/{league}

Macro & reference data

planned

Economic releases and reference rates.

Economic releases

planned

Scheduled macro data releases with actual/consensus.

unitvaries cadenceevent-driven sources GET /v1/macro/{series}

A category, up close

Options are a dataset, not a different product.

Same catalog, same envelope, same MCP tool pattern — just a different shape of number. Here's a live slice of the BTC chain from Deribit: mark price, implied vol, and delta for a few strikes around the money.

Showing a bundled sample chain — the live API is unreachable from here right now.

underlying BTC · $60,010.25

Deribit · mark price, IV & greeks · expiry Jul 31, 2026

Strike Type Mark $ IV % Delta
57,000 Call $3,980.40 47.0% 0.71
57,000 Put $966.10 46.0% -0.28
60,000 Call $2,120.80 44.0% 0.52
60,000 Put $1,979.90 44.0% -0.48
63,000 Call $1,055.60 45.0% 0.31
63,000 Put $3,877.20 46.0% -0.69

What V1 is / isn't

Scoped on purpose.

We'd rather ship a small surface with a trustworthy envelope than a large one you have to double-check. Here's exactly where the line is today.

Is

  • Binance + Coinbase trade streams, normalized and timestamped
  • A live cross-venue reference price with full provenance, for BTC-USD, ETH-USD, SOL-USD
  • 1s and 1m OHLCV candles built from those trades
  • Rust collectors writing into ClickHouse — built for throughput, not a demo shim

Isn't yet

  • No L3 order books — trades and candles only, for now
  • No history before launch — the tape starts when the collectors do
  • No paid tiers, no auth — V1 is open while we prove the envelope out
  • No on-chain data — centralized-venue prices only in V1

API quickstart

Three calls to get oriented.

Run these against the hosted API — no auth, no setup. Every route returns the same envelope shape.

Reference price

The envelope from the demo above, straight from a terminal.

curl https://api.seekingdata.dev/v1/price/BTC-USD

1-minute candles

OHLCV built from normalized trades, not a third-party pass-through.

curl "https://api.seekingdata.dev/v1/ohlcv/BTC-USD?interval=1m"

Recent trades

The underlying prints — per venue, per symbol, timestamped at ingest.

curl https://api.seekingdata.dev/v1/trades/BTC-USD