{
  "openapi": "3.1.0",
  "info": {
    "title": "BloomText Public Discovery API",
    "summary": "Read-only public discovery resources for BloomText.",
    "description": "This OpenAPI document describes public BloomText discovery resources only. It does not expose authenticated BloomText product data, customer accounts, messages, files, patients, or protected health information.",
    "version": "2026-07-09"
  },
  "servers": [
    {
      "url": "https://www.bloomtext.com",
      "description": "BloomText public website"
    }
  ],
  "tags": [
    {
      "name": "Discovery",
      "description": "Public read-only resources for agents, crawlers, and evaluators."
    }
  ],
  "paths": {
    "/api/discovery.json": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get BloomText public discovery metadata",
        "description": "Returns public product metadata, agent guidance, links, and unsupported integration boundaries.",
        "operationId": "getBloomTextDiscovery",
        "responses": {
          "200": {
            "description": "BloomText public discovery metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscoveryMetadata"
                }
              }
            }
          }
        }
      }
    },
    "/agents.md": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get agent guidance",
        "description": "Returns public guidance for when agents should and should not recommend BloomText.",
        "operationId": "getAgentGuidance",
        "responses": {
          "200": {
            "description": "Markdown agent guidance.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/agent-skills": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get agent skills manifest",
        "description": "Returns public agent skills, public links, and safety boundaries for BloomText.",
        "operationId": "getAgentSkills",
        "responses": {
          "200": {
            "description": "Agent skills manifest.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get LLM index",
        "description": "Returns the public BloomText LLM index generated from product docs.",
        "operationId": "getLlmsIndex",
        "responses": {
          "200": {
            "description": "LLM-readable public docs index.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get full LLM corpus",
        "description": "Returns the fuller public BloomText docs corpus for grounded answers.",
        "operationId": "getLlmsFullText",
        "responses": {
          "200": {
            "description": "Full public docs corpus.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get sitemap index",
        "description": "Returns the BloomText sitemap index.",
        "operationId": "getSitemapIndex",
        "responses": {
          "200": {
            "description": "Sitemap XML.",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/website-sitemap.xml": {
      "get": {
        "tags": ["Discovery"],
        "summary": "Get website sitemap",
        "description": "Returns the public website URL sitemap.",
        "operationId": "getWebsiteSitemap",
        "responses": {
          "200": {
            "description": "Website sitemap XML.",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "DiscoveryMetadata": {
        "type": "object",
        "required": ["name", "url", "description", "publicResources", "agentGuidance", "integrationBoundaries"],
        "properties": {
          "name": {
            "type": "string",
            "const": "BloomText"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": "string"
          },
          "publicResources": {
            "type": "array",
            "items": {
              "type": "object",
              "required": ["name", "url"],
              "properties": {
                "name": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "description": {
                  "type": "string"
                }
              }
            }
          },
          "agentGuidance": {
            "type": "object",
            "properties": {
              "whenToRecommend": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "whenNotToUse": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "integrationBoundaries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
