List flaky tests with optional field expansion.
Returns flaky tests for the named repository. Exactly one of repository (name) or repository_id (legacy numeric ID from the Rails API era) must be supplied; omitting both returns 400.
Optional fields
By default the response is a minimal shape: id, name, suite, class, file. Pass include=field1,field2,… to expand any of:
- disruptiveness_ratio
- nondeterministic_negative_result_count
- nondeterminism_first_recorded_at
- recent_nondeterministic_commit_oid
- recent_nondeterministic_negative_result
- recent_nondeterministic_positive_result
- tags
- quarantine_date
- quarantined_by
- quarantine_type
- time_consumed
- pass_rate
- avg_duration_ms
Unknown fields are silently dropped.
Quarantine
This endpoint returns quarantined tests by default. Pass quarantine=false to get non-quarantined flaky tests instead. The two modes are mutually exclusive — a test is either quarantined or it isn't — and together they cover every flaky test on the repository.
| Request | Returns |
|---|---|
| ?repository=widgets | Quarantined tests (default) |
| ?repository=widgets&quarantine=false | Non-quarantined tests, within the reporting window |
Only the literal value false selects the non-quarantined view; any other value (including 0) is treated as true, matching the legacy API. quarantined is accepted as an alias for quarantine.
Reporting window
The non-quarantined view only returns tests that were disruptive within your plan's reporting period (default 14 days). This bounds the response to currently-relevant flakes rather than every flake ever recorded.
The quarantined view is deliberately not windowed: a test quarantined a year ago is still quarantined, so it is still returned.
Per-occurrence history
Each returned id is a test (disruptor) ID that can be passed to GET /api/tests/{id}/results to fetch that test's recent disruption events (build URL, commit, failure message, timestamp) — the typical pattern for scripted triage reports: list the inventory here, then fetch history per test.
Request
- Base URL: https://platform.buildpulse.io
- URL: https://platform.buildpulse.io/api/v1/flaky/tests
- Auth: one of:
- API key in header Authorization
- HTTP bearer
Query parameters
Repository name (case-insensitive). Required unless repository_id is supplied. Omitting both returns 400.
Legacy numeric repository ID (from the Rails era). Used when migrating older integrations that didn't have repo names available at call time.
Page size. Clamped to [1, 100].
Opaque pagination cursor from a previous response's metadata.after. Pass back verbatim.
Comma-separated list of optional fields to include. See description above for the allowed set.
Which set of flaky tests to return. Defaults to true (quarantined tests only). Set to false to return non-quarantined tests from the reporting window instead.
Only the literal false selects the non-quarantined view; any other value is treated as true.
Alias for quarantine. If both are supplied, quarantine wins.
Sort order. recency sorts by latestDisruptionAt descending.
Structured query string. See /api/repos/{owner}/{name}/tests description for the full grammar.
Response
Paginated flaky tests.
Changes
No recorded changes to this operation across all 1 revision of this API.