> ## 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.

# Get Perpetual Market

> One row per perpetual futures contract on a centralized exchange, keyed by exchange and contract symbol: exchange, symbol, base asset, quote and settle currency, contract type and margin type. The id is the series key of the perpetual-markets timeseries model; filter by base asset to find every venue listing an asset's perpetual.



## OpenAPI

````yaml api-reference/data-api/openapi.json GET /query/tabular/perpetual-markets/{id}
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 Acquisitions: Acquisition Deals (table).'
    name: Acquisitions
  - 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 Treasuries: DAT Companies (table),
      DAT Company Assets (table), DAT Companies (timeseries), DAT Companies by
      Asset (timeseries).
    name: Digital Asset Treasuries
  - 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 Funding Rounds: Funding Round Investors (table),
      Funding Rounds (table), Sector Fundraising (timeseries).
    name: Funding Rounds
  - description: >-
      Models documented under Funds & Investors: Fund Managers (table), Funds
      (table).
    name: Funds & Investors
  - 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 Protocol Product
      Markets (table), Lending Protocol Products (table), Lending Protocols
      (table), Lending Protocols (timeseries), Lending Protocols by Product
      (timeseries), Lending Protocols by Product Market (timeseries).
    name: Lending Protocols
  - description: >-
      Models documented under Market Overview: Sector Marketdata (timeseries),
      Sub-Sector Marketdata (timeseries).
    name: Market Overview
  - description: 'Models documented under Markets: Market (BQEN) (timeseries).'
    name: Markets
  - description: >-
      Models documented under News & Research: News Feed (table), Research
      Reports (table), Topics (timeseries).
    name: News & Research
  - description: >-
      Models documented under Perp DEXes: Perp DEX Protocols (table), Perp DEX
      Protocols (timeseries).
    name: Perp DEXes
  - description: 'Models documented under Projects & Entities: Projects (timeseries).'
    name: Projects & Entities
  - description: >-
      Models documented under Protocol Revenue: Protocol Revenue (timeseries),
      Protocol Revenue by Product (timeseries).
    name: Protocol Revenue
  - description: >-
      Models documented under Social & Mindshare: 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: Social & Mindshare
  - description: >-
      Models documented under Spot DEXes: Spot DEX Protocol Chains (table), Spot
      DEX Protocols (table), Spot DEX Protocols (timeseries), Spot DEX Protocols
      by Chain (timeseries).
    name: Spot DEXes
  - 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 Framework: Token Transparency
      Filing Questions (table), Token Transparency Filing Schemas (table), Token
      Transparency Filings (table), Token Transparency Projects (table).
    name: Token Transparency Framework
  - 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/perpetual-markets/{id}:
    get:
      tags:
        - Derivatives
      summary: Get Perpetual Market
      description: >-
        One row per perpetual futures contract on a centralized exchange, keyed
        by exchange and contract symbol: exchange, symbol, base asset, quote and
        settle currency, contract type and margin type. The id is the series key
        of the perpetual-markets timeseries model; filter by base asset to find
        every venue listing an asset's perpetual.
      operationId: getTabularRow_perpetual_markets
      parameters:
        - description: >-
            The Perpetual Market ID identifying the row. Falls back to the
            alternative identifier fields (slug, tried in that order) when no
            Perpetual Market ID matches; metadata.matchedField says which one
            matched.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: Comma-separated fields to return; defaults to all fields.
          in: query
          name: selections
          schema:
            items:
              enum:
                - id
                - name
                - slug
                - exchange
                - symbol
                - symbolNormalized
                - baseAssetID
                - baseAssetName
                - baseAssetSlug
                - baseAssetSymbol
                - baseAssetSerialID
                - quoteAssetSerialID
                - settleAssetSerialID
                - exchangeSerialID
                - quoteCurrency
                - settleCurrency
                - contractType
                - marginType
                - exchangeID
                - exchangeName
              type: string
            type: array
      responses:
        '200':
          content:
            application/json:
              example:
                data:
                  baseAssetID: <baseAssetID>
                  baseAssetName: <baseAssetName>
                  baseAssetSerialID: 123
                  baseAssetSlug: <baseAssetSlug>
                  baseAssetSymbol: <baseAssetSymbol>
                  contractType: <contractType>
                  exchange: <exchange>
                  exchangeID: <exchangeID>
                  exchangeName: <exchangeName>
                  exchangeSerialID: 123
                  id: <id>
                  marginType: <marginType>
                  name: <name>
                  quoteAssetSerialID: 123
                  quoteCurrency: <quoteCurrency>
                  settleAssetSerialID: 123
                  settleCurrency: <settleCurrency>
                  slug: <slug>
                  symbol: <symbol>
                  symbolNormalized: <symbolNormalized>
                error: null
                metadata:
                  matchedField: id
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PerpetualMarketsRow'
                  error:
                    nullable: true
                    type: string
                  metadata:
                    description: >-
                      The public field the lookup value matched on: the primary
                      key or an alternative identifier.
                    properties:
                      matchedField:
                        type: string
                    required:
                      - matchedField
                    type: object
                required:
                  - data
                  - metadata
                type: object
          description: The matching row, and which field it matched on.
        '400':
          content:
            application/json:
              example:
                data: null
                error: unknown selection field "nope"
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            The request is malformed: an unknown query parameter, or a
            selections field the model does not have.
        '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: no row found matching "unknown"
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            No row's Perpetual Market ID or slug equals the path value, or the
            path names a model that does not exist.
