Errors
The one error shape, and which codes each endpoint can answer with.
Every error is {"error": "<sentence>", "code": "<slug>"}. The sentence may be reworded; the slug may not. An id that does not exist and an id that belongs to another organization get the same 404, byte for byte.
What each code means and what to do about it: Conventions.
By endpoint
Section titled “By endpoint”| Endpoint | Can answer |
|---|---|
List projectsGET /projects | 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 429rate_limited 500internal_error |
List runsGET /projects/{projectId}/runs | 400invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found 429rate_limited 500internal_error |
Get a runGET /projects/{projectId}/runs/{runId} | 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found, run_not_found 429rate_limited 500internal_error |
Get test attemptsGET /projects/{projectId}/runs/{runId}/tests/{testName} | 400ambiguous_test 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found, run_not_found, test_not_found 429rate_limited 500internal_error |
List branchesGET /projects/{projectId}/branches | 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found 429rate_limited 500internal_error |
List testsGET /projects/{projectId}/tests | 400invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found 429rate_limited 500internal_error |
Get test metricsGET /projects/{projectId}/tests/{testName}/metrics | 400ambiguous_test, invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found, test_not_found 429rate_limited 500internal_error |
Get test historyGET /projects/{projectId}/tests/{testName} | 400ambiguous_test, invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found, test_not_found 429rate_limited 500internal_error |
List errorsGET /projects/{projectId}/errors | 400invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found 429rate_limited 500internal_error |
Get an errorGET /projects/{projectId}/errors/{fingerprint} | 400invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404error_not_found, project_not_found 429rate_limited 500internal_error |
Get dashboard figuresGET /projects/{projectId}/overview | 400invalid_parameter, invalid_period 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found 429rate_limited 500internal_error |
Get settingsGET /projects/{projectId}/settings | 401invalid_key, key_expired, key_revoked, missing_key, wrong_key_type 403organization_deleted, tier_too_low 404project_not_found 429rate_limited 500internal_error |