Project Reports REST API
List reports for a project
⚠️ 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.
List all reports for a project. 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. By default, the reports are sorted by date time in reverse chronological order. The HTTP response header `X-Total-Count` contains the total number of reports.
Headers
Content-Type string
Set to application/json.
Authorization string
Set to Bearer BENCHER_API_TOKEN, where BENCHER_API_TOKEN is a vaild Bencher API token.
Path Parameters
projectThe slug or UUID for a project.
Query Parameters
directionstring
The direction to sort by. If not specified, the default sort direction is used.
Default: asc
One of: asc, desc
pageinteger
The page number to return. If not specified, the first page is returned.
Default: 1
per_pageinteger
The number of items to return per page. If not specified, the default number of items per page (8) is used.
Default: 8
sortstring
The field to sort by. If not specified, the default sort field is used.
Default: date_time
One of: date_time
archivedboolean
If set to `true`, only return reports with an archived branch or testbed. If not set or set to `false`, only returns reports with non-archived branches and testbeds.
branchstring
Filter by branch UUID, slug, or name exact match.
end_timeinteger
Filter for reports before the given date time in milliseconds.
start_timeinteger
Filter for reports after the given date time in milliseconds.
testbedstring
Filter by testbed UUID, slug, or name exact match.
/v0/projects/{project}/reports | Bencher Cloud | https://api.bencher.dev |
| Bencher Self-Hosted | http://localhost:61016 |
Bencher CLI
bencher report list PROJECT View OpenAPI Spec
Create a report
⚠️ 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.
Create a report for a project. The user must have `create` permissions for the project. If using the Bencher CLI, it is recommended to use the `bencher run` subcommand instead of trying to create a report manually.
Headers
Content-Type string
Set to application/json.
Authorization string
Set to Bearer BENCHER_API_TOKEN, where BENCHER_API_TOKEN is a vaild Bencher API token.
Path Parameters
projectThe slug or UUID for a project.
Body Parameters
branchstring
Branch UUID, slug, or name. If the branch does not exist, it will be created.
end_timestring
End time for the report. Must be an ISO 8601 formatted string.
hashstring
Full `git` commit hash. All reports with the same `git` commit hash will be considered part of the same branch version. This can be useful for tracking the performance of a specific commit across multiple testbeds.
resultsarray of strings
An array of benchmarks results.
settingsobject
Settings for how to handle the report.
Properties of settings
adapterstring
The benchmark harness adapter for parsing the benchmark results. If no adapter is specified, then the Magic adapter will be used.
Default: magic
One of: magic, json, rust, rust_bench, rust_criterion, rust_iai, rust_gungraun, cpp, cpp_google, cpp_catch2, go, go_bench, java, java_jmh, c_sharp, c_sharp_dot_net, js, js_benchmark, js_time, python, python_asv, python_pytest, ruby, ruby_benchmark, shell, shell_hyperfine
averagestring
Benchmark harness suggested central tendency (ie average). Some benchmarking harnesses provide multiple averages, such as mean and median.
One of: mean, median
foldstring
Fold multiple results into a single result using the selected operation. This can be useful for taking the min, max, mean, or median of the benchmark results.
One of: min, max, mean, median
start_pointobject
The start point for the report branch. If the branch does not exist, the start point will be used to create a new branch. If the branch already exists and the start point is not provided, the current branch will be used. If the branch already exists and the start point provided is different, a new branch head will be created from the new start point. If a new branch or new branch head is created with a start point, historical branch versions from the start point branch will be shallow copied over to the new branch. That is, historical metrics data for the start point branch will appear in queries for the branch. For example, pull request branches often use their base branch as their start point branch. If a new branch is created, it is not kept in sync with the start point branch.
Properties of start_point
branchstring
The UUID, slug, or name of the branch to use as the start point.
clone_thresholdsboolean
If set to `true`, the thresholds from the start point branch will be deep copied to the branch. This can be useful for pull request branches that should have the same thresholds as their target branch. Requires the `branch` field to be set.
hashstring
The full git hash of the branch to use as the start point. Requires the `branch` field to be set.
max_versionsinteger
The maximum number of historical branch versions to include. Versions beyond this number will be omitted. The default is 255. Requires the `branch` field to be set.
resetboolean
Reset the branch head to an empty state. If the start point `branch` is specified, the new branch head will begin at that start point. Otherwise, the branch head will be reset to an empty state.
start_timestring
Start time for the report. Must be an ISO 8601 formatted string.
testbedstring
Testbed UUID, slug, or name. If the testbed does not exist, it will be created.
thresholdsobject
Thresholds to use for the branch, testbed, and measures in the report. If a threshold does not exist, it will be created. If a threshold exists and the model is different, it will be updated with the new model. If a measure name or slug is provided, the measure will be created if it does not exist.
Properties of thresholds
modelsobject
Map of measure UUID, slug, or name to the threshold model to use. If a measure name or slug is provided, the measure will be created if it does not exist.
See the Thresholds documentation for a full overview.
resetboolean
Reset all thresholds for the branch and testbed. Any models present in the `models` field will still be updated accordingly. If a threshold already exists and is not present in the `models` field, its current model will be removed.
/v0/projects/{project}/reports | Bencher Cloud | https://api.bencher.dev |
| Bencher Self-Hosted | http://localhost:61016 |
Bencher CLI
bencher report create PROJECT View OpenAPI Spec
View a report
⚠️ 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.
View a report for a project. 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.
Headers
Content-Type string
Set to application/json.
Authorization string
Set to Bearer BENCHER_API_TOKEN, where BENCHER_API_TOKEN is a vaild Bencher API token.
Path Parameters
projectThe slug or UUID for a project.
reportstring
The UUID for a report.
/v0/projects/{project}/reports/{report} | Bencher Cloud | https://api.bencher.dev |
| Bencher Self-Hosted | http://localhost:61016 |
Bencher CLI
bencher report view PROJECT REPORT View OpenAPI Spec
Delete a report
⚠️ 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.
Delete a report for a project. The user must have `delete` permissions for the project. If there are no more reports for a branch version, then that version will be deleted. All later branch versions will have their version numbers decremented.
Headers
Content-Type string
Set to application/json.
Authorization string
Set to Bearer BENCHER_API_TOKEN, where BENCHER_API_TOKEN is a vaild Bencher API token.
Path Parameters
projectThe slug or UUID for a project.
reportstring
The UUID for a report.
/v0/projects/{project}/reports/{report} | Bencher Cloud | https://api.bencher.dev |
| Bencher Self-Hosted | http://localhost:61016 |
Bencher CLI
bencher report delete PROJECT REPORT View OpenAPI Spec