HYBRID-CHAINDEVELOPERS
DOCUMENTATIONv2
GET

Markets and execution

List markets

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

PURPOSE + BUSINESS CONTEXT

List canonical market definitions for the DEX, securities, or virtual venue without embedding prices, order books, or user state.

WHEN THIS CALL IS USEFUL

Call this when a market-data, trading, risk, or reconciliation client needs to discover markets and choose a canonical record for a later step so it can understand market, order, trade, position, or collateral state without confusing a read model with execution authority.

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 markets.
  • 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.
  • Use the live OpenAPI schema as the authority for the exact request shape and response model.
  • Resolve the current market status, owner-specific restrictions, risk posture, and applicable trading freeze before relying on this result.

WHAT TO DO NEXT

  • Select one canonical identifier from the response and open its detail operation when the live contract exposes one.
  • Re-read the relevant market and owner-specific state before any later order or position decision, and preserve the current trading freeze.

AGENT GUIDANCE

  • Use markets only for the purpose and lifecycle stage described by this operation; do not treat it as authority for an adjacent action.
  • Use the live OpenAPI schema as the authority for the exact request shape and response model.
  • 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.
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_…

venuequeryOptional

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

RESPONSES

Status and payload examples

200Canonical definitions for the selected venue.Read completed · JSON RESPONSE+
{
  "items": [
    {
      "market_id": "BTC-USD-PERP",
      "native_market_id": "7",
      "native_market_uuid": "4811484f0317409cae3a3c3ca5e9239a",
      "venue": "securities",
      "base_asset": "BTC",
      "quote_asset": "USD",
      "instrument_type": "PERPETUAL",
      "status": "SUSPENDED",
      "operating_mic": "PMXX",
      "segment_mic": "PERP",
      "isin": "BTC00000000001",
      "tick_size": "0.01",
      "step_size": "0.0001",
      "minimum_quantity": "0.0001",
      "maximum_quantity": "100",
      "minimum_leverage": "1",
      "maximum_leverage": "5"
    }
  ],
  "venue": "securities"
}
INTEGRATION DECISION
CALLER ACTION
Accept the returned representation or receipt, then select one canonical identifier from the response and open its detail operation when the live contract exposes one.
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.
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 one collection replaces the separate V1 DEX, MTF/securities, and virtual-market catalog responses; select the business surface with venue.
  • Market fields are normalized but native identifiers are retained for traceability. Quantities, leverage limits, tick sizes, and step sizes are decimal strings so JSON clients cannot lose precision.
  • Catalog presence does not imply order acceptance. A SUSPENDED or cancel-only market remains discoverable, and clients must inspect status before attempting new order flow.
  • Prices, quotes, candles, order books, balances, positions, and watchlist membership are deliberately excluded and use purpose-driven endpoints.
  • Responses use Cache-Control: private, max-age=5. The gateway authorizes the bearer and uses a replay-protected HMAC request to Core; clients never address Core directly.

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/marketsDEX: Get DEX Markets
GET/api/v1/exchange/marketsMTF: Get MTF Markets
GET/api/v1/virtex/marketsVIRTUAL: Get Virtual Markets
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