- Assets are identified by
symbol(aave,hype,kalshi,eq-coin). Discover them viaGET /asset/. - Metrics are uppercase names (
LENDING_DEPOSITS,PERP_VOLUME). Discover them per asset viaGET /supported-metrics/. - Date range is
startDateandendDate, alwaysYYYY-MM-DD.granularityrolls the result up toWEEK,MONTH,QUARTERorYEAR. - Cuts split a series by
dimensionType: by chain, protocol version, or market category.
Five things worth knowing
1. Use symbol as the lookup key
/asset/ returns both an artemis_id and a symbol for every asset. symbol is the lookup key for symbols= on /v2/data/ and for symbol= on /supported-metrics/.
symbol from /asset/ rather than assuming:
2. Know the aggregation type
Each metric aggregates differently, and it decides whatgranularity gives you:
Every metric’s type is in the
aggregation_type field from /supported-metrics/. When a rolled-up figure is going into a model, it’s worth checking it once against the daily series so you know exactly what the period value represents.
3. Errors arrive in the value position, with HTTP 200
When something about your request can’t be served, you get a string where the array would be. The metric may be unavailable for that asset, or thedimensionType you asked for may not apply to it:
Type-check before iterating:
4. null is not the same as missing
The current period is normally present with a null value because it hasn’t closed:
data[-1] is therefore null. Filter before taking a latest value.
Every symbol you request comes back, even one that doesn’t exist. It just arrives carrying an error string instead of an array. So the response length always matches your request, and the thing to check is the type of each data field, not whether a symbol is missing.
5. series_columns tells you the tuple shape
series_columns instead of assuming position 0 is a date. With summarize=true you also get an extra <METRIC>_PCT_CHG series per metric.
Optional parameters
granularity
aggregation_type: SUM metrics are summed, LAST metrics take the period’s final value, AVERAGE metrics are averaged.
Each metric is labelled on its own calendar:
- Time series (on-chain, stablecoins, equity
PRICE) label by period start. A monthly series reads2026-04-01,2026-05-01. - Equity fundamentals (
TOTAL_REVENUE,NET_INCOME,EBITDA) label by fiscal-period end, matching how companies report. Coinbase’s Q3 2025 revenue is dated2025-09-30. - Fundamentals always resolve to fiscal periods, so
MONTHonTOTAL_REVENUEreturns fiscal quarters.
2025-09-30 and Hyperliquid’s 2025-07-01 are both Q3 2025.
summarize
Returns the endDate value for each metric, plus a <METRIC>_PCT_CHG series giving the change from startDate to endDate.
The date range is a comparison window, not an aggregation window: you get the latest value and how far it moved. That’s what makes it ideal for leaderboards (see Sector leaderboards). For a period total, use granularity.
dimensionType
Splits one series into many. asset becomes <dimension>-<symbol>:
- Most used:
CHAIN,VERSION,CATEGORY,TOKEN,TOKEN_TYPE,SYMBOL(23 in total) - Per metric: the
cutsarray in/supported-metrics/lists the dimensions that metric supports - Unsupported value: HTTP 422, listing every valid one
