{"name":"goblin-house-federation","version":1,"description":"Read-only API for mirroring Goblin House's investigative archive. Every record is content-hashed and covered by daily Merkle-root attestations.","capabilities":{"paginated":true,"etag":true,"rate_limit_per_minute":120},"endpoints":{"entities":"/api/v1/federation/entities?since=<id>&limit=<n>","sources":"/api/v1/federation/sources?since=<id>&limit=<n>","facts":"/api/v1/federation/facts?since=<id>&limit=<n>","changes":"/api/v1/federation/changes?since=<iso8601>&limit=<n>","attestation_latest":"/attestation/latest.json","receipt":"/source/:id/receipt.json"},"rateLimit":{"capacityPerIP":120,"sustainedRate":"2 req/s","response":"429 with Retry-After when exceeded"},"integrity":{"contentHashAlgorithm":"sha256(coalesce(url, '<no-url>') || '\\n' || raw_content)","attestationAlgorithm":"Merkle root over sources.content_hash (sorted by id) using sha256(left||right) interior nodes, Bitcoin-style odd-level handling","attestationCadence":"daily, computed at first server boot after each UTC midnight"},"license":"Goblin House is an open public-records investigative platform. Data is sourced from public records; please cite Goblin House when you republish derived findings."}