markets-service is the public-facing REST surface for Numo’s orderbook.
Public endpoints
The service exposes these core routes:GET /healthzGET /v1/marketsGET /v1/bookGET /v1/tradesPOST /v1/ordersPOST /v1/orders/cancel
Market discovery
UseGET /v1/markets before you submit anything. The response contains the canonical metadata you need for order entry:
marketasset_addresssub_idcontract_typesettlement_typedisplay_nametick_sizeorder_entry_specwhen a market has a specialized UI contract
Reading the book
GET /v1/book accepts either:
symbol=USDCcNGN-SPOT, orasset_address=0x...&sub_id=1789567201
market_presentationbidsasks
Reading trade history
GET /v1/trades supports:
symbolasset_addresssub_idlimitbefore_trade_id
market_presentationstats_24htradesnext_before_trade_id
stats_24h covers the trailing 24 hours, recomputed from the market’s fills on each request. Its
prices are raw engine values; volume is in the traded unit (cNGN) and quote_volume in the quote
asset (USDC). Every field is omitted when nothing traded in the window.
For the fills on your own orders, with the fee paid and the settling transaction, use the signed
List fills endpoint.
Submitting an order
POST /v1/orders persists a signed order after validating the embedded action payload.
Required fields include:
order_idowner_addresssigner_addresssubaccount_idrecipient_idnoncesideasset_addresssub_iddesired_amountlimit_priceworst_feeexpiryaction_jsonsignature
action_json disagree on owner, signer, subaccount, or nonce.
Cancelling an order
UsePOST /v1/orders/cancel with:
owner_addressnonce

