HYBRID-CHAINDEVELOPERS
DOCUMENTATIONv2
GET

Decentralized Trading

Get dex orderbook

/api/v2/markets/{market_id}/order-book
AUTHENTICATIONBearer token · trading:readAUTHORITATIVE OWNERmatching-and-trading-read-model · matching-engineCONTRACT AUTHORITYGenerated Rust OpenAPISTATUSSource ready · production listed

PURPOSE + BUSINESS CONTEXT

Return a bounded, venue-specific aggregation of current bid and ask price levels for one canonical market as an informational snapshot, not an executable quote.

WHEN THIS CALL IS USEFUL

Call this for a bounded view of current market depth before an informational display, liquidity assessment, or separately authorized order decision; refresh it because the snapshot can become stale immediately.

OUTCOME · Discover

What changes

Read-only projection; it grants no mutation, settlement, traffic, or authority change.

WHY IT MATTERS

  • Gives people and agents a contract-backed way to discover dex orderbook.
  • Separates decision-support and reconciliation data from the controls that admit, match, publish, or settle an order.

ISOLATION + AUTHORITY

The authenticated owner, market, order, position, matching, risk, publisher, and settlement boundaries remain distinct. Documentation, contract visibility, and read access grant no execution authority; possession of a write scope still cannot bypass market status, risk, admission, allowlist, suspension, matching, publisher, or settlement gates. Current trading, matching, prediction, ingress, publisher, allowlist, suspension, market-status, and traffic controls remain frozen unless separately approved through their controlling process.

BEFORE YOU CALL

  • Authenticate at the documented boundary: bearer+scope.
  • Supply the required market_id (path) exactly as defined by the live contract.
  • Resolve the current market status, owner-specific restrictions, risk posture, and applicable trading freeze before relying on this result.

WHAT TO DO NEXT

  • Check the returned market, venue, observation time, sequence or freshness metadata, depth, and bid or ask ordering before displaying or analyzing the snapshot.
  • Re-read market status, owner restrictions, and a fresh order book before any later order decision; this projection cannot reserve liquidity or authorize execution.

AGENT GUIDANCE

  • Use dex orderbook only for the purpose and lifecycle stage described by this operation; do not treat it as authority for an adjacent action.
  • Supply the required market_id (path) exactly as defined by the live contract.
  • Distinguish market data, owner-specific restrictions, order admission, matching, fills, positions, collateral, cancellation, settlement, and finality; no one state implies another.
  • Use response links and canonical identifiers instead of constructing internal service URLs or scraping the website.
  • Treat depth as an observed aggregation, not guaranteed executable liquidity; preserve venue, market, ordering, precision, and freshness when displaying or analyzing levels.
MARKET-SCOPED AVAILABILITY

Production OpenAPI presence proves that the public route is deployed; it does not unsuspend a market, admit order traffic, or select a matching engine. Catalog and read access can remain available while order entry is disabled. Matching authority, collateral reservation, settlement, and market lifecycle are independently fail-closed behind this stable contract.

MACHINE CONTRACT

The exact deployed parameters, schemas, responses, security requirements, and Hybrid-Chain agent metadata are authoritative at this operation's production OpenAPI JSON Pointer. The readable tables below add integration guidance; the deployed OpenAPI controls if guidance and the machine contract ever differ.

Open the authoritative production contract

EXTENDED INTEGRATION GUIDANCE

Readable request and response reference

Examples illustrate integration intent; the referenced OpenAPI operation and component schemas define the executable shape.

PARAMETERS

Headers, path, query, and body

NAMELOCATIONPRESENCETYPE / RULES / PURPOSE
AuthorizationheaderRequired

Bearer tokenCredential containing the trading:read scope.EXAMPLEBearer hc_live_…

market_idpathRequired

uppercase hyphen-separated identifier · 3–64 charactersCanonical base, quote, and optional instrument identifier. Lowercase, underscore, repeated-hyphen, and slash aliases are rejected.EXAMPLEBTC-USD-PERP

venuequeryOptional

dex | securities | virtualAuthoritative venue catalog. Defaults to dex.EXAMPLEdex

depthqueryOptional

integer · 1–200Maximum aggregated price levels returned per side; defaults to 50.EXAMPLE50

RESPONSES

Status and payload examples

