Asset classes
Caravan's universe is multi-asset. Every tradable instrument carries a security_type, and the order path, settlement, and money mechanics follow from it. Indices are reference-only and never tradable; funds are a separate NAV-priced rail. This guide is the map.
The security_type tag
GET /v1/instruments returns the whole tradable universe in one list, alphabetical by market_id, symbol. Each row's security_type tells you what it is:
security_type | What it is | Order path | Reference |
|---|---|---|---|
equity | a listed share | equity path (/v1/orders) | Market data |
etf | an exchange-traded fund | equity path — same as a share | Market data |
bond | a government / treasury / corporate bond | clean-price (quoted; trading on the roadmap) | Bonds & sukuk |
sukuk | a shariah-compliant fixed-income instrument | clean-price (quoted; trading on the roadmap) | Bonds & sukuk |
Two more surfaces sit alongside the tradable universe:
- Funds — open-ended, NAV-priced, on their own rail (
/v1/funds,/v1/fund-orders). - Indices — reference series only, never tradable (
/v1/indexes).
ETFs ride the equity path. An ETF is ordered exactly like a share — same
/v1/ordersbody, same bands, ticks, whole-share quantities, and T+2 settlement. There is no separate ETF endpoint; thesecurity_typetag is the only difference.
Filtering the universe
/v1/instruments accepts factual filters that narrow the set while keeping it alphabetical:
?shariah=true— screened-compliant instruments only (a user-elected universe filter on a screening-provider tag; descriptive, not advice).?security_type=/?asset_class=— narrow to one class (e.g. just ETFs).
The order is always market_id, symbol. There is no sort-by-merit, no "trending," and no relevance ranking — see Conventions and the neutrality note below.
Equities & ETFs
The familiar path. Whole shares, integer micros, ±20% price band, tick sizes, the Sun–Thu 10:00–14:30 Africa/Cairo session, T+2 settlement. ETFs are tagged security_type=etf but otherwise indistinguishable to the order machinery. See Placing orders and Orders.
Bonds & sukuk
Fixed income quotes a clean price as a percent of par (100000000 micros = 100.000%). Each bond/sukuk has a bond-terms sidecar — coupon rate, frequency, face value, issue and maturity dates, day-count convention — surfaced by /v1/bonds.
The economic price a buyer pays is the dirty consideration:
dirty = clean + accrued
accrued ≈ face_value × (coupon_rate_bps / 10000) × (days_since_last_coupon / day_count_basis)A sukuk is simply security_type=sukuk with shariah_compliant=true — it reuses the same clean/dirty mechanics, not a separate asset class. Settlement follows the instrument type (corporate bond T+0; government bond / bill / equity / ETF T+2).
Quoted, not yet orderable. In this release bonds and sukuk are quoted (clean price, terms, order book, candles) but not yet tradable through
/v1/orders. When the money path opens, an order will carry aclean_price_microslimit and fills will itemizeaccrued_microsand the dirty consideration. Equity and ETF trading is unaffected.
For a step-by-step walkthrough see Learn → Clean & dirty price.
Indices
Indices are benchmarks — a level and a constituent list, nothing more. They never appear in /v1/instruments, are never order-routable, and their constituents are alphabetical. To track an index, hold an index-tracking ETF or the constituents directly.
Funds
Funds are open-ended and NAV-priced at execution — a separate rail from the order book, with their own /v1/fund-orders endpoint, cutoff times, and settlement days.
A note on neutrality
Across every asset class the same rule holds: lists are alphabetical, chronological, or strictly time-recency — never ranked by merit. Coupon, yield, NAV, index weight, and market cap are returned as disclosure, never as a sort key or a "best" surface. This is FRA Decision 332 / R1, enforced by construction: the absence of a score / rank / relevance / sentiment field is the contract. See Conventions.