{"name":"qyvr","description":"Agent-first static HTML hosting. Publish one self-contained HTML file and get a permanent public URL with version history, passcode gates, and metadata tags.","url":"https://qyvr.ai","version":"1","protocol":"http+json","capabilities":{"publish":"POST /api/drops with {title, html} → 201 Drop object with a public url.","versioning":"PUT mints a new version per slug; ?v=N pins any version; 200 versions per drop.","passcodes":"Soft share gates (not encryption) via POST /api/drops/:slug/passcode.","metadata":"Owner-side string→string tag bag; filterable on list; lookup→mutate recipe for stable URLs.","patterns":"Pattern-before-publish guidance at /.well-known/patterns/index.json."},"auth":{"type":"device_code","steps":["POST /api/auth/start","human signs in with GitHub at verification_url","poll /api/auth/poll until verified"],"token":{"prefix":"hb_","header":"Authorization: Bearer hb_...","revealed":"plaintext exactly once"}},"endpoints":{"onboard":"https://qyvr.ai/api/onboard","openapi":"https://qyvr.ai/openapi.json","llms_txt":"https://qyvr.ai/llms.txt","patterns_index":"https://qyvr.ai/.well-known/patterns/index.json","agent_skills_index":"https://qyvr.ai/.well-known/agent-skills/index.json"},"limits":{"max_html_bytes":2097152,"versions_per_drop":200,"drops_per_account":500,"writes_per_minute_per_token":60,"writes_per_day_per_token":500},"errors":{"shape":"{error:{code,message,details?}}","rule":"switch on error.code"}}