Skip to main content
Loading market data…
GET/api/v1/instruments/{symbol}Free tier · 10 req/min

Instrument detail + activity counters (trade/OI/funding).

Resolve one instrument by canonical symbol. The `activity` bag is the fast way to tell whether an instrument is actively reporting — non-zero counts and fresh `last*Ts` values mean the pipeline is healthy.

Path parameters

Segments of the URL path, validated server-side.

NameTypeRequiredDefaultDescription
symbolstringrequired
Canonical symbol (e.g. `BTCUSDT`).

Query parameters

This endpoint takes no query parameters.

Response shape

Always wrapped in the standard envelope. Nullable fields are explicitly marked — treat missing numeric data as a real data-source gap, not as an error.

data payloadtypescript
// Wrapped in the standard envelope:
// {
//   data: /* shape below */,
//   meta?: { total?: number; limit?: number; offset?: number; ... }
// }

{
  id: number;
  canonicalSymbol: string;
  base: string;
  quote: string;
  kind: string;
  expiry: string | null;
  strike: number | null;
  optionType: string | null;
  activity: {
    tradeCount: number;
    openInterestCount: number;
    fundingCount: number;
    lastTradeTs: number | null;
    lastOiTs: number | null;
    lastFundingTs: number | null;
  };
}

Example

Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.

Requestbash
curl -sS "http://localhost:3000/api/v1/instruments/BTCUSDT"
Responsejson
{
  "data": {
    "id": 12,
    "canonicalSymbol": "BTCUSDT",
    "base": "BTC",
    "quote": "USDT",
    "kind": "perp",
    "expiry": null,
    "strike": null,
    "optionType": null,
    "activity": {
      "tradeCount": 1250000,
      "openInterestCount": 48200,
      "fundingCount": 620,
      "lastTradeTs": 1744834810000,
      "lastOiTs": 1744834800000,
      "lastFundingTs": 1744833600000
    }
  }
}

Next

Check the error code reference, or get an API key to try the request against your own account.