Project Perf REST API


Query project performance metrics


⚠️ Breaking Changes: The Bencher API is in beta and under active development. We may introduce breaking changes in future releases. We will announce any breaking changes in the release notes.

Query the performance metrics for a project. The query results are every permutation of each branch, testbed, benchmark, and measure. Each permutation returns one line per variant of its benchmark, narrowed by the `parameters` filter when one is given. Only the first 64 entries of each dimension list are queried, the `parameters` filter included. There is a limit of 256 permutations and 256 lines for a single request. A permutation with nothing to plot returns no line, but it still counts against the permutation limit. If there is no `start_time`, then the last four weeks are queried, back from the `end_time` when there is one and from now when there is not. The response always states the window that was queried. If the project is public, then the user does not need to be authenticated. If the project is private, then the user must be authenticated and have `view` permissions for the project, or provide a valid project key for the project.

Headers


Content-Type

string

Required

Set to application/json.


Authorization

string

Set to Bearer BENCHER_API_KEY, where BENCHER_API_KEY is a valid Bencher API key (or a deprecated API token).

Path Parameters


project
Required

The slug or UUID for a project.

Query Parameters


benchmarks

string

Required

A comma separated list of benchmark UUIDs to query. Only the first 64 benchmarks are queried.


branches

string

Required

A comma separated list of branch UUIDs to query. Only the first 64 branches are queried.


end_time

integer

Search for metrics before the given date time in milliseconds.


heads

string

An optional comma separated list of branch head UUIDs. To not specify a particular branch head leave an empty entry in the list.


measures

string

Required

A comma separated list of measure UUIDs to query. Only the first 64 measures are queried.


parameters

string

An optional comma separated list of URL encoded parameter sets to filter on. A variant is queried when at least one of them is a subset of its parameter set: every key the filter names, with the same value. Leaving this off queries every variant. Only the first 64 parameter sets are queried.


specs

string

An optional comma separated list of testbed spec UUIDs. To not specify a particular testbed spec leave an empty entry in the list.


start_time

integer

Search for metrics after the given date time in milliseconds. Defaults to four weeks before the end time, or four weeks before now when there is no end time.


testbeds

string

Required

A comma separated list of testbed UUIDs to query. Only the first 64 testbeds are queried.

GET
/v0/projects/{project}/perf
Bencher Cloudhttps://api.bencher.dev
Bencher Self-Hostedhttp://localhost:6610

Bencher CLI

bencher perf PROJECT

View OpenAPI Spec

Generate a dynamic image of project performance metrics


⚠️ Breaking Changes: The Bencher API is in beta and under active development. We may introduce breaking changes in future releases. We will announce any breaking changes in the release notes.

Generate a dynamic image of performance metrics for a project. The query results are every permutation of each branch, testbed, benchmark, and measure. There is a limit of 8 permutations for a single image. Therefore, only the first 8 permutations are plotted. Each permutation plots one line per variant of its benchmark, narrowed by the `parameters` filter when one is given. If the project is public, then the user does not need to be authenticated. If the project is private, then the user must be authenticated and have `view` permissions for the project, or provide a valid project key for the project.

Headers


Content-Type

string

Required

Set to image/jpeg.


Authorization

string

Set to Bearer BENCHER_API_KEY, where BENCHER_API_KEY is a valid Bencher API key (or a deprecated API token).

Path Parameters


project
Required

The slug or UUID for a project.

Query Parameters


benchmarks

string

Required

A comma separated list of benchmark UUIDs to query. Only the first 64 benchmarks are queried.


branches

string

Required

A comma separated list of branch UUIDs to query. Only the first 64 branches are queried.


end_time

integer

Search for metrics before the given date time in milliseconds.


heads

string

An optional comma separated list of branch head UUIDs. To not specify a particular branch head leave an empty entry in the list.


measures

string

Required

A comma separated list of measure UUIDs to query. Only the first 64 measures are queried.


parameters

string

An optional comma separated list of URL encoded parameter sets to filter on. A variant is queried when at least one of them is a subset of its parameter set: every key the filter names, with the same value. Leaving this off queries every variant. Only the first 64 parameter sets are queried.


specs

string

An optional comma separated list of testbed spec UUIDs. To not specify a particular testbed spec leave an empty entry in the list.


start_time

integer

Search for metrics after the given date time in milliseconds. Defaults to four weeks before the end time, or four weeks before now when there is no end time.


testbeds

string

Required

A comma separated list of testbed UUIDs to query. Only the first 64 testbeds are queried.


title

string

The title for the perf plot. If not provided, the project name will be used.

GET
/v0/projects/{project}/perf/img
Bencher Cloudhttps://api.bencher.dev
Bencher Self-Hostedhttp://localhost:6610

View OpenAPI Spec


Published: Mon, February 12, 2024 at 7:26:00 AM UTC | Last Updated: Sat, May 9, 2026 at 12:00:00 AM UTC