200Normalized venue-scoped order-book snapshot.Read completed · JSON RESPONSE+
{
  "market_id": "BTC-USD-PERP",
  "venue": "securities",
  "sequence": "184221",
  "snapshot_at": "2026-08-14T00:00:00Z",
  "depth": 50,
  "bids": [
    {
      "price": "42000.11",
      "quantity": "1.25"
    }
  ],
  "asks": [
    {
      "price": "42000.12",
      "quantity": "0.75"
    }
  ],
  "truncated": false
}
INTEGRATION DECISION
CALLER ACTION
Accept the returned representation or receipt, then check the returned market, venue, observation time, sequence or freshness metadata, depth, and bid or ask ordering before displaying or analyzing the snapshot.
RETRY SAFETY
Repeat only when the integration needs a fresher authoritative projection.
STATE RECONCILIATION
Use returned identifiers and versions as the comparison point for later reads. Re-read market status, owner-scoped order or position state, Core collateral reservation, and settlement receipt; never treat shadow NXG evidence as authority.
401Authorization: Bearer is required, or the supplied credential is invalid.Authentication required · JSON RESPONSE+
{
  "code": "missing_credentials",
  "message": "Authorization: Bearer is required, or the supplied credential is invalid."
}
INTEGRATION DECISIONmissing_credentials
CALLER ACTION
Discard the rejected credential, complete the documented authentication or reassertion flow, and rebuild any request signature with fresh timestamps and nonces.
RETRY SAFETY
Retry only with a newly valid credential and fresh replay-protection values. Do not replay an expired signature.
STATE RECONCILIATION
Authentication failed before an authoritative read was returned for market-scoped catalog, order, trade, position, collateral, and settlement projections while Python remains authoritative.
ESCALATE WHEN
Escalate any ambiguous order or settlement outcome while preserving suspension and Python authority; never enable ingress, publishing, allowlists, markets, or traffic as recovery.
403The credential lacks trading:read authority.Authority or policy denied · JSON RESPONSE+
{
  "code": "insufficient_scope",
  "message": "The credential lacks trading:read authority."
}
INTEGRATION DECISIONinsufficient_scope
CALLER ACTION
Verify the exact scope, tenant or workspace membership, owner boundary, step-up purpose, feature policy, and resource eligibility. Never broaden authority automatically.
RETRY SAFETY
Do not retry until the missing authority or policy condition has been deliberately resolved with least privilege.
STATE RECONCILIATION
Confirm the caller and resource resolve to the same authority boundary for market-scoped catalog, order, trade, position, collateral, and settlement projections while Python remains authoritative.
ESCALATE WHEN
Escalate any ambiguous order or settlement outcome while preserving suspension and Python authority; never enable ingress, publishing, allowlists, markets, or traffic as recovery.
404The requested canonical market does not exist on the selected venue.Resource not visible · JSON RESPONSE+
{
  "code": "market_not_found",
  "message": "The requested canonical market does not exist on the selected venue."
}
INTEGRATION DECISIONmarket_not_found
CALLER ACTION
Verify the canonical identifier and authenticated owner boundary. A 404 may intentionally conceal a resource outside the caller's authority.
RETRY SAFETY
Do not retry the unchanged identifier repeatedly. Refresh the relevant collection or lookup before choosing another identifier.
STATE RECONCILIATION
Re-read market status, owner-scoped order or position state, Core collateral reservation, and settlement receipt; never treat shadow NXG evidence as authority.
ESCALATE WHEN
Escalate any ambiguous order or settlement outcome while preserving suspension and Python authority; never enable ingress, publishing, allowlists, markets, or traffic as recovery.
422The path identifier or venue value is not canonical.Request must change · JSON RESPONSE+
{
  "code": "invalid_market_id",
  "message": "The path identifier or venue value is not canonical."
}
INTEGRATION DECISIONinvalid_market_id
CALLER ACTION
Rebuild the request from the live OpenAPI operation and correct the rejected method, media type, header, parameter, or body field.
RETRY SAFETY
Do not retry the same invalid request. A corrected read may be sent as a new attempt.
STATE RECONCILIATION
Compare the submitted values with the documented constraints before another call. Re-read market status, owner-scoped order or position state, Core collateral reservation, and settlement receipt; never treat shadow NXG evidence as authority.
ESCALATE WHEN
Escalate any ambiguous order or settlement outcome while preserving suspension and Python authority; never enable ingress, publishing, allowlists, markets, or traffic as recovery.
503The authoritative venue catalog is unavailable or has not been configured.Dependency unavailable or outcome uncertain · JSON RESPONSE+
{
  "code": "market_data_unavailable",
  "message": "The authoritative venue catalog is unavailable or has not been configured."
}
INTEGRATION DECISIONmarket_data_unavailable
CALLER ACTION
Treat the failure as transient and preserve the last known good representation without presenting it as fresh.
RETRY SAFETY
Retry with bounded exponential backoff and jitter; stop after the integration's failure budget is exhausted.
STATE RECONCILIATION
Re-read market status, owner-scoped order or position state, Core collateral reservation, and settlement receipt; never treat shadow NXG evidence as authority.
ESCALATE WHEN
Escalate any ambiguous order or settlement outcome while preserving suspension and Python authority; never enable ingress, publishing, allowlists, markets, or traffic as recovery.

OPERATIONAL NOTES

Security and lifecycle guarantees

  • This single route replaces the V1 DEX, MTF/securities, and virtual order-book formats; choose the authoritative source with venue.
  • Core returns aggregated price levels, with bids descending and asks ascending before depth is applied.
  • The public projection includes only price and quantity decimal strings. Composite matching keys and trader or order identifiers are never exposed.
  • sequence and snapshot_at provide freshness evidence when supplied by the matching authority; snapshot_at is recorded at normalization time otherwise.
  • Responses use Cache-Control: no-store. A suspended market remains readable, but SUSPENDED rejects new order ingress.

UPGRADING FROM V1

Legacy calls replaced by this operation

If you maintain an older integration, use this map to find the V2 replacement. Do not translate the old request field-for-field: rebuild it from the V2 parameters and schemas above because identity, authorization, replay protection, and response semantics may have changed.

GET/api/v1/dex/orderbookDEX: Get DEX Orderbook
GET/api/v1/exchange/orderbookMTF: Get MTF Orderbook
GET/api/v1/virtex/orderbookVIRTUAL: Get Virtual Orderbook
DOCUMENTATION STATUS

This route is implemented in canonical gateway source and appears in the production OpenAPI snapshot observed 2026-09-11T06:35:11.572Z. Authentication, tenant, feature, venue, and market policy still apply.

Verify the exact production OpenAPI operation Return to the V2 directory