{"components":{"schemas":{"Problem":{"description":"RFC 9457 problem details, returned for unknown `/api/*` paths.","properties":{"detail":{"type":"string"},"instance":{"type":"string"},"status":{"type":"integer"},"title":{"type":"string"},"type":{"format":"uri","type":"string"}},"required":["type","title","status"],"type":"object"}}},"info":{"contact":{"email":"kai@kyh.io","url":"https://www.kyh.io/contact"},"description":"Read-only, machine-readable views of kyh.io, the personal site of Kaiyu Hsu. Every endpoint is an unauthenticated GET. There is no write API. Unknown `/api/*` paths return `application/problem+json`; other unknown paths return a markdown 404.","title":"kyh.io agent endpoints","version":"1.0.0"},"openapi":"3.1.0","paths":{"/":{"get":{"description":"Returns HTML by default. Send `Accept: text/markdown` to receive the same bio, work history and project list as markdown.","operationId":"getHome","parameters":[{"description":"`text/markdown` selects the markdown representation.","in":"header","name":"Accept","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/html":{"schema":{"description":"The homepage.","type":"string"}},"text/markdown":{"schema":{"description":"The homepage as markdown, identical to `/markdown`.","type":"string"}}},"description":"The homepage, negotiated on `Accept`.","headers":{"Vary":{"description":"Always includes `Accept`: the body depends on content negotiation.","schema":{"type":"string"}}}}},"summary":"Homepage (HTML or markdown)","tags":["content"]}},"/.well-known/api-catalog":{"get":{"description":"RFC 9727 API catalog, as an RFC 9264 linkset pointing at this document.","operationId":"getApiCatalog","responses":{"200":{"content":{"application/linkset+json":{"schema":{"properties":{"linkset":{"items":{"type":"object"},"type":"array"}},"required":["linkset"],"type":"object"}}},"description":"The API catalog."}},"summary":"API catalog","tags":["discovery"]}},"/llms.txt":{"get":{"description":"llmstxt.org index: what the site covers, when to use it, and links to every page and project.","operationId":"getLlmsTxt","responses":{"200":{"content":{"text/plain":{"schema":{"description":"llms.txt formatted markdown.","type":"string"}}},"description":"The agent index."}},"summary":"Agent index (llms.txt)","tags":["discovery"]}},"/markdown":{"get":{"description":"The whole homepage as a single markdown document: bio, work history, projects and contact links.","operationId":"getMarkdown","responses":{"200":{"content":{"text/markdown":{"schema":{"description":"The homepage as markdown.","type":"string"}}},"description":"Markdown view of the homepage.","headers":{"Vary":{"description":"Always includes `Accept`: the body depends on content negotiation.","schema":{"type":"string"}}}}},"summary":"Homepage as markdown","tags":["content"]}},"/openapi.json":{"get":{"description":"This OpenAPI 3.1 document.","operationId":"getOpenApi","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The OpenAPI document."}},"summary":"OpenAPI description","tags":["discovery"]}},"/robots.txt":{"get":{"description":"Crawl rules plus Content-Signal AI usage preferences.","operationId":"getRobotsTxt","responses":{"200":{"content":{"text/plain":{"schema":{"description":"robots.txt directives.","type":"string"}}},"description":"Crawl rules."}},"summary":"robots.txt","tags":["discovery"]}},"/sitemap.xml":{"get":{"description":"Every canonical HTML page on the site.","operationId":"getSitemap","responses":{"200":{"content":{"application/xml":{"schema":{"description":"sitemaps.org XML.","type":"string"}}},"description":"The sitemap."}},"summary":"Sitemap","tags":["discovery"]}}},"servers":[{"url":"https://www.kyh.io"}],"tags":[{"description":"The site's content in machine-readable form.","name":"content"},{"description":"Indexes that describe what the site serves.","name":"discovery"}]}