> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Markets

> Every trading pair with its base asset, quote asset, exchange and network, plus trailing 24-hour price and volume. The id is the series key of the bqen and markets timeseries models, so this is where you find the market whose candles you want: filter by base asset, quote asset or exchange.



## OpenAPI

````yaml api-reference/data-api/openapi.json GET /query/tabular/markets
openapi: 3.0.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. It serves two kinds of models: tabular models,
    which return current, filterable, sortable rows for entities such as assets,
    networks, protocols, exchanges, stablecoins, and ETFs; and timeseries
    models, which return historical metric series at a chosen granularity for
    one or many entities. Every endpoint shares the same query grammar (column
    projection, per-column filters, sorting, and pagination) and returns the
    standard `{ "error": ..., "data": ... }` envelope. Authenticate by sending
    your API key in the `X-Blockworks-API-Key` header.
  title: Blockworks Data API
  version: 0.1.0
servers:
  - description: Blockworks API
    url: https://api.blockworks.com
security:
  - apiKey: []
tags:
  - description: >-
      Models documented under Assets: Assets (table), Asset Marketcap
      (timeseries), Asset Price (timeseries), Asset Sharpe (timeseries), Asset
      Supply (timeseries), Asset Volatility (timeseries).
    name: Assets
  - description: >-
      Models documented under Blockchains: Blockchains (table), Blockchains
      (timeseries).
    name: Blockchains
  - description: >-
      Models documented under Derivatives: Perpetual Markets (table), Perpetual
      Markets (timeseries).
    name: Derivatives
  - description: >-
      Models documented under Digital Asset Treasury Companies: DAT Companies
      (table), DAT Company Assets (table), DAT Companies (timeseries), DAT
      Companies by Asset (timeseries).
    name: Digital Asset Treasury Companies
  - description: >-
      Models documented under ETFs: ETF Assets (table), ETF Providers (table),
      ETF Assets (timeseries), ETF Providers (timeseries).
    name: ETFs
  - description: >-
      Models documented under Exchanges: Exchange Country (timeseries), Exchange
      Region (timeseries), Exchange Type (timeseries), Exchanges (timeseries).
    name: Exchanges
  - description: >-
      Models documented under Fundraising: Acquisition Deals (table), Fund
      Managers (table), Funding Round Investors (table), Funding Rounds (table),
      Funds (table), Sector Fundraising (timeseries).
    name: Fundraising
  - description: >-
      Models documented under Launchpads: Launchpad Chains (table), Launchpads
      (table), Launchpads (timeseries), Launchpads by Chain (timeseries).
    name: Launchpads
  - description: >-
      Models documented under Lending Protocols: Lending Market Balances
      (table), Lending Protocol Product Markets (table), Lending Protocol
      Products (table), Lending Protocols (table), Lending Market Balances
      (timeseries), Lending Protocols (timeseries), Lending Protocols by Product
      (timeseries), Lending Protocols by Product Market (timeseries).
    name: Lending Protocols
  - description: >-
      Models documented under Markets: Markets (table), Market (BQEN)
      (timeseries).
    name: Markets
  - description: >-
      Models documented under Mindshare & Sentiment: Asset Group Sentiment
      (timeseries), Asset Investor Mentions (timeseries), Asset Mindshare
      (timeseries), Asset Sentiment (timeseries), Project Mindshare
      (timeseries), Sector Asset Mindshare (timeseries), Sector Asset Sentiment
      (timeseries), Sector Investor Mentions (timeseries), Sub-Sector Asset
      Mindshare (timeseries), Sub-Sector Asset Sentiment (timeseries).
    name: Mindshare & Sentiment
  - description: 'Models documented under News: News Feed (table), Topics (timeseries).'
    name: News
  - description: >-
      Models documented under Perp DEX Protocols: Perp DEX Protocols (table),
      Perp DEX Protocols (timeseries).
    name: Perp DEX Protocols
  - description: 'Models documented under Projects: Projects (timeseries).'
    name: Projects
  - description: >-
      Models documented under Protocol Revenue: Protocol Revenue (timeseries),
      Protocol Revenue by Product (timeseries).
    name: Protocol Revenue
  - description: >-
      Models documented under Research Reports (Tabular): Research Reports
      (table).
    name: Research Reports (Tabular)
  - description: >-
      Models documented under Sector Market Data: Sector Marketdata
      (timeseries), Sub-Sector Marketdata (timeseries).
    name: Sector Market Data
  - description: >-
      Models documented under Spot DEX Protocols: Spot DEX Protocol Chains
      (table), Spot DEX Protocols (table), Spot DEX Protocols (timeseries), Spot
      DEX Protocols by Chain (timeseries).
    name: Spot DEX Protocols
  - description: >-
      Models documented under Stablecoins: Stablecoin Chains (table), Stablecoin
      Currencies (table), Stablecoin FX Pairs (table), Stablecoin Issuers
      (table), Stablecoin Products (table), Stablecoin Reserve Entities (table),
      Stablecoin FX (timeseries), Stablecoin Reserves (timeseries), Stablecoins
      by Chain (timeseries), Stablecoins by Currency (timeseries), Stablecoins
      by Issuer (timeseries), Stablecoins by Product (timeseries).
    name: Stablecoins
  - description: >-
      Models documented under TCG Platforms: TCG Platform Chains (table), TCG
      Platforms by Chain (timeseries).
    name: TCG Platforms
  - description: >-
      Discovery of the tabular models: one row per entity, with per-column
      filters, sorting and pagination.
    name: Tabular
  - description: >-
      Discovery of the timeseries models: one series per entity, as points at
      the granularities each model declares.
    name: Timeseries
  - description: >-
      Models documented under Token Transparency: Token Transparency Filing
      Questions (table), Token Transparency Filing Schemas (table), Token
      Transparency Filings (table), Token Transparency Projects (table).
    name: Token Transparency
  - description: 'Models documented under Token Unlocks: Token Unlocks (timeseries).'
    name: Token Unlocks
  - description: >-
      Models documented under Tokenized Commodities: Tokenized Commodities
      (table), Tokenized Commodity Chains (table), Tokenized Commodity Issuers
      (table), Tokenized Commodity Products (table), Tokenized Commodities by
      Chain (timeseries), Tokenized Commodities by Commodity (timeseries),
      Tokenized Commodities by Issuer (timeseries), Tokenized Commodities by
      Product (timeseries).
    name: Tokenized Commodities
  - description: >-
      Models documented under Tokenized Equities: Tokenized Equities (table),
      Tokenized Equity Chains (table), Tokenized Equity Issuers (table),
      Tokenized Equity Products (table), Tokenized Equities by Chain
      (timeseries), Tokenized Equities by Equity (timeseries), Tokenized
      Equities by Issuer (timeseries), Tokenized Equities by Product
      (timeseries).
    name: Tokenized Equities
  - description: >-
      Models documented under Vaults: Vault Chains (table), Vault Curators
      (table), Vault Protocols (table), Vault Curators (timeseries), Vault
      Protocols (timeseries), Vaults by Chain (timeseries).
    name: Vaults
