Grafana Cloud k6 REST API
The Grafana Cloud k6 REST API provides programmatic access to test results.
Authentication
This API uses token-based authentication.
Make all requests with an Authorization:
HTTP header with value of Token <your-token>
.
GET https://api.k6.io/cloud/v5/projects
Authorization: Token 56c166885f9a7fc1e579a1b3cb66f6dd
Refer to Authenticate on the CLI to get your API token.
API reference
Root URL for the current API version is:
https://api.k6.io/cloud/v5
See following pages for reference on available endpoints:
API endpoints cheat sheet
The following sections provide some examples of common requests. Please consult reference pages for full descriptions of endpoints and parameters.
Read projects
List projects available to the user or organization token:
/projects
/projects?$top=10&$skip=10&$count=true&$orderby=name
/projects/:projectId
Read load tests
List load tests in a project and retrieve individual load test:
/projects/:projectId/load_tests
/projects/:projectId/load_tests?$top=10&$skip=10&$count=true&$orderby=created desc
/projects/:projectId/load_tests?$select=id,name,created
/load_tests/:loadTestId
/load_tests/:loadTestId?$select=id,name,created
Read test runs
List test runs for a particular load test and retrieve individual test run data:
/load_tests/:loadTestId/test_runs
/load_tests/:loadTestId/test_runs?$top=10&$skip=10&$count=true&$orderby=created desc
/test_runs/:testRunId?$select=id,created
Query test run aggregate values
Get the total number of HTTP requests made during the test run:
/test_runs/:testRunId/query_aggregate_k6(metric='http_reqs',query='increase')
Get the number of HTTP requests made within a specific time period:
/test_runs/:testRunId/query_aggregate_k6(metric='http_reqs',query='increase',start=2021-08-09T12:01:10Z,end=2021-08-09T12:09:13Z)
Get the 95th percentile of HTTP request response times, separated by URL, HTTP method, and HTTP status code:
/test_runs/:testRunId/query_aggregate_k6(metric='http_req_duration',query='historgam_quantile(0.95) by (name,method,status)')
Get the peak requests per second during the test run with 5 second precision, for requests with statuses 2xx and 3xx, separated by URL:
/test_runs/:testRunId/query_aggregate_k6(metric='http_reqs{status~="[23][0-9]{2}"}',query='max_rate(5) by (name)')
Get peak CPU usage of each instance during test run, averaged between instances:
/test_runs/:testRunId/query_aggregate_k6(metric='load_generator_cpu_percent',query='avg(max by (instance))')
Get peak simultaneous VUs during the test run:
/test_runs/:testRunId/query_aggregate_k6(metric='vus',query='sum(max by (instance_id))')
Query test run range values
Get a chart of simultaneous VUs during the test run:
/test_runs/:testRunId/query_range_k6(metric='vus',query='sum(last by (instance_id))')
Get a chart of requests per second:
/test_runs/:testRunId/query_range_k6(metric='http_reqs',query='rate')
Get a chart of requests per second, excluding network errors (where status
equals to "0"
), separated by URL and HTTP method:
/test_runs/:testRunId/query_range_k6(metric='http_reqs{status!="0"}',query='rate by (name,method)')
Get a chart of the 95th percentile of HTTP request response times, separated by URL, HTTP method, and HTTP status code, with 10 second resolution, and filtered for a specific time range:
/test_runs/:testRunId/query_range_k6(metric='http_req_duration',query='histogram_quantile(0.95) by (name,method,status)',step=10,start=2021-08-09T12:01:10Z,end=2021-08-09T12:09:13Z)