{"service":"web-recorder","version":"1.3.9","description":"Record any URL into MP4/WebM with cursor + subtitles + voice-over. Also generates animated WebP thumbnails (multi-tier, R2-cached).","category":"video","endpoints":{"primary":[{"path":"/v1/thumbs","method":"POST","description":"URL → animated WebP thumbnails (multi-tier, R2-cached)","cost_units":3,"group":"primary"},{"path":"/v1/videos","method":"POST","description":"URL → MP4/WebM with cursor + subtitles + voice-over","cost_units":5,"group":"primary"},{"path":"/record","method":"POST","description":"Legacy alias of /v1/videos","cost_units":5,"group":"primary"},{"path":"/v1/renders","method":"POST","description":"Template HTML (__seek contract) → frame-by-frame MP4 render, async, R2 URL output. Smooth without GPU.","cost_units":10,"group":"primary"}],"cleanup":[{"path":"/v1/files/delete","method":"POST","description":"Bulk-delete R2 objects by URL/key/prefix (free). Use after copying files to your own storage.","cost_units":0,"group":"cleanup"},{"path":"/v1/files","method":"DELETE","description":"RESTful alias of /v1/files/delete","cost_units":0,"group":"cleanup"}],"meta":[{"path":"/v1/thumbs/by-url","method":"GET","description":"Lookup cached thumb for URL","cost_units":1,"group":"meta"},{"path":"/status/:id","method":"GET","description":"Poll async job status","cost_units":0,"group":"meta"},{"path":"/mcp","method":"POST","description":"MCP JSON-RPC endpoint","cost_units":0,"group":"meta"},{"path":"/health","method":"GET","description":"Liveness probe","cost_units":0,"group":"meta"}]},"cost_table":{"/v1/thumbs":3,"/v1/videos":5,"/record":5,"/v1/thumbs/by-url":1,"/v1/files/delete":0,"/v1/files":0},"billing":{"internal":"free (service binding from same CF account — cf-worker header)","external":"metered via X-Cost-Units response header"},"docs_url":"https://github.com/hp-agent/backend/blob/main/workers/web-recorder/CONTRACT.md","modes":["mp4 (default)","webm"]}