paths:
  /query/tabular/markets:
    get:
      tags:
        - Markets
      summary: List Markets
      description: >-
        Every trading pair with its base asset, quote asset, exchange and
        network, plus trailing 24-hour price and volume. The id is the series
        key of the bqen and markets timeseries models, so this is where you find
        the market whose candles you want: filter by base asset, quote asset or
        exchange.
      operationId: getTabular_markets
      parameters:
        - description: Market ID equals.
          in: query
          name: marketIDEq
          schema:
            type: string
        - description: Market ID is one of (comma-separated).
          in: query
          name: marketIDIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Base Asset ID equals.
          in: query
          name: baseAssetIDEq
          schema:
            type: string
        - description: Base Asset ID is one of (comma-separated).
          in: query
          name: baseAssetIDIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Base Asset Slug equals.
          in: query
          name: baseAssetSlugEq
          schema:
            type: string
        - description: Base Asset Slug is one of (comma-separated).
          in: query
          name: baseAssetSlugIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Quote Asset ID equals.
          in: query
          name: quoteAssetIDEq
          schema:
            type: string
        - description: Quote Asset ID is one of (comma-separated).
          in: query
          name: quoteAssetIDIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Quote Asset Slug equals.
          in: query
          name: quoteAssetSlugEq
          schema:
            type: string
        - description: Quote Asset Slug is one of (comma-separated).
          in: query
          name: quoteAssetSlugIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Exchange ID equals.
          in: query
          name: exchangeIDEq
          schema:
            type: string
        - description: Exchange ID is one of (comma-separated).
          in: query
          name: exchangeIDIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Exchange Slug equals.
          in: query
          name: exchangeSlugEq
          schema:
            type: string
        - description: Exchange Slug is one of (comma-separated).
          in: query
          name: exchangeSlugIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Last Trade At is greater than.
          in: query
          name: lastTradeAtGt
          schema:
            format: date-time
            type: string
        - description: Last Trade At is greater than or equal to.
          in: query
          name: lastTradeAtGte
          schema:
            format: date-time
            type: string
        - description: Liveness equals.
          in: query
          name: livenessEq
          schema:
            type: string
        - description: Liveness is one of (comma-separated).
          in: query
          name: livenessIsOneOf
          schema:
            items:
              type: string
            type: array
        - description: Volume 24H USD is greater than.
          in: query
          name: volume24hUSDGt
          schema:
            type: number
        - description: Volume 24H USD is greater than or equal to.
          in: query
          name: volume24hUSDGte
          schema:
            type: number
        - description: Volume 24H USD is less than.
          in: query
          name: volume24hUSDLt
          schema:
            type: number
        - description: Volume 24H USD is less than or equal to.
          in: query
          name: volume24hUSDLte
          schema:
            type: number
        - description: Field to sort by; defaults to the model's default sort column.
          in: query
          name: sortBy
          schema:
            default: volume24hUSD
            enum:
              - firstTradeAt
              - lastTradeAt
              - latestPrice24hOpen
              - latestPrice24hHigh
              - latestPrice24hLow
              - latestPrice24hClose
              - premiumDiscount
              - exchangeVolumePercentage24h
              - volume24hUSD
              - tradeCount24h
            type: string
        - description: Sort direction.
          in: query
          name: sortDirection
          schema:
            default: asc
            enum:
              - asc
              - desc
            type: string
        - description: 1-based page number.
          in: query
          name: page
          schema:
            type: integer
        - description: Rows per page (max 1000, default 100).
          in: query
          name: pageSize
          schema:
            type: integer
        - description: Comma-separated fields to return; defaults to all fields.
          in: query
          name: selections
          schema:
            items:
              enum:
                - marketID
                - baseAssetID
                - baseAssetName
                - baseAssetSlug
                - baseAssetSymbol
                - baseAssetSector
                - quoteAssetID
                - quoteAssetName
                - quoteAssetSlug
                - quoteAssetSymbol
                - quoteAssetSector
                - exchangeID
                - exchangeName
                - exchangeSlug
                - networkID
                - networkName
                - networkSlug
                - sectors
                - firstTradeAt
                - lastTradeAt
                - isNewMarket
                - isRecentlyListed
                - liveness
                - latestPrice24hOpen
                - latestPrice24hHigh
                - latestPrice24hLow
                - latestPrice24hClose
                - premiumDiscount
                - exchangeVolumePercentage24h
                - volume24hUSD
                - tradeCount24h
              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:
                  - baseAssetID: <baseAssetID>
                    baseAssetName: <baseAssetName>
                    baseAssetSector: <baseAssetSector>
                    baseAssetSlug: <baseAssetSlug>
                    baseAssetSymbol: <baseAssetSymbol>
                    exchangeID: <exchangeID>
                    exchangeName: <exchangeName>
                    exchangeSlug: <exchangeSlug>
                    exchangeVolumePercentage24h: 123.45
                    firstTradeAt: '2024-01-01T00:00:00Z'
                    isNewMarket: true
                    isRecentlyListed: true
                    lastTradeAt: '2024-01-01T00:00:00Z'
                    latestPrice24hClose: 123.45
                    latestPrice24hHigh: 123.45
                    latestPrice24hLow: 123.45
                    latestPrice24hOpen: 123.45
                    liveness: <liveness>
                    marketID: <marketID>
                    networkID: <networkID>
                    networkName: <networkName>
                    networkSlug: <networkSlug>
                    premiumDiscount: 123.45
                    quoteAssetID: <quoteAssetID>
                    quoteAssetName: <quoteAssetName>
                    quoteAssetSector: <quoteAssetSector>
                    quoteAssetSlug: <quoteAssetSlug>
                    quoteAssetSymbol: <quoteAssetSymbol>
                    sectors:
                      - <sectors>
                    tradeCount24h: 123
                    volume24hUSD: 123.45
                error: null
                metadata:
                  totalPages: 1
                  totalRows: 1
              schema:
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/MarketsRow'
                    type: array
                  error:
                    nullable: true
                    type: string
                  metadata:
                    description: >-
                      Pagination totals for the full filtered result set,
                      independent of the current page.
                    properties:
                      totalPages:
                        format: int64
                        type: integer
                      totalRows:
                        format: int64
                        type: integer
                    required:
                      - totalRows
                      - totalPages
                    type: object
                required:
                  - data
                  - metadata
                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: >-
            One page of matching rows, with the totals for the whole filtered
            set.
        '400':
          content:
            application/json:
              example:
                data: null
                error: unknown query parameter "marketID"
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The request is malformed: an unknown query parameter (a filter needs
            its operator suffix, such as marketIDEq), a filter value of the
            wrong type, a sortBy field that is not sortable, an unknown
            selections field, or a pageSize above 1000.
        '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 "markets-dataset" permission; see
                  https://app.blockworks.com/account/api for the public API
                  permissions you hold
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The API key is not valid, or does not hold the "markets-dataset"
            permission.
        '404':
          content:
            application/json:
              example:
                data: null
                error: tabular model "unknown-model" not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The path names a model that does not exist: the slug is mistyped or
            the model was removed.
