{"openapi":"3.1.0","info":{"title":"act60.me public sources","summary":"Read-only catalog of existing ACT60 public files","description":"This description covers files act60.me already publishes: the latest-law redirect, official-document manifest, tax dataset, llms.txt, sitemap, and robots policy. It is not a product API. There is no OAuth, GraphQL, MCP, webhook, or write surface.","version":"1.0.0","contact":{"name":"Hraness","email":"benzguo@gmail.com","url":"https://act60.me/contact"}},"servers":[{"url":"https://act60.me","description":"act60.me"}],"paths":{"/api/laws/latest":{"get":{"operationId":"getLatestSavedLaw","summary":"Redirect to the checked consolidated Act 60 PDF","description":"Returns HTTP 307 to the manifest-selected immutable public PDF. HEAD uses the same redirect.","responses":{"307":{"description":"Temporary redirect to /laws/act-60-2019-consolidated--*.pdf","headers":{"Location":{"schema":{"type":"string","format":"uri-reference"}}}}}}},"/laws/manifest.json":{"get":{"operationId":"getLawManifest","summary":"Official document archive manifest","description":"JSON inventory of saved official PDFs, source URLs, hashes, and current revisions.","responses":{"200":{"description":"Checked law manifest","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/data/tax-data.yaml":{"get":{"operationId":"getTaxData","summary":"Checked calculator tax dataset","description":"YAML rates, as-of date, sources, and model limitations used by the public estimator.","responses":{"200":{"description":"Tax dataset","content":{"application/yaml":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Agent reading list","description":"llmstxt.org file with when-to-use guidance and links to public pages.","responses":{"200":{"description":"Markdown reading list","content":{"text/markdown":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApi","summary":"This OpenAPI document","responses":{"200":{"description":"OpenAPI 3.1 document","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"405":{"description":"Method not allowed","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/.well-known/api-catalog":{"get":{"operationId":"getApiCatalog","summary":"RFC 9727 API catalog","responses":{"200":{"description":"Linkset pointing at the OpenAPI document","content":{"application/linkset+json":{"schema":{"type":"object","additionalProperties":true}}}}}}}},"components":{"schemas":{"Problem":{"type":"object","required":["type","title","status","detail","code"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"instance":{"type":"string"}}}}}}