{
  "openapi": "3.1.1",
  "info": {
    "title": "Renterra Public Website Resources",
    "version": "1.1.0",
    "description": "Read-only discovery resources on Renterra's marketing website. This is not a specification for the authenticated Renterra product API. No product API endpoints, OAuth scopes, SDK, MCP server, or sandbox are described here."
  },
  "servers": [{ "url": "https://getrenterra.com" }],
  "externalDocs": {
    "description": "Renterra agent and public resource documentation",
    "url": "https://getrenterra.com/docs"
  },
  "security": [],
  "components": {
    "schemas": {
      "Problem": {
        "type": "object",
        "description": "RFC 9457 problem details from the website asset handler. Upstream Cloudflare security, routing, or availability errors may have different formats.",
        "required": [
          "type",
          "title",
          "status",
          "detail",
          "instance",
          "code",
          "resolution",
          "docs"
        ],
        "properties": {
          "type": { "type": "string", "format": "uri", "const": "about:blank" },
          "title": { "type": "string" },
          "status": { "type": "integer", "minimum": 400, "maximum": 599 },
          "detail": { "type": "string" },
          "instance": { "type": "string", "format": "uri-reference" },
          "code": { "type": "string", "enum": ["not_found", "server_error"] },
          "resolution": { "type": "string" },
          "docs": {
            "type": "string",
            "format": "uri",
            "const": "https://getrenterra.com/docs"
          }
        }
      }
    },
    "responses": {
      "ResourceError": {
        "description": "Website asset-handler error. Request application/problem+json (RFC 9457) or application/json. For machine resource paths, absent or wildcard Accept defaults to problem JSON; explicit browser HTML preferences retain HTML. The status field matches the HTTP status. Code not_found means check discovery links; server_error means retry with bounded backoff, honoring Retry-After if present. This does not describe product API or upstream Cloudflare errors.",
        "headers": {
          "Vary": {
            "schema": { "type": "string" },
            "description": "Includes Accept."
          },
          "Cache-Control": {
            "schema": { "type": "string", "const": "no-store" }
          }
        },
        "content": {
          "application/problem+json": {
            "schema": { "$ref": "#/components/schemas/Problem" }
          },
          "application/json": {
            "schema": { "$ref": "#/components/schemas/Problem" }
          },
          "text/markdown": { "schema": { "type": "string" } },
          "text/html": { "schema": { "type": "string" } }
        }
      }
    }
  },
  "paths": {
    "/llms.txt": {
      "get": {
        "operationId": "getRenterraAgentIndex",
        "summary": "Read Renterra agent guidance and page index",
        "description": "Retrieve when-to-use guidance and links to published product, company, customer, and blog pages. No authentication is required.",
        "responses": {
          "404": { "$ref": "#/components/responses/ResourceError" },
          "5XX": { "$ref": "#/components/responses/ResourceError" },
          "200": {
            "description": "Markdown-formatted agent guidance and page index, delivered as plain text following llms.txt conventions.",
            "content": { "text/plain": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "operationId": "getRenterraSitemap",
        "summary": "Find published Renterra website URLs",
        "description": "Retrieve the XML sitemap of indexable marketing pages and published articles. This does not list customer account data. No authentication is required.",
        "responses": {
          "404": { "$ref": "#/components/responses/ResourceError" },
          "5XX": { "$ref": "#/components/responses/ResourceError" },
          "200": {
            "description": "An XML sitemap using the sitemaps.org protocol.",
            "content": { "application/xml": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "operationId": "getRenterraRobotsPolicy",
        "summary": "Read Renterra website crawl policy",
        "description": "Retrieve the robots.txt crawl policy. Preview builds disallow crawling; the production policy is controlled separately. No authentication is required.",
        "responses": {
          "404": { "$ref": "#/components/responses/ResourceError" },
          "5XX": { "$ref": "#/components/responses/ResourceError" },
          "200": {
            "description": "Robots Exclusion Protocol rules.",
            "content": { "text/plain": { "schema": { "type": "string" } } }
          }
        }
      }
    }
  }
}
