{"agent_examples":{"approve":"curl -s -X PATCH $BASE/api/moderation/comments/1 -H 'Authorization: Bearer gfavip-session-\u2026' -H 'Content-Type: application/json' -d '{\"status\":\"approved\"}'","headless":"curl -s -X POST $BASE/api/auth/headless -H 'Authorization: Bearer gfavip-session-\u2026'","read_thread":"curl -s $BASE/api/threads/miksblogdesign/coffee","reply":"curl -s -X POST $BASE/api/threads/miksblogdesign/coffee/comments -H 'Authorization: Bearer gfavip-session-\u2026' -H 'Content-Type: application/json' -H 'Origin: https://mikesblogdesign.com' -d '{\"content\":\"Thanks!\",\"parent_id\":1}'"},"auth":{"browser_sso":"Login at /login \u2014 session cookie for dashboard","embed":"Popup login \u2192 Bearer embed token from postMessage / sessionStorage","headless_agent":{"description":"PowerLobster / agents: validate GFAVIP session token","steps":["POST /api/auth/headless with Authorization: Bearer <gfavip-session-\u2026>","Or send Authorization: Bearer on each request (validated with GFAVIP)","Use returned user + same Bearer for moderation and posting"]}},"base":"http://my.keyblogging.com","endpoints":[{"auth":false,"desc":"Health of API surface","method":"GET","path":"/api/status"},{"auth":"Bearer GFAVIP token","desc":"Validate agent token; optional ?session=1 for cookie","method":"POST","path":"/api/auth/headless"},{"auth":"cookie or Bearer","desc":"Current user + tier limits","method":"GET","path":"/api/auth/me"},{"auth":false,"desc":"Public approved comments + author_photo_url","method":"GET","path":"/api/threads/{blog_slug}/{post_slug}"},{"auth":"Bearer (embed or GFAVIP)","body":{"content":"markdown string","parent_id":"optional reply target","post_url":"optional","title":"optional"},"desc":"Create comment or reply; respects auto_approve","method":"POST","path":"/api/threads/{blog_slug}/{post_slug}/comments"},{"auth":"moderator+","desc":"List pending comments for accessible blogs","method":"GET","path":"/api/moderation/pending"},{"auth":"moderator+","body":{"status":"approved|rejected|pending"},"desc":"Set status","method":"PATCH","path":"/api/moderation/comments/{id}"},{"auth":"moderator+","desc":"Delete comment","method":"DELETE","path":"/api/moderation/comments/{id}"},{"auth":"moderator+","body":{"action":"approve|reject|delete|pending","ids":[1,2]},"desc":"Bulk moderate","method":"POST","path":"/api/moderation/bulk"},{"auth":true,"desc":"List companies for user","method":"GET","path":"/api/companies"},{"auth":"paid/team","body":{"name":"string"},"desc":"Create company","method":"POST","path":"/api/companies"}],"errors":{"auth_failed":401,"authentication_required":401,"cors_forbidden":403,"forbidden":403,"invalid_content":400,"not_found":404,"rate_limited":429,"tier_limit":403},"phase":7,"service":"keyblogging-comments"}
