{
  "openapi": "3.1.0",
  "info": {
    "title": "Lumi Trades API: pay-per-call crypto signals, levels and daily briefs (x402)",
    "version": "0.9.0",
    "contact": {
      "name": "Lumi Trades",
      "url": "https://lumitrades.io",
      "email": "hello@lumitrades.io"
    },
    "description": "Pay-per-call crypto market reads from lumitrades.io for AI agents: per-coin buy/sell signal scores, support/resistance levels, paper-trade ideas, macro backdrop, sentiment, events, a daily market brief and a daily Institutional & Policy Brief, plus free x402 vendor lookups. No API key: pay $0.01-$0.25 per call in XRP or RLUSD or USDC on the XRP Ledger, or USDC on Base via x402.",
    "x-guidance": "Use this API when you need a current technical read or trade-idea context for HBAR, XLM, XRP, ZBCN, AXL, XDC, BTC, ETH, SOL, DOGE, ADA, LINK, SUI. GET /v1/coins (free) lists supported coins; GET /v1/samples (free) previews every paid product, truncated. GET /v1/signal/{coin} gives the indicator-based buy/sell read; GET /v1/levels/{coin} gives support/resistance, a 7-day projection and commentary; GET /v1/slate gives current paper-trade ideas; GET /v1/market gives the BTC and macro backdrop; GET /v1/brief gives today's whole market brief (JSON + markdown); GET /v1/macro/yen gives USD/JPY, Nikkei and a carry-trade risk level; GET /v1/sentiment gives CoinMarketCap Fear & Greed, funding and breadth; GET /v1/events gives sourced upcoming macro/crypto events; GET /v1/trades gives the raw paper-trade history; GET /v1/institutional gives the daily Institutional & Policy Brief (BIS, IMF, US regulators, banks and tokenization firms mapped to XRP, XLM, XDC, QNT, AXL, HBAR, confirmed vs indirect-alignment links). Each paid call is one x402 v2 'exact' payment on the XRP Ledger in XRP (accepts[0]) or RLUSD (accepts[1], issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De) or USDC (accepts[2], issuer rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE) (xrpl:0), or one x402 v2 'exact' payment in USDC on Base (eip155:8453, token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, last accepts entry); unknown coins return 404 before any payment is requested. Full guide: https://api.lumitrades.io/skill.md. Analytics only, not financial advice."
  },
  "servers": [
    {
      "url": "https://api.lumitrades.io"
    }
  ],
  "externalDocs": {
    "description": "Agent guide",
    "url": "https://api.lumitrades.io/skill.md"
  },
  "paths": {
    "/v1/coins": {
      "get": {
        "summary": "List supported coins (free)",
        "security": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/samples": {
      "get": {
        "summary": "Free truncated samples of every paid product (labelled SAMPLE)",
        "security": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Health (free)",
        "security": [],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/trust/vendors": {
      "get": {
        "tags": [
          "trust"
        ],
        "security": [],
        "summary": "x402 seller lookup and vendor observations (free)",
        "description": "With url, domain or payTo (case-insensitive): matches across the full CDP x402 Bazaar catalog (ingested daily; every listing gets a free, unpaid 402-quote check at least daily: valid quote, price and payTo vs the listing, latency, domain age) and Lumi's on-chain-confirmed test-buys. Tiers: 'catalogued, not yet checked', 'quote-verified, low confidence', 'quote-checked: no valid x402 quote at the last check', 'purchase-verified'. No match returns {observed:false, note}; that is not a negative signal. Without parameters: the curated XRPL vendor list (allowlist order, not ranked) plus catalog counts. Observations, not ratings.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Resource URL you are about to pay",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "description": "Seller host or registrable domain",
            "schema": {
              "type": "string",
              "maxLength": 253
            }
          },
          {
            "name": "payTo",
            "in": "query",
            "required": false,
            "description": "payTo address from the seller's 402 quote (case-insensitive)",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/trust/catalog": {
      "get": {
        "tags": [
          "trust"
        ],
        "security": [],
        "summary": "Browse the ingested x402 catalog (free)",
        "parameters": [
          {
            "name": "after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "popular",
            "in": "query",
            "required": false,
            "description": "1 = most-used Bazaar listings first",
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            }
          },
          {
            "name": "max_usd",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/trust/vendors/{id}": {
      "get": {
        "tags": [
          "trust"
        ],
        "security": [],
        "summary": "One vendor's observations and evidence (free)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9-]{1,64}$"
            },
            "example": "scalpstream"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Unknown vendor"
          }
        }
      }
    },
    "/v1/trust/methodology": {
      "get": {
        "tags": [
          "trust"
        ],
        "security": [],
        "summary": "Methodology, report format and right to reply (free)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/reports": {
      "post": {
        "tags": [
          "trust"
        ],
        "summary": "Report a paid call to a listed vendor",
        "security": [],
        "description": "Counts only when verified: the payment must be validated on-ledger (sent by `reporter` to a listed pay-to address, within 7 days) and `signature` must sign `lumi-report:<network>:<tx_hash>` with the payer's key. Unverified submissions are stored privately and never shown. 5/min and 20/day per IP.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "vendor_id": {
                    "type": "string"
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "xrpl:0",
                      "eip155:8453"
                    ],
                    "default": "xrpl:0"
                  },
                  "tx_hash": {
                    "type": "string"
                  },
                  "reporter": {
                    "type": "string"
                  },
                  "signature": {
                    "type": "string"
                  },
                  "outcome": {
                    "type": "string",
                    "enum": [
                      "delivered",
                      "no_data",
                      "empty_result",
                      "error_status",
                      "timeout",
                      "wrong_data",
                      "other"
                    ]
                  },
                  "http_status": {
                    "type": "integer"
                  },
                  "response_excerpt": {
                    "type": "string",
                    "maxLength": 4000
                  }
                },
                "required": [
                  "vendor_id",
                  "tx_hash",
                  "reporter",
                  "outcome",
                  "signature"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Verified and recorded"
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Unknown vendor"
          },
          "409": {
            "description": "A verified report for this tx exists"
          },
          "422": {
            "description": "Not verified (stored privately, not shown)"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Ledger unreachable; nothing stored"
          }
        }
      }
    },
    "/v1/tips": {
      "post": {
        "tags": [
          "trust"
        ],
        "summary": "Private tip to Lumi",
        "security": [],
        "description": "Stored privately. Never shown, published, or returned by any endpoint. 3/min and 10/day per IP.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 1000
                  },
                  "coins": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 10
                  },
                  "source_urls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uri"
                    },
                    "maxItems": 5
                  }
                },
                "required": [
                  "text"
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Received"
          },
          "400": {
            "description": "Invalid input"
          },
          "429": {
            "description": "Rate limited"
          }
        }
      }
    },
    "/v1/trust/replies": {
      "post": {
        "tags": [
          "trust"
        ],
        "summary": "Vendor right to reply",
        "security": [],
        "description": "Sign `lumi-reply:<vendor_id>:<sha256 hex of text>` with the key of a pay-to address listed for the vendor (XRPL: master key or RegularKey, include public_key; Base: EIP-191). Verified replies are shown with the vendor entry. Or email hello@lumitrades.io.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "vendor_id": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 1000
                  },
                  "network": {
                    "type": "string",
                    "enum": [
                      "xrpl:0",
                      "eip155:8453"
                    ]
                  },
                  "address": {
                    "type": "string"
                  },
                  "public_key": {
                    "type": "string"
                  },
                  "signature": {
                    "type": "string"
                  }
                },
                "required": [
                  "vendor_id",
                  "text",
                  "address",
                  "signature"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Verified and shown"
          },
          "400": {
            "description": "Invalid input"
          },
          "404": {
            "description": "Unknown vendor"
          },
          "422": {
            "description": "Signature or address not verified (not stored)"
          },
          "429": {
            "description": "Rate limited"
          }
        }
      }
    },
    "/v1/trust/observations": {
      "post": {
        "tags": [
          "trust"
        ],
        "summary": "Owner only: record a Lumi test-buy (ledger-checked)",
        "security": [
          {
            "bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Duplicate tx"
          },
          "201": {
            "description": "Recorded"
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Ledger check failed"
          }
        }
      }
    },
    "/v1/signal/{coin}": {
      "get": {
        "operationId": "signal",
        "summary": "Lumi coin signal (buy/sell read)",
        "description": "Mechanical buy/sell read for one coin: overall label + score, per-timeframe (1h/4h/1d) labels and an indicator summary (RSI, MACD, EMA stack, Bollinger, StochRSI, volume).",
        "parameters": [
          {
            "name": "coin",
            "in": "path",
            "required": true,
            "description": "Ticker or CoinGecko id (case-insensitive)",
            "schema": {
              "type": "string",
              "enum": [
                "HBAR",
                "XLM",
                "XRP",
                "ZBCN",
                "AXL",
                "XDC",
                "BTC",
                "ETH",
                "SOL",
                "DOGE",
                "ADA",
                "LINK",
                "SUI"
              ]
            },
            "example": "xrp",
            "examples": {
              "xrp": {
                "value": "xrp"
              },
              "btc": {
                "value": "btc"
              }
            }
          }
        ],
        "x-example-url": "https://api.lumitrades.io/v1/signal/xrp",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.005"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "5000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "10000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "400": {
            "description": "Path template not filled in (a literal {coin} or {id}); the body gives an example URL (never charged)."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/levels/{coin}": {
      "get": {
        "operationId": "levels",
        "summary": "Lumi support/resistance levels + 7-day projection",
        "description": "Lumi's support/resistance levels, bias, 7-day bull/base/bear projection, commentary, catalysts and cited sources for one coin.",
        "parameters": [
          {
            "name": "coin",
            "in": "path",
            "required": true,
            "description": "Ticker or CoinGecko id (case-insensitive)",
            "schema": {
              "type": "string",
              "enum": [
                "HBAR",
                "XLM",
                "XRP",
                "ZBCN",
                "AXL",
                "XDC",
                "BTC",
                "ETH",
                "SOL",
                "DOGE",
                "ADA",
                "LINK",
                "SUI"
              ]
            },
            "example": "xrp",
            "examples": {
              "xrp": {
                "value": "xrp"
              },
              "btc": {
                "value": "btc"
              }
            }
          }
        ],
        "x-example-url": "https://api.lumitrades.io/v1/levels/xrp",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.005"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "5000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "10000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "400": {
            "description": "Path template not filled in (a literal {coin} or {id}); the body gives an example URL (never charged)."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/slate": {
      "get": {
        "operationId": "slate",
        "summary": "Lumi paper-trade slate (current ideas)",
        "description": "Current paper-trade ideas: direction, entry/entry zone, stop, targets, leverage, conviction, status, plus 'no setup' notes.",
        "parameters": [],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.01"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "10000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "20000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/market": {
      "get": {
        "operationId": "market",
        "summary": "Lumi BTC + macro market backdrop",
        "description": "Market backdrop: BTC levels/projection/signal, macro (yen/USDJPY note, total cap, dominance, fear & greed, BTC perp funding/OI) and breadth across Lumi's 13 coins.",
        "parameters": [],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.01"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "10000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "20000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/brief": {
      "get": {
        "operationId": "brief",
        "summary": "Lumi daily crypto market brief",
        "description": "Today's market brief, the same read as Lumi's newsletter and Shorts: BTC price/levels/signal, CoinMarketCap Fear & Greed, funding, top/bottom movers, key levels for 13 coins, yen watch, events in the next 48h, paper trades + record, sourced news. JSON with a ready-to-use `markdown` field; add ?format=md (or Accept: text/markdown) for text/markdown.",
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json (default) or md for text/markdown",
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "md"
              ]
            }
          }
        ],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.030000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.02"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "20000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.03"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.03"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.03"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.03"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.03"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "30000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/macro/yen": {
      "get": {
        "operationId": "yen",
        "summary": "Lumi yen carry-trade watch (USD/JPY, Nikkei)",
        "description": "Yen carry-trade watch: USD/JPY and Nikkei 225 (price, 1d/5d change, ranges), a rule-based carry-trade risk level (low/watch/elevated) around the 155 USD/JPY line with reasons, Lumi's yen note, BTC context, upcoming Japan events (BOJ, CPI) and sources.",
        "parameters": [],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.015000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.01"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "10000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.015"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.015"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.015"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.015"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.015"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "15000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/sentiment": {
      "get": {
        "operationId": "sentiment",
        "summary": "Lumi crypto sentiment (Fear & Greed, funding)",
        "description": "Crypto sentiment snapshot: CoinMarketCap Fear & Greed (value, band, day-over-day change), BTC perp funding rate with a plain-English read + open interest (OKX), total market cap/volume/dominance, and breadth/signal-label counts across Lumi's 13 coins.",
        "parameters": [],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.005"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "5000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "10000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/events": {
      "get": {
        "operationId": "events",
        "summary": "Lumi macro + crypto events calendar",
        "description": "Upcoming macro and crypto events that can move prices: timed releases/decisions (UTC + US Central, with why it matters) and dated per-coin catalysts (Fed, BOJ, CPI, network upgrades, conferences). Every row is sourced.",
        "parameters": [],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.005"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "5000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.01"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.01"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "10000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/trades": {
      "get": {
        "operationId": "trades",
        "summary": "Lumi paper-trade history",
        "description": "Lumi's paper-trade history as a raw list: every idea with entry, stop, targets, leverage, status and reasoning.",
        "parameters": [],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.01"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "10000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "20000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/institutional": {
      "get": {
        "operationId": "institutional",
        "summary": "Lumi Institutional & Policy Brief (daily, premium)",
        "description": "Daily, sourced analysis of what central banks, standard-setters, regulators, banks and tokenization firms are doing (BIS, IMF, US Treasury/OCC, Fed, SEC, CFTC, JPMorgan Kinexys, SBI, Cross River, Securitize, R3 and others) and how each move maps to XRP, XLM, XDC, QNT, AXL and HBAR (plus RLUSD/USDC). Every item has a source URL, date, why-it-matters, impact and confidence, and a link_type that separates confirmed links from Lumi's indirect-alignment analysis. Also: big picture, per-coin map, cross-item connections, no-news notes and dated what-to-watch. JSON with a `markdown` field; ?format=md returns text/markdown. Neutral and apolitical; not financial advice.",
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json (default) or md for text/markdown",
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "md"
              ]
            }
          }
        ],
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.250000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.19"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "190000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.25"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.25"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.25"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.25"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.25"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "250000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown coin (never charged)."
          },
          "503": {
            "description": "Inputs missing or stale (never charged)."
          }
        }
      }
    },
    "/v1/trust/vendors/{id}/report": {
      "get": {
        "operationId": "vendor_report",
        "summary": "Lumi x402 vendor report (full observation history)",
        "description": "Detailed report for one x402 vendor on Lumi's trust list: Lumi's full observation history. Every free 402-quote check (90-day retention) with status, quoted price and latency; every paid test-buy with amount, ledger tx hash, explorer link and delivered yes/no; latency stats (min/p50/p90/p95/max) and the 7-day trend; uptime % over 24h/7d/30d/90d and a daily series; per-endpoint quoted-price history; verified agent reports; vendor replies; score components, sample sizes and confidence labels; methodology link. Automated observations, not a rating. Not sold (503, not charged) when the vendor has no observation in the last 48 h. The free summary is GET /v1/trust/vendors/{id}.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Vendor id from GET /v1/trust/vendors (free)",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9-]{1,64}$"
            },
            "example": "scalpstream",
            "examples": {
              "scalpstream": {
                "value": "scalpstream"
              }
            }
          }
        ],
        "x-example-url": "https://api.lumitrades.io/v1/trust/vendors/scalpstream/report",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "xrp_price": {
            "mode": "fixed",
            "currency": "XRP",
            "amount": "0.015"
          },
          "scheme": "exact",
          "network": "xrpl:0",
          "asset": "XRP",
          "amount_drops": "15000",
          "payTo": "rM8kmmnz5qPMg7V3r7SHYXgDGvm8PhzLvM",
          "alternatives": [
            {
              "price": {
                "mode": "fixed",
                "currency": "RLUSD",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "524C555344000000000000000000000000000000",
              "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "network": "xrpl:0",
              "asset": "5553444300000000000000000000000000000000",
              "issuer": "rGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE",
              "amount": "0.02"
            },
            {
              "price": {
                "mode": "fixed",
                "currency": "USDC",
                "amount": "0.02"
              },
              "scheme": "exact",
              "network": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "amount": "20000",
              "payTo": "0x5E617bac19912e6d212CB303ae84655E9E203532"
            }
          ]
        },
        "responses": {
          "200": {
            "description": "Paid data (JSON). Settlement receipt in the PAYMENT-RESPONSE header."
          },
          "400": {
            "description": "Path template not filled in (a literal {coin} or {id}); the body gives an example URL (never charged)."
          },
          "402": {
            "description": "Payment required. x402 v2 PaymentRequired in the body and the PAYMENT-REQUIRED header."
          },
          "404": {
            "description": "Unknown vendor (never charged)."
          },
          "503": {
            "description": "No observation of this vendor in the last 48 h, so the report is not sold (never charged)."
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "Owner key, only for owner-only endpoints. Paid endpoints use x402 (see x-payment-info); free endpoints need no auth."
      }
    }
  }
}