Blockworks Markets API

Models documented under Markets: Market (BQEN) (timeseries).

Operations 2

GET /query/timeseries/bqen/{granularity} Batch Get Market timeseries #
GET /query/timeseries/bqen/{granularity}/{id} Get Market timeseries #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/blockworks-markets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

blockworks-markets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Blockworks Data API is a unified, read-only REST interface to Blockworks' warehouse-modeled crypto dataset, powered by Messari's research and data infrastructure.
  title: Blockworks Data Markets API
  version: 0.1.0
servers:
- description: Blockworks API
  url: https://api.blockworks.com
security:
- apiKey: []
tags:
- description: 'Models documented under Markets: Market (BQEN) (timeseries).'
  name: Markets
paths:
  /query/timeseries/bqen/{granularity}:
    get:
      description: 'Price and volume candles for a trading pair on one exchange: open, high, low, close and volume, in USD and in the raw quote currency. Each series is one market, keyed by its market id.'
      operationId: getTimeseries_bqen
      parameters:
      - description: Data granularity.
        in: path
        name: granularity
        required: true
        schema:
          enum:
          - 5m
          - 1h
          - 1d
          - 1w
          type: string
      - description: 'Comma-separated Market ID values naming the series to return (up to 10). Required: this model has too many series to return at once.'
        in: query
        name: series
        required: true
        schema:
          type: string
      - description: 'Time window, one of: to-date (ytd, qtd, mtd, dtd, htd); relative, <n> followed by m, h, d or w (30d, 12h, 4w; 1y and 1M are not accepted, use 365d, 52w, ytd or a calendar year); a calendar day (YYYY-MM-DD), month (YYYY-MM) or year (YYYY); or an RFC3339 instant, which runs from then to now. Mutually exclusive with start/end. Default: everything retained, up to now.'
        in: query
        name: timeframe
        schema:
          type: string
      - description: 'Window start, inclusive (RFC3339, unix seconds, or YYYY-MM-DD). Default: unbounded.'
        in: query
        name: start
        schema:
          type: string
      - description: 'Window end, exclusive (RFC3339, unix seconds, or YYYY-MM-DD). Default: now.'
        in: query
        name: end
        schema:
          type: string
      - description: If true, return only the first and last point of the resolved time window instead of every point in it.
        in: query
        name: bounds
        schema:
          type: boolean
      - description: Comma-separated metric fields to return; defaults to every metric. A point always leads with its timestamp, and the values that follow are described by point_schema in catalog order regardless of the order requested here.
        in: query
        name: selections
        schema:
          items:
            enum:
            - open-price
            - open-price-raw
            - high-price
            - high-price-raw
            - low-price
            - low-price-raw
            - close-price
            - close-price-raw
            - volume
            - volume-raw
            type: string
          type: array
      - description: 'Response format, overriding the Accept header: json (default), csv, or jsonl (NDJSON). csv and jsonl return the rows as a downloadable file.'
        in: query
        name: acceptFormat
        schema:
          default: json
          enum:
          - json
          - csv
          - jsonl
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                data:
                  point_schema:
                  - description: Timestamp of the data point.
                    field: time
                    name: Time
                    time: true
                    type: time
                  - description: USD price at the candle open.
                    field: open-price
                    name: Open Price
                    time: false
                    type: float64
                    unit: usd
                  - description: Raw price at the candle open.
                    field: open-price-raw
                    name: Open Price Raw
                    time: false
                    type: float64
                    unit: usd
                  series:
                  - entity:
                      baseAssetSymbol: <baseAssetSymbol>
                      exchangeName: <exchangeName>
                      quoteAssetSymbol: <quoteAssetSymbol>
                    key: <Market ID>
                    points:
                    - - 1704067200
                      - 123.45
                      - 123.45
                error: null
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/BqenData'
                  error:
                    type:
                    - string
                    - 'null'
                required:
                - data
                type: object
            application/x-ndjson:
              schema:
                description: JSON Lines (NDJSON); one JSON object per line.
                type: string
            text/csv:
              schema:
                description: CSV with a header row; one row per record.
                type: string
          description: Timeseries points for each series.
        '400':
          content:
            application/json:
              example:
                data: null
                error: 'too many series requested: 11 exceeds the maximum of 10'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: 'The request is malformed: an empty, duplicated or too long series list (at most 10 keys), an unknown query parameter, an unrecognized timeframe (1y and 1M are not accepted; use 365d, 52w, ytd or a calendar year), timeframe combined with start or end, an unknown selections field, or an invalid bounds or acceptFormat value.'
        '401':
          content:
            application/json:
              example:
                data: null
                error: this model requires authentication
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: No API key was sent and the model requires one.
        '403':
          content:
            application/json:
              example:
                data: null
                error: this model requires the "market_data_unified" permission
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The API key is not valid, or does not hold the "market_data_unified" permission.
        '404':
          content:
            application/json:
              example:
                data: null
                error: the all-series endpoint is not available for model "bqen"; request specific series via ?series or a series-key path
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: 'The series parameter was omitted: this model does not return every series at once, so name the ones you want. Also returned when the path names a model that does not exist or a granularity the model is not available at.'
      summary: Batch Get Market timeseries
      tags:
      - Markets
      x-badges:
      - color: '#7c3aed'
        name: market_data_unified
        position: after
      x-mint:
        metadata:
          sidebarTitle: Batch Get Market timeseries
          title: Batch Get Market timeseries
      x-series-key-entity: core-metrics-markets
  /query/timeseries/bqen/{granularity}/{id}:
    get:
      description: 'Price and volume candles for a trading pair on one exchange: open, high, low, close and volume, in USD and in the raw quote currency. Each series is one market, keyed by its market id.'
      operationId: getTimeseriesSeries_bqen
      parameters:
      - description: Data granularity.
        in: path
        name: granularity
        required: true
        schema:
          enum:
          - 5m
          - 1h
          - 1d
          - 1w
          type: string
      - description: 'The Market ID identifying the series. A key no series has is not an error: the response carries an empty points array.'
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: 'Time window, one of: to-date (ytd, qtd, mtd, dtd, htd); relative, <n> followed by m, h, d or w (30d, 12h, 4w; 1y and 1M are not accepted, use 365d, 52w, ytd or a calendar year); a calendar day (YYYY-MM-DD), month (YYYY-MM) or year (YYYY); or an RFC3339 instant, which runs from then to now. Mutually exclusive with start/end. Default: everything retained, up to now.'
        in: query
        name: timeframe
        schema:
          type: string
      - description: 'Window start, inclusive (RFC3339, unix seconds, or YYYY-MM-DD). Default: unbounded.'
        in: query
        name: start
        schema:
          type: string
      - description: 'Window end, exclusive (RFC3339, unix seconds, or YYYY-MM-DD). Default: now.'
        in: query
        name: end
        schema:
          type: string
      - description: If true, return only the first and last point of the resolved time window instead of every point in it.
        in: query
        name: bounds
        schema:
          type: boolean
      - description: Comma-separated metric fields to return; defaults to every metric. A point always leads with its timestamp, and the values that follow are described by point_schema in catalog order regardless of the order requested here.
        in: query
        name: selections
        schema:
          items:
            enum:
            - open-price
            - open-price-raw
            - high-price
            - high-price-raw
            - low-price
            - low-price-raw
            - close-price
            - close-price-raw
            - volume
            - volume-raw
            type: string
          type: array
      - description: 'Response format, overriding the Accept header: json (default), csv, or jsonl (NDJSON). csv and jsonl return the rows as a downloadable file.'
        in: query
        name: acceptFormat
        schema:
          default: json
          enum:
          - json
          - csv
          - jsonl
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                data:
                  entity:
                    baseAssetSymbol: <baseAssetSymbol>
                    exchangeName: <exchangeName>
                    quoteAssetSymbol: <quoteAssetSymbol>
                  key: <Market ID>
                  point_schema:
                  - description: Timestamp of the data point.
                    field: time
                    name: Time
                    time: true
                    type: time
                  - description: USD price at the candle open.
                    field: open-price
                    name: Open Price
                    time: false
                    type: float64
                    unit: usd
                  - description: Raw price at the candle open.
                    field: open-price-raw
                    name: Open Price Raw
                    time: false
                    type: float64
                    unit: usd
                  points:
                  - - 1704067200
                    - 123.45
                    - 123.45
                error: null
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/BqenSeriesData'
                  error:
                    type:
                    - string
                    - 'null'
                required:
                - data
                type: object
            application/x-ndjson:
              schema:
                description: JSON Lines (NDJSON); one JSON object per line.
                type: string
            text/csv:
              schema:
                description: CSV with a header row; one row per record.
                type: string
          description: Timeseries points for the series.
        '400':
          content:
            application/json:
              example:
                data: null
                error: 'unrecognized timeframe "1y": expected ytd|qtd|mtd|dtd|htd, <n>m|h|d|w, YYYY-MM-DD, YYYY-MM, YYYY, or RFC3339'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: 'The request is malformed: an unknown query parameter, an unrecognized timeframe (1y and 1M are not accepted; use 365d, 52w, ytd or a calendar year), timeframe combined with start or end, a start after the end, an unknown selections field, or an invalid bounds or acceptFormat value.'
        '401':
          content:
            application/json:
              example:
                data: null
                error: this model requires authentication
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: No API key was sent and the model requires one.
        '403':
          content:
            application/json:
              example:
                data: null
                error: this model requires the "market_data_unified" permission
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The API key is not valid, or does not hold the "market_data_unified" permission.
        '404':
          content:
            application/json:
              example:
                data: null
                error: 'model "bqen" does not support granularity "1h" (supported: 5m, 1h, 1d, 1w)'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: 'The path names a model that does not exist ("no timeseries model ..."), or a granularity the model is not available at. An unknown series key is not a 404: it returns 200 with an empty points array.'
      summary: Get Market timeseries
      tags:
      - Markets
      x-badges:
      - color: '#7c3aed'
        name: market_data_unified
        position: after
      x-mint:
        metadata:
          sidebarTitle: Get Market timeseries
          title: Get Market timeseries
      x-series-key-entity: core-metrics-markets
