{"openapi":"3.1.1","info":{"title":"Ayroflow Public Catalog API","version":"1.0.0","description":"Read-only public product, service, and guide information. Does not access product accounts, customer records, or business actions.","contact":{"name":"Ayroflow","email":"contact@ayroflow.com","url":"https://ayroflow.com/developers"}},"servers":[{"url":"https://ayroflow.com"}],"security":[],"paths":{"/api/catalog":{"get":{"operationId":"getPublicCatalog","summary":"Get the public Ayroflow catalog","description":"No authentication, request body, or query parameters are required. Responses are cacheable and update when site content is published.","responses":{"200":{"description":"The current public catalog.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}}}}},"/content/{kind}/{slug}":{"get":{"operationId":"getPublicMarkdown","summary":"Read a product, service, or guide as Markdown","parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["products","services","docs"]}},{"name":"slug","in":"path","required":true,"description":"The content slug including the .md extension, for example ayrochat.md.","schema":{"type":"string","pattern":"^[a-z0-9-]+\\.md$"}}],"responses":{"200":{"description":"Public content in Markdown, with a canonical HTML page.","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Unknown content kind, slug, or file extension."}}}}},"components":{"schemas":{"CatalogEntry":{"type":"object","required":["slug","name","description","url","markdownUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"markdownUrl":{"type":"string","format":"uri"}}},"Product":{"allOf":[{"$ref":"#/components/schemas/CatalogEntry"},{"type":"object","required":["status","launchUrl"],"properties":{"status":{"type":"string","enum":["Live product","Live demo","Mobile app"]},"launchUrl":{"type":"string","format":"uri"}}}]},"Catalog":{"type":"object","required":["version","updated","name","website","contact","documentation","openapi","products","services","guides"],"properties":{"version":{"type":"string"},"updated":{"type":"string","format":"date"},"name":{"type":"string"},"website":{"type":"string","format":"uri"},"contact":{"type":"string","format":"email"},"documentation":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/CatalogEntry"}},"guides":{"type":"array","items":{"$ref":"#/components/schemas/CatalogEntry"}}}}}}}