Skip to content

Get Contract Specs

Returns contract specifications for all open perpetual markets. Lighter weight than Get Contracts — contains only static contract metadata with no live price data.

This is a GET endpoint with no request body and no authentication required.

Endpoint

GET /v1/info/contract_specs

No query parameters. No authentication required.

Response

Returns a JSON array sorted alphabetically by ticker_id.

[
  {
    "ticker_id": "BTC-USDT",
    "contract_type": "Vanilla",
    "contract_price_currency": "USDT"
  },
  {
    "ticker_id": "ETH-USDT",
    "contract_type": "Vanilla",
    "contract_price_currency": "USDT"
  }
]

Response Fields

FieldTypeDescription
ticker_idstringMarket identifier in BASE-SETTLE format (e.g., "BTC-USDT")
contract_typestringAlways "Vanilla"
contract_price_currencystringSettlement asset for the contract (e.g., "USDT")

Response Headers

HeaderValue
Cache-Controlpublic, max-age=5

Implementation Notes

  • Only open (tradeable) markets are included in the response.
  • The ticker_id format is BASE-SETTLE (e.g., "BTC-USDT"). For most markets this matches the standard market symbol.

Rate Limiting

Per-IP rate limits apply. Requests that exceed the limit return HTTP 429 with a Retry-After: 5 header.

Error Response

{ "error": "rate limit exceeded" }
HTTP StatusDescription
429Rate limit exceeded — wait before retrying
503Service temporarily unavailable
500Internal error

Related