series. For entity-keyed models that key is the primary key of a row in a tabular model, usually a UUID such as b204e48e-9812-43e6-a00b-5fcfd40e04a2. Slugs and symbols are accepted by the tabular row endpoint but not by the timeseries path: a request such as /query/timeseries/blockchains/1d/solana returns 200 with an empty points array and no entity, not a 404. Resolve the identifier first.
1
Look up the row
curl "https://api.blockworks.com/query/tabular/blockchains/solana?selections=networkID,name" \
-H "X-Blockworks-API-Key: $BLOCKWORKS_API_KEY"
{"error": null, "data": {"networkID": "b204e48e-9812-43e6-a00b-5fcfd40e04a2", "name": "Solana"}, "metadata": {"matchedField": "slug"}}
2
Put the primary key in the timeseries path
/query/timeseries/blockchains/1d/b204e48e-9812-43e6-a00b-5fcfd40e04a2Lookup table
One row per lookup: the timeseries models that share a key, the path parameter that carries it, the request that resolves it, and the identifiers that request accepts. Generated from the catalog, so it is complete for every model in this reference.| Timeseries models | Series key | Look it up with | Identifiers accepted |
|---|---|---|---|
asset-buybacks, asset-investor-mentions, asset-marketcap, asset-mindshare, asset-price, asset-sentiment, asset-sharpe, asset-supply, asset-volatility, token-unlocks | asset-id, assetID, id (Asset ID) | GET /query/tabular/assets/bitcoin then read assetID | slug, prioritySymbol or the assetID itself |
blockchains | id (Network ID) | GET /query/tabular/blockchains/solana then read networkID | slug or the networkID itself |
cefi-balances | id (CeFi Balance ID) | GET /query/tabular/cefi-balances then read id of the row | id only (list endpoint, no row lookup) |
dat-companies | id (DAT Company ID) | GET /query/tabular/dat-companies then read id of the row | id only (list endpoint, no row lookup) |
dat-companies-by-asset | id (DAT Company Asset ID) | GET /query/tabular/dat-company-assets then read id of the row | id only (list endpoint, no row lookup) |
etf-assets | id (Asset ID) | GET /query/tabular/etf-assets then read id of the row | id only (list endpoint, no row lookup) |
etf-providers | id (Project ID) | GET /query/tabular/etf-providers then read id of the row | id only (list endpoint, no row lookup) |
launchpads-by-chain | id (Chain ID) | GET /query/tabular/launchpad-chains then read id of the row | id only (list endpoint, no row lookup) |
launchpads | id (Launchpad ID) | GET /query/tabular/launchpads then read id of the row | id only (list endpoint, no row lookup) |
lending-market-balances | id (Lending Market Balance ID) | GET /query/tabular/lending-market-balances then read id of the row | id only (list endpoint, no row lookup) |
lending-market-financials | id (Lending Market Financial ID) | GET /query/tabular/lending-market-financials then read id of the row | id only (list endpoint, no row lookup) |
lending-market-flows | id (Lending Market Flow ID) | GET /query/tabular/lending-market-flows then read id of the row | id only (list endpoint, no row lookup) |
lending-market-interest-rates | id (Lending Market Interest Rate ID) | GET /query/tabular/lending-market-interest-rates then read id of the row | id only (list endpoint, no row lookup) |
lending-market-liquidations | id (Lending Market Liquidation ID) | GET /query/tabular/lending-market-liquidations then read id of the row | id only (list endpoint, no row lookup) |
lending-protocols-by-product-market | id (Protocol Product Chain Market ID) | GET /query/tabular/lending-protocol-product-markets then read id of the row | id only (list endpoint, no row lookup) |
lending-protocols-by-product | id (Protocol Product Chain ID) | GET /query/tabular/lending-protocol-products then read id of the row | id only (list endpoint, no row lookup) |
lending-protocols | id (Project ID) | GET /query/tabular/lending-protocols then read id of the row | id only (list endpoint, no row lookup) |
bqen | id (Market ID) | GET /query/tabular/markets/<marketID> then read marketID | marketID only |
perp-dex-protocols | id (Project ID) | GET /query/tabular/perp-dex-protocols then read id of the row | id only (list endpoint, no row lookup) |
perpetual-market-funding-rates | perpetualMarketID (Perpetual Market ID) | GET /query/tabular/perpetual-market-funding-rates/<perpetualMarketID> then read perpetualMarketID | perpetualMarketID only |
perpetual-markets | id (Perpetual Market ID) | GET /query/tabular/perpetual-markets/<slug> then read id | slug or the id itself |
privacy-flows | id (Privacy Flow ID) | GET /query/tabular/privacy-flows then read id of the row | id only (list endpoint, no row lookup) |
project-revenue | id (Project Revenue ID) | GET /query/tabular/project-revenue then read id of the row | id only (list endpoint, no row lookup) |
project-tokenholder-distributions | id (Project Tokenholder Distribution ID) | GET /query/tabular/project-tokenholder-distributions then read id of the row | id only (list endpoint, no row lookup) |
project-tokens | id (Token ID) | GET /query/tabular/project-tokens/<id> then read id | id only |
rwa-by-category | id (RWA Category ID) | GET /query/tabular/rwa-categories then read id of the row | id only (list endpoint, no row lookup) |
rwa-by-chain | id (RWA Chain ID) | GET /query/tabular/rwa-chains then read id of the row | id only (list endpoint, no row lookup) |
rwa-by-deployment | id (RWA Deployment ID) | GET /query/tabular/rwa-deployments then read id of the row | id only (list endpoint, no row lookup) |
rwa-by-issuer | id (RWA Issuer ID) | GET /query/tabular/rwa-issuers then read id of the row | id only (list endpoint, no row lookup) |
rwa-by-product | id (RWA Product ID) | GET /query/tabular/rwa-products then read id of the row | id only (list endpoint, no row lookup) |
rwa-spot-dex-activity | id (RWA Spot DEX Segment ID) | GET /query/tabular/rwa-spot-dex-segments then read id of the row | id only (list endpoint, no row lookup) |
spot-dex-liquidity-balances | id (Spot DEX Liquidity Balance ID) | GET /query/tabular/spot-dex-liquidity-balances then read id of the row | id only (list endpoint, no row lookup) |
spot-dex-protocols-by-chain | id (Protocol Version Chain ID) | GET /query/tabular/spot-dex-protocol-chains then read id of the row | id only (list endpoint, no row lookup) |
spot-dex-protocols | id (Project ID) | GET /query/tabular/spot-dex-protocols then read id of the row | id only (list endpoint, no row lookup) |
stablecoins-by-chain | id (Chain ID) | GET /query/tabular/stablecoin-chains then read id of the row | id only (list endpoint, no row lookup) |
stablecoins-by-currency | id (Currency) | GET /query/tabular/stablecoin-currencies then read id of the row | id only (list endpoint, no row lookup) |
stablecoin-fx | id (Currency Pair) | GET /query/tabular/stablecoin-fx-pairs then read id of the row | id only (list endpoint, no row lookup) |
stablecoins-by-issuer | id (Issuer ID) | GET /query/tabular/stablecoin-issuers then read id of the row | id only (list endpoint, no row lookup) |
stablecoins-by-product | id (Token ID) | GET /query/tabular/stablecoin-products then read id of the row | id only (list endpoint, no row lookup) |
stablecoin-reserves | id (Reserve ID) | GET /query/tabular/stablecoin-reserve-entities then read id of the row | id only (list endpoint, no row lookup) |
tcg-platforms-by-chain, tcg-platforms-by-deployment | id (Platform Chain ID) | GET /query/tabular/tcg-platform-chains then read id of the row | id only (list endpoint, no row lookup) |
tokenized-commodities-by-commodity | id (Commodity ID) | GET /query/tabular/tokenized-commodities then read id of the row | id only (list endpoint, no row lookup) |
tokenized-commodities-by-chain | id (Chain ID) | GET /query/tabular/tokenized-commodity-chains then read id of the row | id only (list endpoint, no row lookup) |
tokenized-commodities-by-issuer | id (Issuer ID) | GET /query/tabular/tokenized-commodity-issuers then read id of the row | id only (list endpoint, no row lookup) |
tokenized-commodities-by-product | id (Product ID) | GET /query/tabular/tokenized-commodity-products then read id of the row | id only (list endpoint, no row lookup) |
tokenized-equities-by-equity | id (Equity ID) | GET /query/tabular/tokenized-equities then read id of the row | id only (list endpoint, no row lookup) |
tokenized-equities-by-chain | id (Chain ID) | GET /query/tabular/tokenized-equity-chains then read id of the row | id only (list endpoint, no row lookup) |
tokenized-equities-by-issuer | id (Issuer ID) | GET /query/tabular/tokenized-equity-issuers then read id of the row | id only (list endpoint, no row lookup) |
tokenized-equities-by-product | id (Product ID) | GET /query/tabular/tokenized-equity-products then read id of the row | id only (list endpoint, no row lookup) |
vault-balances | id (Vault Balance ID) | GET /query/tabular/vault-balances then read id of the row | id only (list endpoint, no row lookup) |
vaults-by-chain | id (Chain ID) | GET /query/tabular/vault-chains then read id of the row | id only (list endpoint, no row lookup) |
vault-curators | id (Curator ID) | GET /query/tabular/vault-curators then read id of the row | id only (list endpoint, no row lookup) |
vault-financials | id (Vault Financial ID) | GET /query/tabular/vault-financials then read id of the row | id only (list endpoint, no row lookup) |
vault-flows | id (Vault Flow ID) | GET /query/tabular/vault-flows then read id of the row | id only (list endpoint, no row lookup) |
vault-performances | id (Vault Performance ID) | GET /query/tabular/vault-performances then read id of the row | id only (list endpoint, no row lookup) |
vault-protocols | id (Project ID) | GET /query/tabular/vault-protocols then read id of the row | id only (list endpoint, no row lookup) |
exchanges | id (Exchange ID) | the exchanges table, not published in this reference | the id only |
project-mindshare, projects | id, project-id (Project ID) | the projects table, not published in this reference | the id only |
protocol-revenue-by-product | id (Protocol Product Chain ID) | the protocol-revenue-products table, not published in this reference; or call the multi-series endpoint without series and read series[].key | the id only |
protocol-revenue | id (Project ID) | the protocol-revenues table, not published in this reference; or call the multi-series endpoint without series and read series[].key | the id only |
trending-topics | trending-topic-id (Topic ID) | the topics-current table, not published in this reference | the id only |
sector-asset-mindshare, sector-asset-sentiment, sector-fundraising, sector-investor-mentions, sector-marketdata | sector (Sectors) | none needed: call the multi-series endpoint without series and read series[].key | plain names, for example AI |
sub-sector-asset-mindshare, sub-sector-asset-sentiment, sub-sector-marketdata | sub-sector (Sub-Sectors) | none needed: call the multi-series endpoint without series and read series[].key | plain names, for example AI |
asset-group-sentiment | asset-group-id (Asset Group ID) | none available: keys must be known in advance | plain names |
exchange-country | country (Country) | none available: keys must be known in advance | plain names such as United States, Japan |
exchange-region | region (Region) | none available: keys must be known in advance | plain names such as Asia, Europe |
exchange-type | exchange-type (Exchange Type) | none available: keys must be known in advance | plain names such as centralized, decentralized |
Keys that are plain names
Aggregate models (sectors, sub-sectors, exchange types, countries and regions) key their series by a display name rather than an id. Where the model allows it, call the multi-series endpoint withoutseries and read series[].key; those values are the keys. Where series is required, the names must be known in advance; the ones the examples on this site use are listed above.
Timeseries catalog
Which column is the series key of every model (
seriesKey: true).Tabular catalog
Which columns are
primaryKey and identifier on every lookup model.Tabular vs timeseries
How the two model kinds compose.
Responses
What
entity and points look like once you have the key.