Skip to main content

Documentation Index

Fetch the complete documentation index at: https://musubinetwork.com/llms.txt

Use this file to discover all available pages before exploring further.

This page covers the technical API details for your development team. For business context, see the preceding guide pages.

Endpoints

MethodEndpointDescription
GET/api/v1/quote-requestsList active anonymized RFQs
GET/api/v1/quote-requests/{intent_id}Get quote request details
POST/api/v1/quote-requests/{intent_id}/quotesSubmit a quote
GET/api/v1/quote-requests/{intent_id}/quotesList your quotes for a request
GET/api/v1/quotesList all your quotes (filterable by status)
GET/api/v1/settlementsList your won settlements
GET/api/v1/settlements/{intent_id}Get settlement details
GET/api/v1/eventsReal-time SSE event stream
GET/api/v1/dashboard/statsQuoting performance and volume stats
All endpoints require JWT authentication (except /health and /auth/token). See Authentication and API Conventions.

Quick Example: Quote to Settlement

1. List Active RFQs

curl -H "Authorization: Bearer $TOKEN" \
  https://your-backend.example.com/api/v1/quote-requests
Response
{
  "data": [
    {
      "intent_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "created_at": "2025-03-15T09:00:00.000Z",
      "expires_at": "2025-03-15T09:05:00.000Z",
      "source_currency": "JPYSC0",
      "target_amount": "100000",
      "target_currency": "USDCx"
    }
  ],
  "meta": { "request_id": "req_a1b2c3d4", "timestamp": "2025-03-15T09:00:01.000Z" },
  "pagination": { "page": 1, "page_size": 20, "total_items": 1, "total_pages": 1 }
}

2. Submit a Quote

curl -X POST \
  "https://your-backend.example.com/api/v1/quote-requests/f47ac10b-58cc-4372-a567-0e02b2c3d479/quotes" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "fx_rate": "112.0",
    "target_amount": "11200000",
    "valid_until": "2025-03-15T09:00:41.000Z"
  }'
201 Created
{
  "data": {
    "quote_id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
    "intent_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "fx_rate": "112.0",
    "target_amount": "11200000",
    "target_amount": "100000",
    "submitted_at": "2025-03-15T09:00:08.000Z",
    "valid_until": "2025-03-15T09:00:41.000Z",
    "status": "PENDING"
  },
  "meta": { "request_id": "req_b2c3d4e5", "timestamp": "2025-03-15T09:00:08.100Z" }
}

3. Check Quote Outcome

Poll GET /api/v1/quotes?status=ACCEPTED or subscribe to SSE events.

4. View Settlement Details

curl -H "Authorization: Bearer $TOKEN" \
  "https://your-backend.example.com/api/v1/settlements/f47ac10b-58cc-4372-a567-0e02b2c3d479"
Response
{
  "data": {
    "intent_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "source_currency": "JPYSC0",
    "target_amount": "100000",
    "target_currency": "USDCx",
    "source_amount_actual": "11200000",
    "fx_rate": "112.0",
    "quote_id": "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
    "mm_quoted_source_amount": "11200000",
    "mm_delivered_target_amount": "100000",
    "transaction_hash": "a3f2c1d9e8b74f6a2c1d9e8b74f6a2c14401",
    "settled_at": "2025-03-15T09:00:15.000Z"
  },
  "meta": { "request_id": "req_c3d4e5f6", "timestamp": "2025-03-15T09:00:16.000Z" }
}

Quote Status Flow

PENDING ──────> ACCEPTED  (you won)

   ├──────> REJECTED  (another MM won)

   └──────> EXPIRED   (valid_until passed)

Real-Time Events (SSE)

Connect to GET /api/v1/events (note: /events, not /orders/events):
const events = new EventSource(
  'https://your-backend.example.com/api/v1/events'
);

events.addEventListener('quote_request_new', (e) => {
  const request = JSON.parse(e.data);
  // Your pricing engine evaluates and submits a quote
});

events.addEventListener('quote_accepted', (e) => {
  const data = JSON.parse(e.data);
  console.log(`Won: ${data.intent_id} at rate ${data.fx_rate}`);
});

events.addEventListener('quote_rejected', (e) => {
  const data = JSON.parse(e.data);
  console.log(`Lost: ${data.intent_id}`);
});

events.addEventListener('settlement_completed', (e) => {
  const settlement = JSON.parse(e.data);
  console.log(`Settled: ${settlement.transaction_hash}`);
});
EventTrigger
quote_request_newNew anonymized RFQ available
quote_request_expiredAn RFQ expired (no longer quotable)
quote_acceptedYour quote was selected
quote_rejectedAnother MM’s quote was selected
settlement_completedA trade you won has settled
heartbeatKeepalive every 30 seconds

Full OpenAPI Specification

For complete request/response schemas, see the auto-generated Market Maker API Reference.