Databento APIdatabento.com ↗
Access Databento historical market data: list datasets, browse instruments, fetch OHLCV timeseries, resolve symbols, and explore schemas across equities, futures, and options.
What is the Databento API?
This API exposes 5 endpoints against Databento's historical market data catalog, covering US equities, futures, and options across venues like Nasdaq (XNAS.ITCH) and CME (GLBX.MDP3). The get_timeseries endpoint returns OHLCV records with nanosecond-timestamped headers, while list_datasets surfaces the full venue catalog with instrument counts and asset class metadata. Symbol resolution and schema discovery are also available.
curl -X GET 'https://api.parse.bot/scraper/c56bd3f5-1c03-4bab-ac93-785a417154bb/list_datasets?api_key=preview' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace databento-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Databento Market Data API — discover datasets, fetch OHLCV, resolve symbols."""
from parse_apis.databento_market_data_api import (
Databento, DataSchema, SymbolType, DatasetNotFound
)
client = Databento()
# List all available datasets and print key metadata.
for ds in client.datasets.list(limit=5):
print(ds.dataset_id, ds.dataset_name, ds.total_instrument_count)
# Construct a dataset by ID and list its instruments.
nasdaq = client.dataset(dataset_id="XNAS.ITCH")
for instrument in nasdaq.instruments.list(limit=3):
print(instrument.symbol, instrument.instrument_name, instrument.asset_class)
# Fetch daily OHLCV timeseries for a symbol on that dataset.
for record in nasdaq.get_timeseries(
symbols="AAPL", start="2025-06-10", schema=DataSchema.OHLCV_1D, limit=3
):
print(record.open, record.high, record.low, record.close, record.volume)
# Resolve a raw symbol to its instrument ID within a date range.
resolution = nasdaq.resolve_symbols(
symbols="AAPL",
start_date="2025-06-01",
end_date="2025-06-10",
stype_in=SymbolType.RAW_SYMBOL,
stype_out=SymbolType.INSTRUMENT_ID,
)
print(resolution.symbols, resolution.result)
# Typed error handling: catch dataset-not-found on an invalid dataset.
try:
bad = client.dataset(dataset_id="INVALID.DATASET")
bad.resolve_symbols(symbols="AAPL", start_date="2025-06-01")
except DatasetNotFound as exc:
print(f"Dataset not found: {exc.dataset}")
# List available data schemas.
for schema in client.schemas.list(limit=5):
print(schema.schema_id, schema.schema_display_name, schema.brief_introduction)
print("Exercised: datasets.list / instruments.list / get_timeseries / resolve_symbols / schemas.list")
Lists all available datasets on Databento with pricing, instrument counts, and asset class metadata. Each dataset represents a venue or feed (e.g. XNAS.ITCH for Nasdaq, GLBX.MDP3 for CME). Returns the full catalog in one response.
| Param | Type | Description |
|---|---|---|
| api_key | string | Databento API key for authentication. Defaults to the free preview key. |
{
"type": "object",
"fields": {
"data": "array of dataset objects with dataset_id, dataset_name, colloquial_name, pricing, asset_class, total_instrument_count",
"count": "integer total number of datasets"
},
"sample": {
"data": {
"data": [
{
"dataset_id": "XNAS.ITCH",
"asset_class": [
"Equities"
],
"unit_prices": {
"historical": {
"ohlcv-1d": "400.00"
}
},
"dataset_name": "NASDAQ TotalView-ITCH",
"dataset_tags": [
"North America",
"Since 2003"
],
"lowest_price": "0.20",
"colloquial_name": "NASDAQ",
"live_data_ready": true,
"dataset_introduction": "Full depth of book for all NASDAQ-listed securities.",
"total_instrument_count": 23333
}
],
"count": 28
},
"status": "success"
}
}About the Databento API
Dataset and Instrument Discovery
The list_datasets endpoint returns the complete Databento venue catalog in a single response. Each entry in the data array includes a dataset_id (e.g. XNAS.ITCH, OPRA.PILLAR), human-readable colloquial_name, asset_class, pricing details, and total_instrument_count. To browse symbols within a specific venue, list_instruments accepts a required dataset parameter and supports offset-based pagination via limit and offset. Each instrument record includes symbol, display_symbol, instrument_name, asset_class, sector, and volume.
Historical OHLCV Timeseries
The get_timeseries endpoint requires dataset, symbols (comma-separated), and start. The schema parameter selects the data format: supported schemas under the free preview key are ohlcv-1d, ohlcv-1h, ohlcv-1m, and ohlcv-1s. Records in the records array each contain an hd header object with ts_event (nanosecond timestamp) and instrument_id, alongside open, high, low, close, and volume fields. The stype_in and stype_out parameters control symbol type translation (e.g. raw_symbol to instrument_id) within the same request.
Symbol Resolution and Schema Reference
The resolve_symbols endpoint maps symbols between symbology types for a given dataset and date window defined by start_date and end_date. The result object keys each input symbol to an array of resolution entries, each with d0 (effective start date), d1 (effective end date), and s (resolved value). This is useful when instrument IDs change over corporate actions or roll dates. The list_schemas endpoint is dataset-agnostic and returns the full schema catalog, with each entry providing a schema_id, schema_display_name, brief_introduction, and column_introduction describing its fields.
The Databento API is a managed, monitored endpoint for databento.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when databento.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official databento.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Backtest equity strategies using daily or intraday OHLCV bars from XNAS.ITCH via
get_timeseries - Build a futures symbol lookup tool by paginating
list_instrumentsfor GLBX.MDP3 with offset and limit - Automate portfolio data pipelines by resolving symbol ID changes with
resolve_symbolsacross roll dates - Enumerate all available market venues and their instrument counts using
list_datasetsfor coverage analysis - Determine which schemas are available before querying timeseries by calling
list_schemasto inspect column definitions - Map options symbols on OPRA.PILLAR between raw_symbol and instrument_id representations for historical alignment
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Databento have an official developer API?+
What does `get_timeseries` actually return, and are tick-level schemas supported?+
get_timeseries returns OHLCV bar data for schemas ohlcv-1d, ohlcv-1h, ohlcv-1m, and ohlcv-1s, covering approximately the last year. Tick-level schemas such as mbo (full order book) or trades are not accessible under the free preview key; a paid Databento API key is required to request those schemas through this endpoint.Does `resolve_symbols` handle corporate action symbol changes over time?+
d0 and d1 date bounds alongside the resolved value s, so a symbol that changed its instrument ID due to a corporate event will appear as multiple entries covering non-overlapping date ranges.Does the API expose real-time or streaming market data?+
Can I retrieve full order book depth (MBO/MBP) data through this API?+
get_timeseries and schema metadata via list_schemas, but does not include endpoints for requesting order book depth records. You can fork it on Parse and revise it to add an endpoint that requests those schemas using a paid Databento API key.