environment filter is required.
Catalog coverage does not imply that a connected broker supports trading every listed asset class or venue. Check broker capabilities before submitting an intent.
Endpoints
Filtering and pagination
Listings default tostatus=ACTIVE, sort_direction=Asc, and limit=50. Limits are clamped to 1 through 500. Other status values are INACTIVE, EXPIRED, and DELISTED. Asset classes and statuses use uppercase wire values.
Use asset_class, venue, and symbol for an exact instrument lookup. The catalog supports EQUITY and OPTION; other asset classes return 400. Use underlying to narrow options. Text filters are trimmed; blank values are ignored. Symbols and venues retain their own spelling.
expires_after is an inclusive RFC 3339 lower bound, and expires_before is an exclusive upper bound. Instruments without an expiry do not match either bound. A lower bound at or after the upper bound returns 400.
The response contains data and next_cursor. Pass a non-null cursor unchanged with the same filters and sort direction. Stop when it is null. Lowercase asc and desc are also accepted.
Instrument identity
AnInstrumentRecord contains instrument_id, status, instrument, created_at, updated_at, and last_seen_at. The UUID is stable across symbol renames. last_seen_at records the last catalog refresh that confirmed the instrument.
The nested instrument is tagged by asset_class. Its fields depend on that class, such as an equity’s exchange or an option’s strike and expiration. Prices and quantities use decimal strings.
Look up instruments through the listing filters or their platform UUID. An unknown instrument ID returns 404.
An optional instrument on a broker event carries resolved metadata. An absent value means unknown metadata, not an equity assumption. The order’s symbol remains its routing spelling.
Short sale borrow rates
Without dates,GET /v1/instruments/short-rates returns each broker’s latest list. Filter by broker or symbol. Supply start_date, end_date, or both to read history, with inclusive dates on the New York calendar.
rate_per_share is a decimal string in dollars per share per night, not an annual percentage. A null rate means the broker lists the symbol without stating a premium. No row means the symbol is absent from that broker’s list.
Rows sort by symbol, broker, then time. limit defaults to 1000 and is clamped to 1 through 10000. Pass next_cursor unchanged with the same filters until it is null.