Instruments
instruments Channel
Subscribe to real-time updates when the list of available trading instruments changes (new expirations added, instruments expired and removed).
Subscribe
| Parameter | Required | Description |
|---|---|---|
market | No | Base token filter: "BTC", "ETH", or "ARB". If omitted, subscribes to all markets. |
Single market:
{
"type": "subscribe",
"subscriptions": [
{
"channel": "instruments",
"query": {
"market": "BTC"
}
}
]
}All markets:
{
"type": "subscribe",
"subscriptions": [
{
"channel": "instruments",
"query": {}
}
]
}Event: instruments
Emitted when the list of available trading instruments is updated.
{
"kind": "event",
"type": "instruments",
"timestamp_ms": 1777829658433,
"data": {
"updated_at": 1777829658433,
"instruments": [
"BTC_USDC-08MAY26-76000-C",
"BTC_USDC-08MAY26-76000-P",
"BTC_USDC-15MAY26-75000-C",
"BTC_USDC-15MAY26-75000-P",
"BTC_USDC-26JUN26-100000-C",
"BTC_USDC-26JUN26-100000-P"
]
},
"subscription": {
"channel": "instruments",
"query": {
"market": "BTC"
}
}
}| Field | Type | Description |
|---|---|---|
data.updated_at | number | Unix timestamp in milliseconds of when the instrument list was last updated |
data.instruments | string[] | Array of instrument names currently available for trading |
Example: snapshot before vs after an expiry
Options expire at 08:00 UTC on their maturity date. The two events below show the same BTC subscription before and after the 04MAY26 expiry — the expired contract simply disappears from the array (no separate "removed" event).
Before — updated_at: 1777881540000 (2026-05-04T07:59:00Z):
{
"data": {
"updated_at": 1777881540000,
"instruments": [
"BTC_USDC-04MAY26-80500-C",
"BTC_USDC-08MAY26-76000-C",
"BTC_USDC-08MAY26-76000-P",
"BTC_USDC-15MAY26-75000-C",
"BTC_USDC-15MAY26-75000-P",
"BTC_USDC-26JUN26-100000-C",
"BTC_USDC-26JUN26-100000-P"
]
}
}After — updated_at: 1777881605000 (2026-05-04T08:00:05Z):
{
"data": {
"updated_at": 1777881605000,
"instruments": [
"BTC_USDC-08MAY26-76000-C",
"BTC_USDC-08MAY26-76000-P",
"BTC_USDC-15MAY26-75000-C",
"BTC_USDC-15MAY26-75000-P",
"BTC_USDC-26JUN26-100000-C",
"BTC_USDC-26JUN26-100000-P"
]
}
}BTC_USDC-04MAY26-80500-C is gone from the second array — clients detect the removal by diffing against the previous snapshot.
Notes
- Each event is a full snapshot, not a delta. The
instrumentsarray always contains the complete current list of active instruments for the market — there is no separate "added" or "removed" field. - Initial subscription provides a snapshot of all current instruments for the specified market(s)
- Subsequent events are sent only when the instrument list changes — both when new instruments are added and when expired instruments are removed
- To detect removals (e.g., expired contracts), diff the new
instrumentsarray against the previously received one — anything missing was removed - The
instrumentsarray contains options only (perpetuals are not published on this channel) - If no
marketis specified in the query, you'll receive separate events for each market (BTC, ETH, ARB)
Use Cases
- Monitor when new option expirations become available
- Track when instruments expire and are removed
- Keep your trading application's instrument list synchronized with the exchange
- Receive immediate notification when new trading instruments become available
