CryptoCompare Spot API

Spot market data including latest tick, historical OHLCV, trades, order book L1, and instrument metadata.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

cryptocompare-spot-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CoinDesk Data API (CCData) Asset Spot API
  description: 'The CoinDesk Data API (formerly CCData / CryptoCompare data-api) is the modern, institutional-grade replacement for the legacy min-api. It exposes a consolidated surface across Spot markets (latest tick, instrument metadata, historical OHLCV, trades, order book L1), CoinDesk Indices and Reference Rates (CADLI, CCIX, CCIXBE), Futures and Options derivatives, Asset metadata and overview, On-chain data, News articles, and Polling / On-demand exports. Authentication uses an API key supplied either as the api_key query parameter or as `Authorization: Apikey {apiKey}`. The base URL is https://data-api.cryptocompare.com.'
  version: '1.0'
  contact:
    name: CoinDesk Data Support
    url: https://developers.coindesk.com/support
    email: data@cryptocompare.com
  termsOfService: https://data.coindesk.com/terms
  license:
    name: CoinDesk Data API Terms
    url: https://data.coindesk.com/terms
servers:
- url: https://data-api.cryptocompare.com
  description: Production Server
security:
- apiKeyQuery: []
- apiKeyHeader: []
tags:
- name: Spot
  description: Spot market data including latest tick, historical OHLCV, trades, order book L1, and instrument metadata.
paths:
  /spot/v1/latest/tick:
    get:
      operationId: getSpotLatestTick
      summary: Get Spot Latest Tick
      description: Returns the latest tick (trade or top-of-book update) for one or more spot instruments on a given market.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentsParam'
      - $ref: '#/components/parameters/GroupsParam'
      responses:
        '200':
          description: Latest tick envelope per instrument.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpotTickResponse'
  /spot/v2/markets:
    get:
      operationId: getSpotMarketsList
      summary: List Spot Markets
      description: Returns the list of integrated spot exchanges and their status.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      responses:
        '200':
          description: Markets list envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketsListResponse'
  /spot/v1/markets/instruments:
    get:
      operationId: getSpotInstrumentMetadata
      summary: Get Spot Instrument Metadata
      description: Returns reference metadata for spot instruments on a given market including base/quote symbols, tick sizes, status, and mapping.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentsParam'
      responses:
        '200':
          description: Instrument metadata envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstrumentMetadataResponse'
  /spot/v1/historical/days:
    get:
      operationId: getSpotHistoricalDaily
      summary: Get Spot Historical Daily OHLCV
      description: Returns daily OHLCV candles for a single spot instrument on a given market, ordered ascending. Up to 2000 candles per call.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentParam'
      - $ref: '#/components/parameters/LimitParam'
      - $ref: '#/components/parameters/ToTsParam'
      - $ref: '#/components/parameters/AggregateParam'
      - $ref: '#/components/parameters/FillParam'
      - $ref: '#/components/parameters/ApplyMappingParam'
      responses:
        '200':
          description: Historical daily OHLCV envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalOHLCVResponse'
  /spot/v1/historical/hours:
    get:
      operationId: getSpotHistoricalHourly
      summary: Get Spot Historical Hourly OHLCV
      description: Returns hourly OHLCV candles for a single spot instrument.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentParam'
      - $ref: '#/components/parameters/LimitParam'
      - $ref: '#/components/parameters/ToTsParam'
      - $ref: '#/components/parameters/AggregateParam'
      responses:
        '200':
          description: Historical hourly OHLCV envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalOHLCVResponse'
  /spot/v1/historical/minutes:
    get:
      operationId: getSpotHistoricalMinute
      summary: Get Spot Historical Minute OHLCV
      description: Returns minute OHLCV candles for a single spot instrument.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentParam'
      - $ref: '#/components/parameters/LimitParam'
      - $ref: '#/components/parameters/ToTsParam'
      - $ref: '#/components/parameters/AggregateParam'
      responses:
        '200':
          description: Historical minute OHLCV envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HistoricalOHLCVResponse'
  /spot/v1/historical/trades:
    get:
      operationId: getSpotHistoricalTrades
      summary: Get Spot Historical Trades
      description: Returns raw historical trade prints for a single spot instrument.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentParam'
      - $ref: '#/components/parameters/LimitParam'
      - $ref: '#/components/parameters/ToTsParam'
      responses:
        '200':
          description: Trades envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradesResponse'
  /spot/v1/latest/orderbook/l1/top:
    get:
      operationId: getSpotOrderbookL1Top
      summary: Get Spot Order Book L1 Top
      description: Returns the top of the order book (best bid and best ask) for one or more spot instruments. Updated continuously.
      tags:
      - Spot
      parameters:
      - $ref: '#/components/parameters/MarketParam'
      - $ref: '#/components/parameters/InstrumentsParam'
      responses:
        '200':
          description: L1 top of book envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderbookL1TopResponse'