components:
  schemas:
    ErrorResponse:
      properties:
        data:
          description: Always null on an error.
          type:
          - object
          - 'null'
        error:
          description: What went wrong, in one sentence.
          type: string
      required:
      - error
      - data
      type: object
    BqenSeriesData:
      properties:
        entity:
          description: Information about what the series key identifies, from the "core-metrics-markets" model.
          properties:
            baseAssetSymbol:
              description: The ticker symbol of the market's base asset.
              type:
              - string
              - 'null'
            exchangeName:
              description: The name of the exchange the market trades on.
              type:
              - string
              - 'null'
            quoteAssetSymbol:
              description: The ticker symbol of the market's quote asset.
              type:
              - string
              - 'null'
          type: object
        key:
          type: string
        point_schema:
          items:
            properties:
              description:
                type: string
              field:
                type: string
              name:
                type: string
              time:
                type: boolean
              type:
                type: string
              unit:
                description: What the value is denominated in. Absent for a plain number.
                enum:
                - usd
                - btc
                - sats
                - eth
                - gwei
                - native-token
                - percent
                - count
                - ratio
                type: string
            type: object
          type: array
        points:
          items:
            description: A unix timestamp (seconds) followed by the metric values, in point_schema order.
            items:
              type:
              - number
              - 'null'
            type: array
          type: array
      required:
      - point_schema
      - key
      - points
      type: object
    BqenData:
      properties:
        point_schema:
          items:
            properties:
              description:
                type: string
              field:
                type: string
              name:
                type: string
              time:
                type: boolean
              type:
                type: string
              unit:
                description: What the value is denominated in. Absent for a plain number.
                enum:
                - usd
                - btc
                - sats
                - eth
                - gwei
                - native-token
                - percent
                - count
                - ratio
                type: string
            type: object
          type: array
        series:
          items:
            properties:
              entity:
                description: Information about what the series key identifies, from the "core-metrics-markets" model.
                properties:
                  baseAssetSymbol:
                    description: The ticker symbol of the market's base asset.
                    type:
                    - string
                    - 'null'
                  exchangeName:
                    description: The name of the exchange the market trades on.
                    type:
                    - string
                    - 'null'
                  quoteAssetSymbol:
                    description: The ticker symbol of the market's quote asset.
                    type:
                    - string
                    - 'null'
                type: object
              key:
                type: string
              points:
                items:
                  description: A unix timestamp (seconds) followed by the metric values, in point_schema order.
                  items:
                    type:
                    - number
                    - 'null'
                  type: array
                type: array
            type: object
          type: array
      required:
      - point_schema
      - series
      type: object
  securitySchemes:
    apiKey:
      description: API key sent in the `X-Blockworks-API-Key` header; `x-messari-api-key` is accepted for existing integrations. The catalog endpoints and models on the public access tier need no key.
      in: header
      name: X-Blockworks-API-Key
      type: apiKey
x-tagGroups:
- name: Meta
  tags:
  - Tabular
  - Timeseries
- name: Market Data
  tags:
  - Assets
  - Markets
  - Exchanges
  - Derivatives
  - Market Overview
- name: Blockchains
  tags:
  - Blockchains
- name: Projects & Protocols
  tags:
  - Projects & Entities
  - Protocol Revenue
  - Lending Protocols
  - Spot DEXes
  - Perp DEXes
  - Vaults
  - Launchpads
  - TCG Platforms
- name: Real World Assets
  tags:
  - Stablecoins
  - Tokenized Equities
  - Tokenized Commodities
- name: Institutional
  tags:
  - ETFs
  - Digital Asset Treasuries
- name: Fundraising
  tags:
  - Funding Rounds
  - Funds & Investors
  - Acquisitions
- name: Social & Mindshare
  tags:
  - Social & Mindshare
- name: News & Research
  tags:
  - News & Research
- name: Token Transparency Framework
  tags:
  - Token Transparency Framework