{"openapi":"3.1.0","info":{"title":"Korea4Home Public Markdown Resources","version":"1.0.0","description":"Public, anonymous, read-only content documents. Authentication is not required. Only curated public documents are available; user actions and private data are outside this contract. Discover available hub sections in /llms.txt. API version 1 is selected with the optional Korea4Home-API-Version header. Breaking changes require a new version; version 1 will remain supported for at least 90 days after a deprecation announcement in /docs. Deprecation and Sunset response headers will announce a scheduled retirement. No retirement is currently scheduled. The JSON service accepts 600 requests per 60 seconds per server process; inspect RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset and RateLimit-Policy. A 429 response includes Retry-After.","contact":{"url":"https://korea4home.com/contact"}},"servers":[{"url":"https://korea4home.com"}],"externalDocs":{"url":"https://korea4home.com/docs","description":"Usage instructions, access policy, formats, and errors"},"security":[],"paths":{"/api/public/resources":{"get":{"operationId":"getPublicResourceDocument","summary":"Read the public index or one available Markdown hub as JSON","description":"No authentication. Reads only the same curated public resources as /llms.txt. No writes or private records. A hub is a bounded sample, not a complete inventory; pagination and idempotency do not apply.","parameters":[{"name":"Korea4Home-API-Version","in":"header","required":false,"description":"API version; omission selects version 1","schema":{"type":"string","enum":["1"],"default":"1"}},{"name":"section","in":"query","required":false,"description":"Omit for the index; otherwise choose a section from /llms.txt","schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,63}$"},"example":"home"}],"responses":{"200":{"description":"Public resource","content":{"application/json":{"schema":{"type":"object","properties":{"sourceUrl":{"type":"string","format":"uri"},"mimeType":{"type":"string","const":"text/markdown"},"text":{"type":"string"}},"required":["sourceUrl","mimeType","text"],"additionalProperties":false}}}},"400":{"description":"Unsupported API version","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}},"required":["type","title","status","detail"]}}}},"404":{"description":"Public section unavailable","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}},"required":["type","title","status","detail"]}}}},"405":{"description":"Method not supported"},"429":{"description":"Service quota exceeded; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}},"required":["type","title","status","detail"]}}}},"503":{"description":"Temporary failure; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}},"required":["type","title","status","detail"]}}}}}}}}}