components:
  parameters:
    ApplyMappingParam:
      name: apply_mapping
      in: query
      description: Apply asset/instrument mapping for renames.
      schema:
        type: boolean
        default: true
    MarketParam:
      name: market
      in: query
      required: true
      description: Spot or derivatives market (e.g. coinbase, kraken, binance, bitstamp, ccix).
      schema:
        type: string
    InstrumentsParam:
      name: instruments
      in: query
      required: true
      description: Comma-separated instrument identifiers (e.g. BTC-USD,ETH-USD).
      schema:
        type: string
    GroupsParam:
      name: groups
      in: query
      description: Comma-separated tick groups to return (VALUE, CURRENT_HOUR, CURRENT_DAY, MOVING_24_HOUR, LIFETIME).
      schema:
        type: string
    FillParam:
      name: fill
      in: query
      description: Fill empty periods with zero-volume candles.
      schema:
        type: boolean
        default: true
    InstrumentParam:
      name: instrument
      in: query
      required: true
      description: Single instrument identifier (e.g. BTC-USD).
      schema:
        type: string
    ToTsParam:
      name: to_ts
      in: query
      description: Upper bound timestamp in seconds.
      schema:
        type: integer
        format: int64
    LimitParam:
      name: limit
      in: query
      description: Number of data points to return.
      schema:
        type: integer
        default: 30
        maximum: 2000
    AggregateParam:
      name: aggregate
      in: query
      description: Time-period aggregation factor.
      schema:
        type: integer
        default: 1
  schemas:
    TradesResponse:
      type: object
      properties:
        Data:
          type: array
          items:
            type: object
            properties:
              TYPE:
                type: string
              MARKET:
                type: string
              INSTRUMENT:
                type: string
              MAPPED_INSTRUMENT:
                type: string
              SIDE:
                type: string
                enum:
                - BUY
                - SELL
                - UNKNOWN
              ID:
                type: string
              TIMESTAMP:
                type: integer
                format: int64
              TIMESTAMP_NS:
                type: integer
              RECEIVED_TIMESTAMP:
                type: integer
                format: int64
              QUANTITY:
                type: number
              PRICE:
                type: number
              QUOTE_QUANTITY:
                type: number
              CCSEQ:
                type: integer
                format: int64
    OrderbookL1TopResponse:
      type: object
      properties:
        Data:
          type: object
          additionalProperties:
            type: object
            properties:
              TYPE:
                type: string
              MARKET:
                type: string
              INSTRUMENT:
                type: string
              BEST_BID:
                type: number
              BEST_BID_QUANTITY:
                type: number
              BEST_ASK:
                type: number
              BEST_ASK_QUANTITY:
                type: number
              BEST_BID_LAST_UPDATE_TS:
                type: integer
                format: int64
              BEST_ASK_LAST_UPDATE_TS:
                type: integer
                format: int64
    MarketsListResponse:
      type: object
      properties:
        Data:
          type: object
          additionalProperties:
            type: object
            properties:
              TYPE:
                type: string
              EXCHANGE_STATUS:
                type: string
              MAPPED_INSTRUMENTS_TOTAL:
                type: integer
              UNMAPPED_INSTRUMENTS_TOTAL:
                type: integer
              INSTRUMENT_STATUS:
                type: object
              TOTAL_TRADES_SPOT:
                type: integer
              HAS_ORDERBOOK_L2_MINUTE_SNAPSHOTS_ENABLED:
                type: boolean
    HistoricalOHLCVResponse:
      type: object
      properties:
        Data:
          type: array
          items:
            $ref: '#/components/schemas/HistoricalOHLCVRow'
        Err:
          type: object
    SpotTick:
      type: object
      properties:
        TYPE:
          type: string
        MARKET:
          type: string
        INSTRUMENT:
          type: string
        CCSEQ:
          type: integer
          format: int64
        PRICE:
          type: number
        PRICE_LAST_UPDATE_TS:
          type: integer
          format: int64
        VOLUME:
          type: number
        QUOTE_VOLUME:
          type: number
        VOLUME_TOP_TIER:
          type: number
        QUOTE_VOLUME_TOP_TIER:
          type: number
        CURRENT_HOUR_VOLUME:
          type: number
        CURRENT_HOUR_QUOTE_VOLUME:
          type: number
        CURRENT_HOUR_OPEN:
          type: number
        CURRENT_HOUR_HIGH:
          type: number
        CURRENT_HOUR_LOW:
          type: number
        CURRENT_HOUR_CHANGE:
          type: number
        CURRENT_HOUR_CHANGE_PERCENTAGE:
          type: number
        CURRENT_DAY_OPEN:
          type: number
        CURRENT_DAY_HIGH:
          type: number
        CURRENT_DAY_LOW:
          type: number
        CURRENT_DAY_CHANGE:
          type: number
        CURRENT_DAY_CHANGE_PERCENTAGE:
          type: number
        MOVING_24_HOUR_VOLUME:
          type: number
        MOVING_24_HOUR_QUOTE_VOLUME:
          type: number
        MOVING_24_HOUR_OPEN:
          type: number
        MOVING_24_HOUR_HIGH:
          type: number
        MOVING_24_HOUR_LOW:
          type: number
        MOVING_24_HOUR_CHANGE:
          type: number
        MOVING_24_HOUR_CHANGE_PERCENTAGE:
          type: number
        LIFETIME_FIRST_TRADE_TS:
          type: integer
          format: int64
        LIFETIME_HIGH:
          type: number
        LIFETIME_LOW:
          type: number
    SpotTickResponse:
      type: object
      properties:
        Data:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SpotTick'
        Err:
          type: object
    InstrumentMetadataResponse:
      type: object
      properties:
        Data:
          type: object
          additionalProperties:
            type: object
            properties:
              METADATA_VERSION:
                type: integer
              INSTRUMENT_STATUS:
                type: string
              INSTRUMENT:
                type: string
              HISTO_SHARD:
                type: string
              MAPPED_INSTRUMENT:
                type: string
              INSTRUMENT_MAPPING:
                type: object
              HAS_TRADES_SPOT:
                type: boolean
              FIRST_TRADE_SPOT_TIMESTAMP:
                type: integer
                format: int64
              LAST_TRADE_SPOT_TIMESTAMP:
                type: integer
                format: int64
              TOTAL_TRADES_SPOT:
                type: integer
    HistoricalOHLCVRow:
      type: object
      properties:
        UNIT:
          type: string
          enum:
          - MINUTE
          - HOUR
          - DAY
        TIMESTAMP:
          type: integer
          format: int64
        TYPE:
          type: string
        MARKET:
          type: string
        INSTRUMENT:
          type: string
        MAPPED_INSTRUMENT:
          type: string
        BASE:
          type: string
        QUOTE:
          type: string
        OPEN:
          type: number
        HIGH:
          type: number
        LOW:
          type: number
        CLOSE:
          type: number
        FIRST_TRADE_TIMESTAMP:
          type: integer
          format: int64
        LAST_TRADE_TIMESTAMP:
          type: integer
          format: int64
        FIRST_TRADE_PRICE:
          type: number
        HIGH_TRADE_PRICE:
          type: number
        LOW_TRADE_PRICE:
          type: number
        LAST_TRADE_PRICE:
          type: number
        VOLUME:
          type: number
        QUOTE_VOLUME:
          type: number
        VOLUME_BUY:
          type: number
        QUOTE_VOLUME_BUY:
          type: number
        VOLUME_SELL:
          type: number
        QUOTE_VOLUME_SELL:
          type: number
        TOTAL_TRADES:
          type: integer
        TOTAL_TRADES_BUY:
          type: integer
        TOTAL_TRADES_SELL:
          type: integer
        TOTAL_TRADES_UNKNOWN:
          type: integer
  securitySchemes:
    apiKeyQuery:
      type: apiKey
      name: api_key
      in: query
      description: API key supplied as the api_key query parameter.
    apiKeyHeader:
      type: apiKey
      name: Authorization
      in: header
      description: 'API key supplied as `Authorization: Apikey {apiKey}`.'
externalDocs:
  description: CoinDesk Data API Documentation
  url: https://developers.coindesk.com/documentation/data-api/introduction