Public API Catalog

x402 Read Endpoints

This catalog includes only publicly callable x402 routes under /x402/read/*.

Catalog version: 2026-02-28

API origin: https://api.trader-ralph.com

x402 base URL: https://api.trader-ralph.com/api/x402/read

Supported trading pairs: SOL/USDC, SOL/USDT, USDC/USDT, USDC/PYUSD, USDC/USD1, USDC/USDG, SOL/JITOSOL, SOL/MSOL, SOL/JUPSOL, RAY/USDC, WIF/USDC, JUP/USDC, BONK/USDC, JTO/USDC, PYTH/USDC

How x402 Works

  1. 1. Request an endpoint under /api/x402/read/*.
  2. 2. If payment is missing, you get 402 with payment-required.
  3. 3. Pay using those requirements, then retry with payment-signature.
  4. 4. Successful responses include payment-response.

Request header: payment-signature

Response headers: payment-required, payment-response

Route pricing should always be read from the payment-required header payload.

Example unpaid response body:

{
  "ok": false,
  "error": "payment-required",
  "paymentRequired": {
    "x402Version": 2,
    "accepts": [
      {
        "scheme": "exact",
        "network": "solana-mainnet",
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "amount": "25000",
        "payTo": "MerchantWalletAddress",
        "maxTimeoutSeconds": 60,
        "extra": {
          "route": "market_snapshot",
          "priceUsd": "0.025"
        }
      }
    ],
    "resource": {
      "uri": "/x402/read/market_snapshot",
      "method": "POST"
    }
  }
}
POST /x402/read/market_snapshothttps://api.trader-ralph.com/api/x402/read/market_snapshotpublic-x402-paid

Point-in-time market/account snapshot with valuation context.

Required:

  • walletAddress (string) - Wallet public key to evaluate.

Optional:

  • quoteMint (string) - Quote asset mint used for valuation context.
  • quoteDecimals (number) - Quote asset decimals when quoteMint is custom.

Example request body:

{
  "walletAddress": "YourWalletAddress",
  "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "quoteDecimals": 6
}

Example success response body:

{
  "ok": true,
  "snapshot": {
    "ts": "2026-02-20T19:32:00.000Z",
    "baseMint": "So11111111111111111111111111111111111111112",
    "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "quoteDecimals": 6,
    "baseBalanceAtomic": "1250000000",
    "quoteBalanceAtomic": "42000000",
    "basePriceQuote": "145.23",
    "portfolioValueQuote": "223.54",
    "baseAllocationPct": 81.1
  }
}
POST /x402/read/market_snapshot_v2https://api.trader-ralph.com/api/x402/read/market_snapshot_v2public-x402-paid

Extended snapshot including per-mint balances for tracked assets.

Required:

  • walletAddress (string) - Wallet public key to evaluate.

Optional:

  • quoteMint (string) - Quote asset mint used for valuation context.
  • quoteDecimals (number) - Quote asset decimals when quoteMint is custom.
  • trackedMints (string[]) - Additional mints to include in the balances section.

Example request body:

{
  "walletAddress": "YourWalletAddress",
  "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "trackedMints": [
    "So11111111111111111111111111111111111111112",
    "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
  ]
}

Example success response body:

{
  "ok": true,
  "snapshot": {
    "ts": "2026-02-20T19:32:00.000Z",
    "baseMint": "So11111111111111111111111111111111111111112",
    "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "quoteDecimals": 6,
    "baseBalanceAtomic": "1250000000",
    "quoteBalanceAtomic": "42000000",
    "basePriceQuote": "145.23",
    "portfolioValueQuote": "223.54",
    "baseAllocationPct": 81.1
  },
  "balances": [
    {
      "mint": "So11111111111111111111111111111111111111112",
      "balanceAtomic": "1250000000"
    },
    {
      "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "balanceAtomic": "42000000"
    }
  ]
}
POST /x402/read/market_token_balancehttps://api.trader-ralph.com/api/x402/read/market_token_balancepublic-x402-paid

Token balance lookup for one wallet and one mint.

Required:

  • walletAddress (string) - Wallet public key to inspect.
  • mint (string) - Token mint to query (SOL mint supported).

Optional: none

Example request body:

{
  "walletAddress": "YourWalletAddress",
  "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}

Example success response body:

{
  "ok": true,
  "balance": {
    "walletAddress": "YourWalletAddress",
    "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "balanceAtomic": "42000000",
    "ts": "2026-02-20T19:32:00.000Z"
  }
}
POST /x402/read/market_jupiter_quotehttps://api.trader-ralph.com/api/x402/read/market_jupiter_quotepublic-x402-paid

Single Jupiter quote for exact-in swap sizing across the supported trading universe.

Required:

  • inputMint (string) - Input token mint from supportedTrading.tokens.
  • outputMint (string) - Output token mint from supportedTrading.tokens.
  • amount (string) - Input amount in atomic units.

Optional:

  • slippageBps (number) - Requested slippage in basis points.

Example request body:

{
  "inputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "outputMint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
  "amount": "100000000",
  "slippageBps": 50
}

Example success response body:

{
  "ok": true,
  "quote": {
    "inputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "outputMint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
    "inAmount": "100000000",
    "outAmount": "99964011",
    "priceImpactPct": "0.0003",
    "slippageBps": 50,
    "swapMode": "ExactIn"
  },
  "supportedMints": [
    "So11111111111111111111111111111111111111112",
    "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
    "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
    "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",
    "2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH",
    "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
    "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
    "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v",
    "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
    "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm",
    "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
    "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3"
  ],
  "supportedPairs": [
    "SOL/USDC",
    "SOL/USDT",
    "USDC/USDT",
    "USDC/PYUSD",
    "USDC/USD1",
    "USDC/USDG",
    "SOL/JITOSOL",
    "SOL/MSOL",
    "SOL/JUPSOL",
    "RAY/USDC",
    "WIF/USDC",
    "JUP/USDC",
    "BONK/USDC",
    "JTO/USDC",
    "PYTH/USDC"
  ]
}
POST /x402/read/market_jupiter_quote_batchhttps://api.trader-ralph.com/api/x402/read/market_jupiter_quote_batchpublic-x402-paid

Batch Jupiter quotes (1..20 requests).

Required:

  • requests (Array<{inputMint,outputMint,amount,slippageBps?}>) - Array of quote requests.

Optional: none

Example request body:

{
  "requests": [
    {
      "inputMint": "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
      "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "25000000",
      "slippageBps": 50
    }
  ]
}

Example success response body:

{
  "ok": true,
  "successCount": 1,
  "errorCount": 0,
  "results": [
    {
      "ok": true,
      "index": 0,
      "quote": {
        "inputMint": "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
        "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "inAmount": "25000000",
        "outAmount": "58510231",
        "priceImpactPct": "0.0012",
        "route": "Meteora DLMM -> Orca V2"
      }
    }
  ],
  "supportedMints": [
    "So11111111111111111111111111111111111111112",
    "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
    "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
    "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",
    "2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH",
    "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
    "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
    "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v",
    "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
    "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm",
    "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
    "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3"
  ],
  "supportedPairs": [
    "SOL/USDC",
    "SOL/USDT",
    "USDC/USDT",
    "USDC/PYUSD",
    "USDC/USD1",
    "USDC/USDG",
    "SOL/JITOSOL",
    "SOL/MSOL",
    "SOL/JUPSOL",
    "RAY/USDC",
    "WIF/USDC",
    "JUP/USDC",
    "BONK/USDC",
    "JTO/USDC",
    "PYTH/USDC"
  ]
}
POST /x402/read/market_ohlcvhttps://api.trader-ralph.com/api/x402/read/market_ohlcvpublic-x402-paid

Hourly OHLCV bars for a mint pair.

Required:

  • baseMint (string) - Base asset mint.
  • quoteMint (string) - Quote asset mint.

Optional:

  • lookbackHours (number) - Historical lookback window.
  • limit (number) - Maximum number of bars in response.
  • resolutionMinutes (number) - Currently only 60 is supported.
  • endMs (number) - End timestamp (ms) for the query window.

Example request body:

{
  "baseMint": "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
  "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "lookbackHours": 168,
  "limit": 168,
  "resolutionMinutes": 60
}

Example success response body:

{
  "ok": true,
  "ohlcv": {
    "baseMint": "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
    "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "resolutionMinutes": 60,
    "startMs": 1739990400000,
    "endMs": 1740595200000,
    "limit": 168,
    "lookbackHours": 168,
    "sourcePriorityUsed": [
      "birdeye",
      "dune"
    ],
    "bars": [
      {
        "ts": "2026-02-20T18:00:00.000Z",
        "source": "birdeye",
        "open": 144.1,
        "high": 145,
        "low": 143.8,
        "close": 144.7,
        "volume": 1823400
      }
    ]
  },
  "supportedMints": [
    "So11111111111111111111111111111111111111112",
    "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
    "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
    "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",
    "2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH",
    "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
    "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
    "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v",
    "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
    "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm",
    "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
    "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3"
  ],
  "supportedPairs": [
    "SOL/USDC",
    "SOL/USDT",
    "USDC/USDT",
    "USDC/PYUSD",
    "USDC/USD1",
    "USDC/USDG",
    "SOL/JITOSOL",
    "SOL/MSOL",
    "SOL/JUPSOL",
    "RAY/USDC",
    "WIF/USDC",
    "JUP/USDC",
    "BONK/USDC",
    "JTO/USDC",
    "PYTH/USDC"
  ]
}
POST /x402/read/market_indicatorshttps://api.trader-ralph.com/api/x402/read/market_indicatorspublic-x402-paid

Hourly OHLCV + derived indicators for a mint pair.

Required:

  • baseMint (string) - Base asset mint.
  • quoteMint (string) - Quote asset mint.

Optional:

  • lookbackHours (number) - Historical lookback window.
  • limit (number) - Maximum number of bars in response.
  • resolutionMinutes (number) - Currently only 60 is supported.
  • endMs (number) - End timestamp (ms) for the query window.

Example request body:

{
  "baseMint": "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
  "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "lookbackHours": 168,
  "limit": 168,
  "resolutionMinutes": 60
}

Example success response body:

{
  "ok": true,
  "ohlcv": {
    "baseMint": "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
    "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "resolutionMinutes": 60,
    "startMs": 1739990400000,
    "endMs": 1740595200000,
    "limit": 168,
    "lookbackHours": 168,
    "sourcePriorityUsed": [
      "birdeye",
      "dune"
    ],
    "bars": [
      {
        "ts": "2026-02-20T18:00:00.000Z",
        "source": "birdeye",
        "open": 144.1,
        "high": 145,
        "low": 143.8,
        "close": 144.7,
        "volume": 1823400
      }
    ]
  },
  "indicators": {
    "barCount": 168,
    "latestTs": "2026-02-20T18:00:00.000Z",
    "latestClose": 144.7,
    "sma20": 142.91,
    "ema20": 143.06,
    "rsi14": 56.28,
    "macd": {
      "line": 0.37,
      "signal": 0.29,
      "histogram": 0.08
    },
    "returnsPct": {
      "h1": 0.22,
      "h24": 2.1,
      "h168": 11.4
    }
  },
  "supportedMints": [
    "So11111111111111111111111111111111111111112",
    "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
    "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
    "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",
    "2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH",
    "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
    "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
    "jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v",
    "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
    "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm",
    "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
    "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3"
  ],
  "supportedPairs": [
    "SOL/USDC",
    "SOL/USDT",
    "USDC/USDT",
    "USDC/PYUSD",
    "USDC/USD1",
    "USDC/USDG",
    "SOL/JITOSOL",
    "SOL/MSOL",
    "SOL/JUPSOL",
    "RAY/USDC",
    "WIF/USDC",
    "JUP/USDC",
    "BONK/USDC",
    "JTO/USDC",
    "PYTH/USDC"
  ]
}
POST /x402/read/solana_marks_latesthttps://api.trader-ralph.com/api/x402/read/solana_marks_latestpublic-x402-paid

Latest Loop A mark set from KV hot cache.

Required: none

Optional:

  • commitment ("processed" | "confirmed" | "finalized") - Mark commitment filter (default: confirmed).

Example request body:

{
  "commitment": "confirmed"
}

Example success response body:

{
  "ok": true,
  "commitment": "confirmed",
  "marks": {
    "schemaVersion": "v1",
    "generatedAt": "2026-02-21T20:10:00.000Z",
    "commitment": "confirmed",
    "latestSlot": 321490020,
    "count": 1,
    "marks": [
      {
        "baseMint": "So11111111111111111111111111111111111111112",
        "quoteMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "px": "145.2204",
        "confidence": 0.73,
        "slot": 321490020
      }
    ]
  }
}
POST /x402/read/solana_scores_latesthttps://api.trader-ralph.com/api/x402/read/solana_scores_latestpublic-x402-paid

Latest Loop B score set with optional pair filter.

Required: none

Optional:

  • pairId (string) - Optional pair id filter (for example SOL:USDC).

Example request body:

{
  "pairId": "SOL:USDC"
}

Example success response body:

{
  "ok": true,
  "pairId": "SOL:USDC",
  "scores": {
    "schemaVersion": "v1",
    "generatedAt": "2026-02-21T20:11:00.000Z",
    "minute": "2026-02-21T20:11:00.000Z",
    "count": 1,
    "rows": [
      {
        "pairId": "SOL:USDC",
        "finalScore": 0.91,
        "explain": [
          "momentum:+0.48",
          "confidence:+0.30"
        ]
      }
    ]
  }
}
POST /x402/read/solana_views_tophttps://api.trader-ralph.com/api/x402/read/solana_views_toppublic-x402-paid

Latest Loop B top views (top movers, stress, anomaly).

Required: none

Optional:

  • view ("all" | "top_movers" | "liquidity_stress" | "anomaly_feed") - Optional top-view selector (default: all).

Example request body:

{
  "view": "top_movers"
}

Example success response body:

{
  "ok": true,
  "view": "top_movers",
  "topMovers": {
    "schemaVersion": "v1",
    "generatedAt": "2026-02-21T20:12:00.000Z",
    "minute": "2026-02-21T20:12:00.000Z",
    "freshnessMs": 540,
    "count": 1,
    "movers": [
      {
        "pairId": "SOL:USDC",
        "pctChange": 0.024,
        "avgConfidence": 0.71
      }
    ]
  }
}
POST /x402/read/macro_signalshttps://api.trader-ralph.com/api/x402/read/macro_signalspublic-x402-paid

Top-level macro signals bundle.

Required: none

Optional: none

Example request body:

No request body required.

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-20T19:32:00.000Z",
  "verdict": "BUY",
  "bullishCount": 5,
  "totalCount": 7,
  "signals": {
    "liquidity": {
      "status": "BULLISH",
      "value": 1.18,
      "sparkline": [
        1.05,
        1.09,
        1.15,
        1.18
      ]
    },
    "flowStructure": {
      "status": "BULLISH",
      "btcReturn5": 3.42,
      "qqqReturn5": 1.23
    },
    "macroRegime": {
      "status": "RISK_ON",
      "qqqRoc20": 6.8,
      "xlpRoc20": 1.4
    },
    "technicalTrend": {
      "status": "BULLISH",
      "btcPrice": 58234.2,
      "sma50": 56010.8,
      "sma200": 51120.1,
      "vwap30d": 55890.2,
      "mayerMultiple": 1.14,
      "sparkline": [
        54120,
        55210,
        56600,
        58234
      ]
    },
    "hashRate": {
      "status": "STABLE",
      "change30d": 1.9
    },
    "miningCost": {
      "status": "NEUTRAL"
    },
    "fearGreed": {
      "status": "GREED",
      "value": 66,
      "history": [
        {
          "value": 63,
          "date": "2026-02-18"
        },
        {
          "value": 66,
          "date": "2026-02-19"
        }
      ]
    }
  },
  "meta": {
    "qqqSparkline": [
      488.2,
      491.7,
      493.1,
      495.6
    ]
  }
}
POST /x402/read/macro_fred_indicatorshttps://api.trader-ralph.com/api/x402/read/macro_fred_indicatorspublic-x402-paid

FRED indicator set with optional series filters.

Required: none

Optional:

  • seriesIds (string[]) - Restrict to specific FRED series ids.
  • observationStart (string) - Start date in YYYY-MM-DD format.
  • observationEnd (string) - End date in YYYY-MM-DD format.

Example request body:

{
  "seriesIds": [
    "DGS10",
    "UNRATE"
  ],
  "observationStart": "2024-01-01"
}

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-20T19:32:00.000Z",
  "configured": true,
  "series": [
    {
      "id": "DGS10",
      "name": "DGS10",
      "value": 4.2,
      "previousValue": 4.18,
      "change": 0.02,
      "changePercent": 0.48,
      "date": "2026-02-19",
      "unit": "%"
    }
  ]
}
POST /x402/read/macro_etf_flowshttps://api.trader-ralph.com/api/x402/read/macro_etf_flowspublic-x402-paid

ETF flow analytics with optional ticker filters.

Required: none

Optional:

  • tickers (string[]) - Restrict ETF flow output to selected tickers.

Example request body:

{
  "tickers": [
    "SPY",
    "QQQ"
  ]
}

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-20T19:32:00.000Z",
  "summary": {
    "etfCount": 2,
    "totalVolume": 100934200,
    "totalEstFlow": 489000000,
    "netDirection": "NET INFLOW",
    "inflowCount": 2,
    "outflowCount": 0
  },
  "etfs": [
    {
      "ticker": "SPY",
      "issuer": "State Street",
      "price": 512.24,
      "priceChange": 0.42,
      "volume": 65321000,
      "avgVolume": 70210000,
      "volumeRatio": 0.93,
      "direction": "inflow",
      "estFlow": 3340000000
    }
  ]
}
POST /x402/read/macro_stablecoin_healthhttps://api.trader-ralph.com/api/x402/read/macro_stablecoin_healthpublic-x402-paid

Stablecoin system-health metrics with optional coin filters.

Required: none

Optional:

  • coins (string[]) - Restrict output to selected stablecoin symbols.

Example request body:

{
  "coins": [
    "USDC",
    "USDT"
  ]
}

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-20T19:32:00.000Z",
  "summary": {
    "totalMarketCap": 150456000000,
    "totalVolume24h": 38421000000,
    "coinCount": 2,
    "depeggedCount": 0,
    "healthStatus": "HEALTHY"
  },
  "stablecoins": [
    {
      "id": "usd-coin",
      "symbol": "USDC",
      "name": "USD Coin",
      "price": 1,
      "deviation": 0,
      "pegStatus": "ON PEG",
      "marketCap": 41234567890,
      "volume24h": 5321000000,
      "change24h": 0,
      "change7d": 0,
      "image": null
    }
  ]
}
POST /x402/read/macro_oil_analyticshttps://api.trader-ralph.com/api/x402/read/macro_oil_analyticspublic-x402-paid

Oil and energy macro analytics bundle.

Required: none

Optional: none

Example request body:

No request body required.

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-20T19:32:00.000Z",
  "configured": true,
  "fetchedAt": "2026-02-20T19:32:00.000Z",
  "wtiPrice": {
    "id": "wti-crude",
    "name": "WTI Crude",
    "current": 78.4,
    "previous": 77.9,
    "changePct": 0.6,
    "unit": "USD per barrel",
    "trend": "up",
    "lastUpdated": "2026-02-14"
  },
  "brentPrice": {
    "id": "brent-crude",
    "name": "Brent Crude",
    "current": 82.1,
    "previous": 81.8,
    "changePct": 0.4,
    "unit": "USD per barrel",
    "trend": "stable",
    "lastUpdated": "2026-02-14"
  },
  "usProduction": {
    "id": "us-production",
    "name": "US Production",
    "current": 13.2,
    "previous": 13.1,
    "changePct": 0.8,
    "unit": "million barrels/day",
    "trend": "up",
    "lastUpdated": "2026-02-14"
  },
  "usInventory": {
    "id": "us-inventory",
    "name": "US Inventory",
    "current": 427.5,
    "previous": 430.1,
    "changePct": -0.6,
    "unit": "million barrels",
    "trend": "down",
    "lastUpdated": "2026-02-14"
  }
}
POST /x402/read/perps_funding_surfacehttps://api.trader-ralph.com/api/x402/read/perps_funding_surfacepublic-x402-paid

Cross-venue perps funding surface for selected symbols.

Required: none

Optional:

  • symbols (string[]) - Optional symbol filter (for example BTC, ETH, SOL).
  • venues (("hyperliquid" | "dydx")[]) - Optional venue filter.
  • includeInactive (boolean) - Include delisted/final-settlement markets.

Example request body:

{
  "symbols": [
    "BTC",
    "ETH",
    "SOL"
  ],
  "venues": [
    "hyperliquid",
    "dydx"
  ],
  "includeInactive": false
}

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-27T16:20:00.000Z",
  "symbols": [
    "BTC",
    "ETH",
    "SOL"
  ],
  "venues": [
    "dydx",
    "hyperliquid"
  ],
  "includeInactive": false,
  "count": 6,
  "rows": [
    {
      "symbol": "BTC",
      "spreadBps1h": 0.0217,
      "meanFundingBps1h": 0.1072,
      "maxAbsFundingBps1h": 0.1189,
      "byVenue": [
        {
          "venue": "dydx",
          "market": "BTC-USD",
          "status": "ACTIVE",
          "fundingRate1h": 0.0000119,
          "fundingBps1h": 0.119,
          "openInterestUsd": 27425750.12,
          "volume24hUsd": 104666475.36
        },
        {
          "venue": "hyperliquid",
          "market": "BTC-PERP",
          "status": "ACTIVE",
          "fundingRate1h": 0.0000098,
          "fundingBps1h": 0.098,
          "openInterestUsd": 1393855608.24,
          "volume24hUsd": 2054621458.48
        }
      ]
    }
  ],
  "unavailableVenues": []
}
POST /x402/read/perps_open_interest_surfacehttps://api.trader-ralph.com/api/x402/read/perps_open_interest_surfacepublic-x402-paid

Cross-venue perps open-interest and dominance surface.

Required: none

Optional:

  • symbols (string[]) - Optional symbol filter (for example BTC, ETH, SOL).
  • venues (("hyperliquid" | "dydx")[]) - Optional venue filter.
  • includeInactive (boolean) - Include delisted/final-settlement markets.

Example request body:

{
  "symbols": [
    "BTC",
    "ETH",
    "SOL"
  ],
  "includeInactive": false
}

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-27T16:20:00.000Z",
  "symbols": [
    "BTC",
    "ETH",
    "SOL"
  ],
  "venues": [
    "dydx",
    "hyperliquid"
  ],
  "includeInactive": false,
  "count": 6,
  "rows": [
    {
      "symbol": "BTC",
      "totalOpenInterestUsd": 1421281358.36,
      "leaderVenue": "hyperliquid",
      "leaderSharePct": 98.07,
      "byVenue": [
        {
          "venue": "dydx",
          "market": "BTC-USD",
          "status": "ACTIVE",
          "markPrice": 65747.67,
          "openInterestNative": 417.1607,
          "openInterestUsd": 27425750.12,
          "sharePct": 1.93
        },
        {
          "venue": "hyperliquid",
          "market": "BTC-PERP",
          "status": "ACTIVE",
          "markPrice": 65705,
          "openInterestNative": 21196.49314,
          "openInterestUsd": 1393855608.24,
          "sharePct": 98.07
        }
      ]
    }
  ],
  "unavailableVenues": []
}
POST /x402/read/perps_venue_scorehttps://api.trader-ralph.com/api/x402/read/perps_venue_scorepublic-x402-paid

Venue-level scorecard across selected perps symbols.

Required: none

Optional:

  • symbols (string[]) - Optional symbol filter (for example BTC, ETH, SOL).
  • venues (("hyperliquid" | "dydx")[]) - Optional venue filter.
  • includeInactive (boolean) - Include delisted/final-settlement markets.

Example request body:

{
  "symbols": [
    "BTC",
    "ETH",
    "SOL"
  ],
  "venues": [
    "hyperliquid",
    "dydx"
  ],
  "includeInactive": false
}

Example success response body:

{
  "ok": true,
  "timestamp": "2026-02-27T16:20:00.000Z",
  "symbols": [
    "BTC",
    "ETH",
    "SOL"
  ],
  "venues": [
    "dydx",
    "hyperliquid"
  ],
  "includeInactive": false,
  "recommendedVenue": "hyperliquid",
  "scores": [
    {
      "venue": "hyperliquid",
      "score": 100,
      "symbolsCovered": 3,
      "marketsCount": 3,
      "totalOpenInterestUsd": 2841203150.41,
      "totalVolume24hUsd": 3228901091.73,
      "avgAbsFundingBps1h": 0.0732,
      "components": {
        "oiLog": 21.7669,
        "volumeLog": 21.8953,
        "coverage": 3,
        "fundingPenalty": 0.0732
      }
    },
    {
      "venue": "dydx",
      "score": 0,
      "symbolsCovered": 3,
      "marketsCount": 3,
      "totalOpenInterestUsd": 49641012.2,
      "totalVolume24hUsd": 142322832.15,
      "avgAbsFundingBps1h": 0.0483,
      "components": {
        "oiLog": 17.7205,
        "volumeLog": 18.7734,
        "coverage": 3,
        "fundingPenalty": 0.0483
      }
    }
  ],
  "unavailableVenues": []
}

Notes

  • Catalog and discovery endpoints are public. The listed x402 routes require payment authorization.
  • payment-signature must be a valid on-chain Solana transaction signature that settles the required amount to payTo.
  • Environment policy: dev expects devnet USDC; staging and production expect mainnet USDC.
  • Supported terminal trading universe (tokens and pair presets) is included under supportedTrading.
  • Pricing is dynamic per route config. Read the payment-required header (HTTP 402) as source of truth.
  • Authenticated account and trading routes are intentionally excluded from this catalog.