ORCHESTRATION API

Orchestration API

Get quotes for moving and converting between M0 extensions and other stablecoins.

This API provides quotes for moving and converting between M0 extensions and other stablecoins

Base URL

https://gateway.m0.xyz/v1/orchestration

Authentication

The M0 Orchestration API requires authentication via API keys to access its endpoint. This ensures that only authorized users can interact with the API and access its data.

Contact us to obtain an API key.

Using API Keys

To authenticate your requests, include the API key in the Authentication header of your HTTP requests. For example post with curl:

curl -i \
  --request GET \
  --header "x-api-key: YOUR_API_KEY" \
  https://gateway.m0.xyz/v1/orchestration/supported-assets

API keys should be kept secret and not exposed in public repositories or client-side code. If you believe your API key has been compromised, please contact us immediately to revoke the key and issue a new one

Usage Flow

  1. Check supported assets — Call GET /supported-assets to discover which tokens and chains are available for routing.
  2. Request a quote — Call POST /quote with your desired route, amount, and sender address. The response includes ready-to-sign transaction payloads.
  3. Sign and submit — Sign each payload in order using your wallet and submit the transactions on-chain. Wait for confirmation before sending the next payload.
  4. Track your order — For routes through the limit-order provider, monitor progress on the M0 Explorer, or use the GET /orders/{originChain}/{orderId} endpoint to check order status programmatically. The orderId is returned as part of the limit-order quote/execution flow. You can also use GET /orders to list existing orders and find the relevant orderId. For all other providers, a transaction hash is returned directly when submitting the payload on-chain.

Endpoints

  • GET /supported-assets
  • POST /quote
  • GET /orders
  • GET /orders/{originChain}/{orderId}
  • POST /orders/{originChain}/{orderId}/cancel
  • GET /topology/routes
  • GET /topology/stats

For detailed schema definitions and interactive testing, see the API Reference.

Errors

All API error responses share the same body shape:

{
  "code": "BadQuoteRequest",
  "message": "Human-readable description of what went wrong",
  "requestId": "abc-123"
}
  • code — stable machine-readable identifier for the failure mode. Branch on it rather than on the HTTP status, since multiple errors may map to the same status over time.
  • message — human-readable description, safe to surface in a UI.
  • requestId — per-request correlation ID matching the server logs. Include it when filing support tickets.
Copyright © M0 Foundation 2026