Point-in-time data · native MCP server

Market data your backtests and AI agents can both trust.

A typed REST API and a native MCP server connect Claude, GPT, and your own models to prices, SEC fundamentals, holdings, and macro — point-in-time and survivorship-free. One API key. The truth your research and your agents both depend on.

example.py
from synapse_discovery import SynapseClient

# One key. Point-in-time by default.
client = SynapseClient("your-api-key")
aapl = client.fundamentals("AAPL")[0]

print(f"Revenue: ${aapl.revenue/1e9:.1f}B")
# → Revenue: $383.3B
AAPL · adjusted close point-in-time
$198.42 ▲ 1.24%

Split-adjusted daily close · sample illustration

131,000+
Securities Covered
60M+
Daily Price Records
366,000+
Fundamental Records
800+
FRED Economic Series

One source of truth for financial data

Prices, fundamentals, holdings, and macro behind a single API key — so you stop stitching together vendors and start trusting your inputs.

Equity Prices

Clean daily OHLCV with raw, split-adjusted, and total-return modes — point-in-time correct for backtesting.

SEC Fundamentals

Standardized XBRL financials from every 10-K and 10-Q since 2009, unified with earlier history from a second source.

Fund Holdings

ETF and mutual-fund composition with full constituent detail — see exactly what each fund holds.

Macro & Economic Data

FRED economic series, Treasury yield curves, and market-context snapshots alongside your equities data.

Point-in-Time & Survivorship-Free

Query data as it was known on any date, with delisted and bankrupt names kept in — no look-ahead or survivorship bias.

AI-Native (MCP)

A first-class MCP server lets Claude, GPT, and other agents query directly — plus a structured REST API and bulk Parquet.

For developers & AI

Plug in an agent. It already knows the data.

A native MCP server exposes typed tools to Claude, GPT, and your own agents — and every REST response carries provenance, quality, and cost metadata, so agents discover capabilities, validate queries, and audit their own outputs without hand-holding.

GET /api/v1/meta

Capabilities discovery

Datasets, exchanges, time ranges, update schedules — everything an agent needs to plan queries.

GET /api/v1/schema

Field definitions

Types, units, nullability, examples. Machine-readable JSON Schema for every field.

GET /api/v1/resolve

Fuzzy matching

Resolve "Apple" → AAPL with confidence scores. Handle ticker changes and ambiguity.

Query → result → provenance

Every response includes metadata that makes AI outputs auditable and reduces hallucinated finance.

  • Provenance: source, collection time, adjustment model
  • Quality: completeness %, staleness, outlier flags
  • Cost: units consumed, cache hit/miss
  • Error hints: "Did you mean AAPL?" with suggestions
View AI documentation
response.json
{
  "data": [{"date": "2026-01-24", "close": 198.42}],
  "provenance": {
    "source": "eod_historical",
    "collection_time": "2026-01-24T06:00:00Z",
    "adjustment_model": "split_adjusted"
  },
  "quality": {
    "completeness": 0.98,
    "staleness_hours": 18
  },
  "cost": {
    "units_consumed": 1,
    "cache_hit": true
  }
}
terminal
# Install the sync client
$ pip install synapse-discovery

# Initialize with your API key
$ synapse-discovery init --api-key sd_live_xxx
✓ Connected to Synapse Discovery

# Sync prices and fundamentals locally
$ synapse-discovery sync --to ./data --datasets prices,fundamentals
Downloading... 45.2 MB
✓ Sync complete! 8,500 files

# Query with DuckDB — no API calls!
$ duckdb -c "SELECT * FROM './data/prices/NASDAQ/AAPL/*.parquet' LIMIT 5"

For quants & funds

Your own data lake

Sync once, update daily. Get a clean, standard Parquet layout you own — no babysitting our internal structure. Query locally with DuckDB, Polars, or Spark.

  • Parquet files partitioned by exchange/symbol/year
  • Incremental sync — only download what changed
  • Manifest with checksums for data integrity
  • Sync to S3/GCS or a local directory
Data lake documentation

One call, all data

Agents and research pipelines want flexibility without 20 round trips. Query multiple tickers, mix prices with fundamentals, and get point-in-time data in a single request.

1
Define your universe
By tickers, exchange, sector, or security type
2
Pick your fields
Mix price, fundamental, and entity fields
3
Get clean results
With provenance, quality, and cost tracking
query.json
POST /api/v1/query

{
  "universe": {
    "tickers": ["AAPL", "MSFT", "GOOGL"]
  },
  "fields": [
    "close_split_adj",
    "volume",
    "revenue",
    "eps_diluted"
  ],
  "range": {
    "start": "2024-01-01",
    "end": "2025-12-31"
  },
  "point_in_time": true,
  "asof": "2026-01-01T00:00:00Z"
}

Simple, transparent pricing

No hidden fees. No enterprise sales calls for basic features. Start free, scale as you grow.

Free

$0 /forever

For personal projects and exploration

  • 100 API calls/day
  • 1 year historical data
  • Basic fundamentals
  • Community support
Get Started

Developer

$49 /month

For developers building financial apps

  • 10,000 API calls/day
  • 5 years historical data
  • Full fundamentals
  • ETF holdings
  • Email support
Start Free Trial
Most popular

Quant

$199 /month

For quant researchers and traders

  • 100,000 API calls/day
  • Full historical data
  • Point-in-time queries
  • Parquet bulk downloads
  • Delta-sync updates
  • Priority support
Start Free Trial

Enterprise

Custom

For hedge funds and institutions

  • Unlimited API calls
  • Full data universe
  • Dedicated infrastructure
  • Custom integrations
  • Custom SLA (by agreement)
  • Dedicated support
  • On-premise option
Contact Sales

Built for serious research

The things that actually matter for backtesting and AI workflows — not testimonials, the substance.

No survivorship bias

Delisted, bankrupt, and acquired companies stay in the archive, so your backtest universe reflects history as it actually was — not just today’s survivors.

Point-in-time by default

Every price and fundamental is queryable as-of any historical date, so you research on the data that was actually known then.

AI-native, not bolted on

A native MCP server means Claude, GPT, and other agents pull data directly — no scraping, no glue code, responses built for LLMs.

Get the data right from the start

Free to start — point-in-time and survivorship-free from your first request.