components:
  schemas:
    PerpetualMarketsRow:
      properties:
        baseAssetID:
          description: >-
            The unique identifier of the asset the contract tracks. Null, along
            with the other base asset columns, where the contract's ticker
            matches no asset.
          nullable: true
          type: string
        baseAssetName:
          description: The name of the asset the contract tracks.
          nullable: true
          type: string
        baseAssetSerialID:
          description: >-
            The numeric serial identifier of the base asset, used by market data
            services. Join on it to reach the spot markets for the same asset.
          format: int64
          nullable: true
          type: integer
        baseAssetSlug:
          description: The URL slug of the asset the contract tracks.
          nullable: true
          type: string
        baseAssetSymbol:
          description: The ticker symbol of the asset the contract tracks.
          nullable: true
          type: string
        contractType:
          description: >-
            The contract type as reported by the exchange (perpetual or
            tradfi_perpetual).
          nullable: true
          type: string
        exchange:
          description: The exchange's short name as used in the id (binance, bybit, okx).
          nullable: true
          type: string
        exchangeID:
          description: The unique identifier of the exchange.
          nullable: true
          type: string
        exchangeName:
          description: The display name of the exchange.
          nullable: true
          type: string
        exchangeSerialID:
          description: >-
            The numeric serial identifier of the exchange, used by market data
            services.
          format: int64
          nullable: true
          type: integer
        id:
          description: >-
            The series key of the perpetual-markets timeseries model, the
            exchange and contract symbol joined with an underscore
            (binance_BTCUSDT).
          nullable: true
          type: string
        marginType:
          description: The margin type of the contract, linear or inverse.
          nullable: true
          type: string
        name:
          description: >-
            The display name of the market, the exchange name followed by the
            contract symbol.
          nullable: true
          type: string
        quoteAssetSerialID:
          description: >-
            The numeric serial identifier of the quote currency, used by market
            data services.
          format: int64
          nullable: true
          type: integer
        quoteCurrency:
          description: The currency the contract is quoted in.
          nullable: true
          type: string
        settleAssetSerialID:
          description: >-
            The numeric serial identifier of the settlement currency, used by
            market data services. It is what distinguishes an exchange's linear
            and inverse perpetuals on the same pair.
          format: int64
          nullable: true
          type: integer
        settleCurrency:
          description: The currency the contract settles in.
          nullable: true
          type: string
        slug:
          description: >-
            The exchange's slug, shared by every market on that exchange
            (gate-io, crypto-com).
          nullable: true
          type: string
        symbol:
          description: The exchange-native contract symbol.
          nullable: true
          type: string
        symbolNormalized:
          description: The normalized contract symbol, where the exchange provides one.
          nullable: true
          type: string
      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
        on the public access tier need no key.
      in: header
      name: X-Blockworks-API-Key
      type: apiKey

````