API reference
Get results
Poll run and suite-run status with the GET endpoints.
GET /api/v1/runs/{runId}
Status of a single test run:
curl -H "Authorization: Bearer mb_live_..." \
https://app.mockingbirdai.com.au/api/v1/runs/RUN_ID{
"id": "RUN_ID",
"status": "passed",
"result_summary": "Signed in and verified the dashboard greeting.",
"error": null,
"skip_reason": null
}Poll until status is terminal: passed, failed, error, or skipped. A run outside
your key's workspace returns 404, never another tenant's data.
GET /api/v1/suite-runs/{suiteRunId}
Aggregate status for a suite run plus each child test:
curl -H "Authorization: Bearer mb_live_..." \
https://app.mockingbirdai.com.au/api/v1/suite-runs/SUITE_RUN_ID{
"id": "SUITE_RUN_ID",
"status": "failed",
"total_count": 4,
"passed_count": 3,
"failed_count": 1,
"error_count": 0,
"skipped_count": 0,
"suiteRunUrl": "https://app.mockingbirdai.com.au/w/acme/p/acme-store/tests/...",
"tests": [
{ "runId": "...", "name": "Checkout with saved card", "status": "failed", "skipReason": null }
]
}suiteRunUrl is the human link: send people there for the step timelines, screenshots, and
recordings rather than rebuilding that view from the API.
Polling guidance
Suite duration depends on test count and length; the GitHub Action defaults to a 15-minute
budget. Poll every few seconds, respect 429 by backing off, and treat failed and error
as distinct outcomes: failed means the product misbehaved, error means the run itself
could not complete.