Returns normalized run status derived from TestProgress rows. status=canceled covers both explicit cancellation and infrastructure errors (the underlying model does not distinguish them).
GET
/runs/{run_id}
curl \
--request GET 'https://sampleplatform.ccextractor.org/api/v1/runs/{run_id}' \
--header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
"run_id": 42,
"status": "queued",
"repository": "string",
"branch": "string",
"commit_sha": "string",
"commit_short": "string",
"pull_request": 42,
"platform": "linux",
"run_errors": true,
"triggered_by": "string",
"created_at": "2026-05-04T09:42:00Z",
"queued_at": "2026-05-04T09:42:00Z",
"started_at": "2026-05-04T09:42:00Z",
"completed_at": "2026-05-04T09:42:00Z",
"duration_ms": 42,
"links": {
"additionalProperty1": "https://example.com",
"additionalProperty2": "https://example.com"
}
}
Response examples (401)
{
"code": "unauthorized",
"message": "Bearer token is missing, expired, or invalid.",
"details": {}
}
Response examples (404)
{
"code": "not_found",
"message": "Run 9317 not found.",
"details": {
"resource": "run",
"id": 9317
}
}
Response examples (429)
{
"code": "rate_limited",
"message": "Rate limit exceeded. Retry after 30 seconds.",
"details": {
"retry_after": 30,
"limit": 120,
"window": "60s"
}
}
Response examples (default)
{
"code": "not_found",
"message": "Run 9317 not found.",
"details": {}
}