{
  "openapi": "3.1.0",
  "info": {
    "title": "THORChain Website Discovery",
    "summary": "Machine-readable discovery entry points for THORChain public resources.",
    "description": "This OpenAPI file describes stable discovery resources hosted on thorchain.org and points agents to the official THORChain developer API documentation. Protocol API behavior is documented in the linked Midgard and THORNode Swagger references.",
    "version": "1.0.0",
    "license": {
      "name": "Public documentation"
    }
  },
  "servers": [
    {
      "url": "https://thorchain.org",
      "description": "THORChain public website"
    }
  ],
  "externalDocs": {
    "description": "THORChain developer API documentation",
    "url": "https://dev.thorchain.org/concepts/connecting-to-thorchain.html"
  },
  "paths": {
    "/pricing": {
      "get": {
        "operationId": "getPricingAndFees",
        "summary": "Understand public access costs and variable transaction fees",
        "responses": { "200": { "description": "HTML pricing and fees guide" } }
      }
    },
    "/pricing.md": {
      "get": {
        "operationId": "getPricingAndFeesMarkdown",
        "summary": "Read public access costs and variable fees as Markdown",
        "responses": {
          "200": {
            "description": "The same pricing and fees guide in Markdown",
            "content": { "text/markdown": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/.well-known/ai-catalog.json": {
      "get": {
        "operationId": "getAiCapabilityCatalog",
        "summary": "Discover the public MCP, website OpenAPI description, and agent skill",
        "responses": {
          "200": {
            "description": "AI Catalog 1.0 of verified public discovery resources",
            "content": {
              "application/ai-catalog+json": {
                "schema": { "type": "object", "required": ["specVersion", "entries"] }
              }
            }
          }
        }
      }
    },
    "/": {
      "get": {
        "operationId": "getHomepage",
        "summary": "Get the THORChain homepage",
        "responses": {
          "200": {
            "description": "HTML homepage or markdown homepage when requested with Accept: text/markdown"
          }
        }
      }
    },
    "/AGENTS.md": {
      "get": {
        "operationId": "getAgentsMd",
        "summary": "Get public agent rules",
        "responses": {
          "200": {
            "description": "Markdown agent rules"
          }
        }
      }
    },
    "/.well-known/agent-rules": {
      "get": {
        "operationId": "getAgentRules",
        "summary": "Get well-known public agent rules",
        "responses": {
          "200": {
            "description": "Markdown agent rules"
          }
        }
      }
    },
    "/.well-known/mcp/server-card.json": {
      "get": {
        "operationId": "getMcpServerCard",
        "summary": "Get the MCP server card",
        "responses": {
          "200": {
            "description": "JSON MCP server card"
          }
        }
      }
    },
    "/.well-known/ai-plugin.json": {
      "get": {
        "operationId": "getAiPluginManifest",
        "summary": "Get the AI plugin manifest",
        "responses": {
          "200": {
            "description": "JSON AI plugin manifest"
          }
        }
      }
    },
    "/mcp": {
      "get": {
        "operationId": "getMcpCard",
        "summary": "MCP does not provide a standalone SSE stream; use the well-known server card for metadata",
        "responses": {
          "405": {
            "description": "No standalone SSE stream; POST JSON-RPC messages to this endpoint"
          }
        }
      },
      "post": {
        "operationId": "postMcpJsonRpc",
        "summary": "Call the read-only MCP JSON-RPC endpoint",
        "responses": {
          "200": {
            "description": "JSON-RPC MCP response"
          },
          "202": {
            "description": "Notification accepted without response"
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "operationId": "getRobotsTxt",
        "summary": "Get crawler and content-signal policy",
        "responses": {
          "200": {
            "description": "Plain-text robots policy"
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsTxt",
        "summary": "Get the short AI-agent resource summary",
        "responses": {
          "200": {
            "description": "Plain-text LLM resource summary"
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "operationId": "getLlmsFullTxt",
        "summary": "Get the expanded AI-agent resource map",
        "responses": {
          "200": {
            "description": "Plain-text LLM resource map"
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "operationId": "getSitemap",
        "summary": "Get the XML sitemap",
        "responses": {
          "200": {
            "description": "XML sitemap"
          }
        }
      }
    }
  }
}