components:
  schemas:
    MarketsRow:
      properties:
        baseAssetID:
          description: The unique identifier of the market's base asset.
          nullable: true
          type: string
        baseAssetName:
          description: The name of the market's base asset.
          nullable: true
          type: string
        baseAssetSector:
          description: The sector of the market's base asset.
          nullable: true
          type: string
        baseAssetSlug:
          description: The URL slug of the market's base asset.
          nullable: true
          type: string
        baseAssetSymbol:
          description: The ticker symbol of the market's base asset.
          nullable: true
          type: string
        exchangeID:
          description: The unique identifier of the exchange the market trades on.
          nullable: true
          type: string
        exchangeName:
          description: The name of the exchange the market trades on.
          nullable: true
          type: string
        exchangeSlug:
          description: The URL slug of the exchange the market trades on.
          nullable: true
          type: string
        exchangeVolumePercentage24h:
          description: >-
            Share of the exchange's trailing 24-hour volume this market accounts
            for.
          nullable: true
          type: number
        firstTradeAt:
          description: When the market's first trade was recorded.
          format: date-time
          nullable: true
          type: string
        isNewMarket:
          description: If true, the market was listed recently enough to count as new.
          nullable: true
          type: boolean
        isRecentlyListed:
          description: If true, the market's asset was listed recently.
          nullable: true
          type: boolean
        lastTradeAt:
          description: >-
            When the market's most recent trade was recorded. Filtering on this
            selects markets active since a given time.
          format: date-time
          nullable: true
          type: string
        latestPrice24hClose:
          description: Closing price over the trailing 24 hours, in USD.
          nullable: true
          type: number
        latestPrice24hHigh:
          description: Highest price over the trailing 24 hours, in USD.
          nullable: true
          type: number
        latestPrice24hLow:
          description: Lowest price over the trailing 24 hours, in USD.
          nullable: true
          type: number
        latestPrice24hOpen:
          description: Opening price over the trailing 24 hours, in USD.
          nullable: true
          type: number
        liveness:
          description: >-
            Trading state of the market. One of live, low-volume, or inactive.
            The public API renders low-volume as stale.
          nullable: true
          type: string
        marketID:
          description: >-
            The unique identifier of the market, and the series key of the bqen
            and markets timeseries models. It joins the serial identifiers of
            the base asset, quote asset and exchange, and adds the network on an
            onchain market. 6057-140-68 is BTC/USDT on Binance; 6071-6083-84-9
            is WETH/USDC on Uniswap v3 on Ethereum.
          nullable: true
          type: string
        networkID:
          description: >-
            The unique identifier of the network the market settles on. Absent
            for markets that are not onchain.
          nullable: true
          type: string
        networkName:
          description: The name of the network the market settles on.
          nullable: true
          type: string
        networkSlug:
          description: The URL slug of the network the market settles on.
          nullable: true
          type: string
        premiumDiscount:
          description: >-
            The market's price relative to the reference price of its base
            asset.
          nullable: true
          type: number
        quoteAssetID:
          description: The unique identifier of the market's quote asset.
          nullable: true
          type: string
        quoteAssetName:
          description: The name of the market's quote asset.
          nullable: true
          type: string
        quoteAssetSector:
          description: The sector of the market's quote asset.
          nullable: true
          type: string
        quoteAssetSlug:
          description: The URL slug of the market's quote asset.
          nullable: true
          type: string
        quoteAssetSymbol:
          description: The ticker symbol of the market's quote asset.
          nullable: true
          type: string
        sectors:
          description: The sectors covering the market's assets.
          items:
            type: string
          nullable: true
          type: array
        tradeCount24h:
          description: Number of trades over the trailing 24 hours.
          format: int64
          nullable: true
          type: integer
        volume24hUSD:
          description: Traded volume over the trailing 24 hours, in USD.
          nullable: true
          type: number
      type: object
    ErrorResponse:
      properties:
        data:
          description: Always null on an error.
          nullable: true
          type: object
        error:
          description: What went wrong, in one sentence.
          type: string
      required:
        - error
        - data
      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
        open to everyone need no key.
      in: header
      name: X-Blockworks-API-Key
      type: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.