{
  "openapi": "3.1.0",
  "info": {
    "title": "canary \u2014 x402 paid endpoint",
    "version": "1.0.0",
    "description": "Send 3-5 words and receive one English sentence. The cheapest possible paid call on Base mainnet, meant to verify that a wallet, facilitator and x402 client work end to end before buying a real service.",
    "x-guidance": "POST /api/canary with JSON {\"words\":\"3-5 English words\"}. Unpaid calls return HTTP 402 with x402 v2 terms (USDC on Base, $0.001 per call). Use it to test a buyer client end to end; do not use it as a production text generator.",
    "contact": {
      "email": "hello@desk.node01.org",
      "url": "https://market.node01.org/"
    }
  },
  "servers": [
    {
      "url": "https://canary.node01.org"
    }
  ],
  "paths": {
    "/api/canary": {
      "post": {
        "operationId": "canary",
        "summary": "x402 plumbing check: pay a tiny amount, get a sentence back. For builders testing a client before spending on real services.",
        "tags": [
          "x402",
          "probe",
          "test",
          "connectivity"
        ],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "words": {
                    "type": "string",
                    "description": "3-5 English words to turn into a sentence",
                    "examples": [
                      "sunset over quiet mountains"
                    ]
                  }
                },
                "required": [
                  "words"
                ]
              },
              "example": {
                "words": "sunset over quiet mountains"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid call succeeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "result": "This service confirms the x402 plumbing works."
                }
              }
            }
          },
          "402": {
            "description": "Payment Required \u2014 x402 v2 challenge in the PAYMENT-REQUIRED header"
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "operationId": "health_check",
        "summary": "Free liveness check",
        "security": [],
        "responses": {
          "200": {
            "description": "Service is alive"
          }
        }
      }
    }
  }
}
