Nova Markets market data API

Public, read-only market data of the perpetual markets of Nova Markets, in the format of CoinGecko's integration standard for derivatives exchanges. No key, JSON over HTTPS. Every figure is the one the trading page shows for the market (for example HYPE-USD): Mark, 24h Volume, Open Interest and Holding / 1h.

Answers are refreshed every minute. Poll at most once a minute per URL.

GET /coingecko/contracts

Every market, one object each.

curl https://data.nova.markets/coingecko/contracts
Field Meaning
ticker_id The market as the app names it: HYPE-USD, trading page app.nova.markets/trade/nova/<ticker_id>.
base_currency, target_currency The asset tracked and USD. ANTH is Anthropic (traded as ANT in the app).
last_price, index_price, contract_price The oracle price, the trading page's Mark. Trades fill at it, moved by spread and price impact.
base_volume, target_volume Every fill of the last 24 hours, opens and closes, in the base asset and in USD (size times price).
bid, ask The best prices of the order book below. null when a side is at its cap.
high, low The highest and lowest oracle price of the last 24 hours, by the minute.
open_interest, open_interest_usd Open positions, longs plus shorts, in the base asset and in USD at the Mark.
long_open_interest(_usd), short_open_interest(_usd) Each side.
funding_rate, next_funding_rate What a long position pays per hour, as a fraction of its size: borrowing plus funding. Positive: longs pay. Negative: longs are paid. The trading page's Holding / 1h shows the same rate from the position's side, so with the opposite sign (negative when the side pays).
funding_interval_minutes, next_funding_rate_timestamp 60. The fee accrues continuously and is quoted per hour; the timestamp is the next hour (Unix seconds).
product_type, contract_type Perpetual, Vanilla (linear, settled in USDC).
start_timestamp, end_timestamp null: perpetuals do not expire.

GET /coingecko/orderbook

A market's order book, best price first on each side. Nova markets fill against an oracle, so the book is the protocol's fill curve (spread, depth and skew) laid out as levels: walking it to a size gives the price that size fills at. It runs 2% deep on each side and stops where a side reaches its open interest or skew cap.

curl "https://data.nova.markets/coingecko/orderbook?ticker_id=HYPE-USD&depth=100"
Parameter Meaning
ticker_id Required, from /coingecko/contracts.
depth Levels over both sides, 100 by default (50 a side). 0 returns the whole book.

Answer: ticker_id, timestamp (Unix milliseconds), bids and asks as [price, quantity] strings, quantity in the base asset.

Contact

docs.nova.markets · x.com/novadotmarkets · t.me/novadotmarkets