{"openapi":"3.1.1","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"Annot8 Public Discovery API","version":"1.0.0","summary":"Machine-readable orientation for Annot8 agents and developers.","description":"This read-only surface describes Annot8 and links to its public machine-readable resources. It does not expose workspace or customer data. Annot8 currently has no public customer-data REST API or API-key system; outbound customer data is available through configured webhooks and exports.","contact":{"name":"Annot8 support","url":"https://www.annot8.app/contact","email":"support@annot8.app"}},"servers":[{"url":"https://www.annot8.app","description":"Canonical Annot8 production host"}],"tags":[{"name":"Discovery","description":"Read-only resources that help agents understand Annot8."}],"paths":{"/api":{"get":{"operationId":"getAnnot8ServiceIndex","summary":"Get the Annot8 service index","description":"Returns stable links to Annot8's OpenAPI description, agent instructions, developer resources, documentation, and sitemap. Use this operation to orient an agent before following a more specific resource.","tags":["Discovery"],"responses":{"200":{"description":"Annot8 service identity and public resource links.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceIndex"}}}},"406":{"description":"The request could not be fulfilled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/openapi.json":{"get":{"operationId":"getAnnot8OpenApiDescription","summary":"Get the Annot8 OpenAPI description","description":"Returns this OpenAPI 3.1 document so agents and developer tools can inspect the public discovery surface without scraping HTML.","tags":["Discovery"],"responses":{"200":{"description":"The current Annot8 OpenAPI description.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiDocument"}}}}}}},"/llms.txt":{"get":{"operationId":"getAnnot8AgentInstructions","summary":"Get Annot8 agent instructions","description":"Returns the llms.txt resource map with best-fit use cases, API boundaries, and links to Markdown-friendly product documentation.","tags":["Discovery"],"responses":{"200":{"description":"The Annot8 llms.txt file in the llms.txt v2 format.","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"ResourceLink":{"type":"object","additionalProperties":false,"required":["name","url","mediaType"],"properties":{"name":{"type":"string","description":"Stable machine-readable resource name."},"url":{"type":"string","format":"uri","description":"Absolute canonical URL for the resource."},"mediaType":{"type":"string","description":"Primary response media type."}}},"ServiceIndex":{"type":"object","additionalProperties":false,"required":["name","description","customerDataApiAvailable","guidance","resources"],"properties":{"name":{"type":"string","const":"Annot8"},"description":{"type":"string"},"customerDataApiAvailable":{"type":"boolean","const":false,"description":"False while Annot8 has no public customer-data REST API."},"guidance":{"type":"string"},"resources":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ResourceLink"}}}},"ApiError":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","hint","docs"],"properties":{"code":{"type":"string","description":"Stable programmatic error code."},"message":{"type":"string","description":"Human-readable explanation of the failure."},"hint":{"type":"string","description":"A concrete recovery action."},"docs":{"type":"string","format":"uri","description":"Documentation that explains the API boundary."}}}}},"OpenApiDocument":{"type":"object","required":["openapi","info","paths"],"properties":{"openapi":{"type":"string"},"info":{"type":"object"},"paths":{"type":"object"}},"additionalProperties":true}}}}