API
Base URL: https://api.testbeaver.com/api/v1. Send Authorization: Bearer cr_… (create a token under Account).
Response shape
{ "data": { ... } }
{ "error": { "code": "...", "message": "..." } }Projects
GET /projects— projects you’re a member ofPOST /projects—{ "name": "Web" }(you become owner)GET|PATCH|DELETE /projects/:idGET|POST /projects/:id/members— list members; invite by{ "email": "…" }(owner)DELETE /projects/:id/members/:userId— remove member (owner) or leave (self)DELETE /projects/:id/invites/:inviteId— cancel pending invite (owner)GET|POST /projects/:id/cases— querytag,suiteId,limit,cursorGET|POST /projects/:id/suitesGET|POST /projects/:id/runs— body{ name?, environment?, meta?, suiteId?, tag?, caseIds? }
Test cases & suites
GET|PATCH|DELETE /cases/:idGET /cases/:id/results— results across runsPATCH|DELETE /suites/:id
Runs
GET|PATCH /runs/:idGET /runs/:id/resultsGET /runs/:id/results/:caseId— one result + prev/nextPATCH /runs/:id/results/:caseId—{ status, note?, failedStep?, observed?, evidenceUrls?, durationMs? }GET /runs/:id/summary
Tokens
GET|POST /tokensDELETE /tokens/:id
Example
curl -s https://api.testbeaver.com/api/v1/projects \
-H "Authorization: Bearer cr_…"
curl -s https://api.testbeaver.com/api/v1/projects \
-H "Authorization: Bearer cr_…" \
-H "Content-Type: application/json" \
-d '{"name":"Staging"}'Next: Agents