{"openapi":"3.0.3","info":{"title":"Joakim Jardenberg public reading API","version":"0.13.2","description":"Read-only published writing, projects and ideas. No authentication or authority to act for JJ. Original dates, AI attribution and rights exceptions are included. Some generic library User-Agent strings are blocked by the hosting provider; use a descriptive client identity."},"servers":[{"url":"https://joakim.jardenberg.net/site"}],"security":[],"paths":{"/catalog.json":{"get":{"operationId":"list_public_documents","summary":"List every published document","responses":{"200":{"description":"Compact public index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}}}}},"/data/{documentId}.json":{"get":{"operationId":"read_public_document","summary":"Read one complete public document","parameters":[{"in":"path","name":"documentId","required":true,"description":"An exact id from catalog.json, such as now--2026-10-04. No arbitrary paths.","schema":{"type":"string","pattern":"^[a-z0-9-]+$"}}],"responses":{"200":{"description":"Complete document, including original language where present","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"404":{"description":"No such published document"}}}},"/collections.json":{"get":{"operationId":"list_public_collections","summary":"Find public collections and their original homes","responses":{"200":{"description":"Collection directory, with rights and access links","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Document":{"type":"object","required":["id","url","title","type","markdown","attribution","rights"],"properties":{"id":{"type":"string"},"url":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"markdown":{"type":"string"},"text":{"type":"string"},"html":{"type":"string"},"attribution":{"type":"string"},"rights":{"type":"string"}}},"Catalog":{"type":"object","required":["version","total","items"],"properties":{"version":{"type":"string"},"total":{"type":"integer"},"items":{"type":"array","items":{"type":"object","required":["id","json_url","title"],"properties":{"id":{"type":"string"},"json_url":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"}}}}}}}}}