---
title: "Projects REST API | Grafana Cloud documentation"
description: "Projects REST API Note The documentation for this API is also available as an OpenAPI description. List limits for all projects GET /cloud/v6/project-limits"
---

# Projects REST API

> Note
> 
> The documentation for this API is also available as an [OpenAPI description](https://editor-next.swagger.io/?url=https%3A%2F%2Fapi.k6.io%2Fcloud%2Fv6%2Fopenapi).

## List limits for all projects

`GET /cloud/v6/project-limits`

List limits for all projects.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`$count`Include collection length in the response object as `@count`.`query``false``boolean`

`$skip`The initial index from which to return the results.`query``false``integer`

`$top`Number of results to return per page.  
Default: `1000`  
Maximum: `1000``query``false``integer`

`project_id_in`Filter results by project ID (comma-separated list of IDs).`query``false``Array[integer]`

#### `200` response

OK.

##### Content types: `application/json`

`ProjectLimitsListResponse` properties:

| Name        | Description                                                                                                             | Required | Type                           |
|-------------|-------------------------------------------------------------------------------------------------------------------------|----------|--------------------------------|
| `@count`    | Object count in the collection.                                                                                         | `false`  | `integer`                      |
| `@nextLink` | A reference to the next page of results. The property is included until there are no more pages of results to retrieve. | `false`  | `string` , format: `uri`       |
| `value`     | List of the resulting values.                                                                                           | `true`   | `Array[ProjectLimitsApiModel]` |

`ProjectLimitsApiModel` properties:

| Name                      | Description                                                            | Required | Type                |
|---------------------------|------------------------------------------------------------------------|----------|---------------------|
| `duration_max_per_test`   | Max duration of a test in seconds.                                     | `true`   | `integer` \| `null` |
| `project_id`              | ID of the related project.                                             | `true`   | `integer`           |
| `vu_browser_max_per_test` | Max number of concurrent browser virtual users (VUs) used in one test. | `true`   | `integer` \| `null` |
| `vu_max_per_test`         | Max number of concurrent virtual users (VUs) used in one test.         | `true`   | `integer` \| `null` |
| `vuh_max_per_month`       | Max amount of virtual user hours (VUH) used per one calendar month.    | `true`   | `integer` \| `null` |

##### OK example

```json
{
  "@count": 123,
  "@nextLink": "https://api.k6.io/cloud/v6/project-limits?$skip=50\u0026$top=20",
  "value": [
    {
      "duration_max_per_test": 600,
      "project_id": 123,
      "vu_browser_max_per_test": 5,
      "vu_max_per_test": null,
      "vuh_max_per_month": 50
    }
  ]
}
```

#### `400` response

Request validation error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## List all projects

`GET /cloud/v6/projects`

List all available projects.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`$count`Include collection length in the response object as `@count`.`query``false``boolean`

`$orderby`

Comma-separated list of fields to use when ordering the results. Available fields:

- created
- name

The default ascending order can be reversed by appending the `desc` specifier.

`query``false``string`

`$skip`The initial index from which to return the results.`query``false``integer`

`$top`Number of results to return per page.  
Default: `1000`  
Maximum: `1000``query``false``integer`

`name`Filter results by project name (exact match).`query``false``string`

`name_search`Search projects by name.`query``false``string`

#### `200` response

OK.

##### Content types: `application/json`

`ProjectListResponse` properties:

| Name        | Description                                                                                                             | Required | Type                     |
|-------------|-------------------------------------------------------------------------------------------------------------------------|----------|--------------------------|
| `@count`    | Object count in the collection.                                                                                         | `false`  | `integer`                |
| `@nextLink` | A reference to the next page of results. The property is included until there are no more pages of results to retrieve. | `false`  | `string` , format: `uri` |
| `value`     | List of the resulting values.                                                                                           | `true`   | `Array[ProjectApiModel]` |

`ProjectApiModel` properties:

| Name                 | Description                                                                            | Required | Type                           |
|----------------------|----------------------------------------------------------------------------------------|----------|--------------------------------|
| `created`            | The date when the project was created.                                                 | `true`   | `string` , format: `date-time` |
| `grafana_folder_uid` | Grafana folder UID.                                                                    | `true`   | `string` \| `null`             |
| `id`                 | Project ID.                                                                            | `true`   | `integer`                      |
| `is_default`         | Use this project as default for running tests when no explicit project ID is provided. | `true`   | `boolean`                      |
| `labels`             | Project labels.                                                                        | `false`  | `object`                       |
| `name`               | Project name.                                                                          | `true`   | `string`                       |
| `updated`            | The date when the project was last updated.                                            | `true`   | `string` , format: `date-time` |

##### OK example

```json
{
  "@count": 123,
  "@nextLink": "https://api.k6.io/cloud/v6/projects?$skip=50\u0026$top=20",
  "value": [
    {
      "created": "2024-12-04T19:57:46.339Z",
      "grafana_folder_uid": "de0chath6zxfkb",
      "id": 123,
      "is_default": false,
      "name": "My Project",
      "updated": "2024-12-04T19:57:46.339Z"
    }
  ]
}
```

#### `400` response

Request validation error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## Create a project

`POST /cloud/v6/projects`

Create a new project.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

#### Request body

##### Content types: `application/json`

`CreateProjectApiModel` properties:

| Name   | Description   | Required | Type     |
|--------|---------------|----------|----------|
| `name` | Project name. | `true`   | `string` |

##### Create example

```json
{
  "name": "My Project"
}
```

#### `201` response

OK.

##### Content types: `application/json`

`ProjectApiModel` properties:

| Name                 | Description                                                                            | Required | Type                           |
|----------------------|----------------------------------------------------------------------------------------|----------|--------------------------------|
| `created`            | The date when the project was created.                                                 | `true`   | `string` , format: `date-time` |
| `grafana_folder_uid` | Grafana folder UID.                                                                    | `true`   | `string` \| `null`             |
| `id`                 | Project ID.                                                                            | `true`   | `integer`                      |
| `is_default`         | Use this project as default for running tests when no explicit project ID is provided. | `true`   | `boolean`                      |
| `labels`             | Project labels.                                                                        | `false`  | `object`                       |
| `name`               | Project name.                                                                          | `true`   | `string`                       |
| `updated`            | The date when the project was last updated.                                            | `true`   | `string` , format: `date-time` |

##### OK example

```json
{
  "created": "2024-12-04T19:57:46.339Z",
  "grafana_folder_uid": "de0chath6zxfkb",
  "id": 123,
  "is_default": false,
  "name": "My Project",
  "updated": "2024-12-04T19:57:46.339Z"
}
```

#### `400` response

Request validation error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `409` response

Project name is already in use or maximum number of projects (1000) reached.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## Get a project by ID

`GET /cloud/v6/projects/{id}`

Retrieve a single project.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`id`ID of the project.`path``true``integer`

#### `200` response

OK.

##### Content types: `application/json`

`ProjectApiModel` properties:

| Name                 | Description                                                                            | Required | Type                           |
|----------------------|----------------------------------------------------------------------------------------|----------|--------------------------------|
| `created`            | The date when the project was created.                                                 | `true`   | `string` , format: `date-time` |
| `grafana_folder_uid` | Grafana folder UID.                                                                    | `true`   | `string` \| `null`             |
| `id`                 | Project ID.                                                                            | `true`   | `integer`                      |
| `is_default`         | Use this project as default for running tests when no explicit project ID is provided. | `true`   | `boolean`                      |
| `labels`             | Project labels.                                                                        | `false`  | `object`                       |
| `name`               | Project name.                                                                          | `true`   | `string`                       |
| `updated`            | The date when the project was last updated.                                            | `true`   | `string` , format: `date-time` |

##### OK example

```json
{
  "created": "2024-12-04T19:57:46.339Z",
  "grafana_folder_uid": "de0chath6zxfkb",
  "id": 123,
  "is_default": false,
  "name": "My Project",
  "updated": "2024-12-04T19:57:46.339Z"
}
```

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `404` response

Resource not found.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## Delete a project

`DELETE /cloud/v6/projects/{id}`

Delete a project.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`id`ID of the project.`path``true``integer`

#### `204` response

OK.

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `404` response

Resource not found.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `409` response

Cannot delete project with a running test.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## Update a project

`PATCH /cloud/v6/projects/{id}`

Update a project.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`id`ID of the project.`path``true``integer`

#### Request body

##### Content types: `application/json`

`PatchProjectApiModel` properties:

| Name   | Description   | Required | Type     |
|--------|---------------|----------|----------|
| `name` | Project name. | `true`   | `string` |

##### Update example

```json
{
  "name": "New Project Name"
}
```

#### `204` response

OK.

#### `400` response

Request validation error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `404` response

Resource not found.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `409` response

Project name is already in use.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## Get project limits

`GET /cloud/v6/projects/{id}/limits`

Fetch limits for a project.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`id`ID of the project.`path``true``integer`

#### `200` response

OK.

##### Content types: `application/json`

`ProjectLimitsApiModel` properties:

| Name                      | Description                                                            | Required | Type                |
|---------------------------|------------------------------------------------------------------------|----------|---------------------|
| `duration_max_per_test`   | Max duration of a test in seconds.                                     | `true`   | `integer` \| `null` |
| `project_id`              | ID of the related project.                                             | `true`   | `integer`           |
| `vu_browser_max_per_test` | Max number of concurrent browser virtual users (VUs) used in one test. | `true`   | `integer` \| `null` |
| `vu_max_per_test`         | Max number of concurrent virtual users (VUs) used in one test.         | `true`   | `integer` \| `null` |
| `vuh_max_per_month`       | Max amount of virtual user hours (VUH) used per one calendar month.    | `true`   | `integer` \| `null` |

##### OK example

```json
{
  "duration_max_per_test": 600,
  "project_id": 123,
  "vu_browser_max_per_test": 5,
  "vu_max_per_test": null,
  "vuh_max_per_month": 50
}
```

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `404` response

Resource not found.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

## Update project limits

`PATCH /cloud/v6/projects/{id}/limits`

Update limits for a project.

Set a limit to `null` to remove it.

#### Request parameters

NameDescriptionInRequiredType

`X-Stack-Id`

Numeric ID of the Grafana stack representing the request scope.

- If the API is called with a *Personal API token*, the user must be a member of the specified stack.
- If the API is called with a *Grafana Stack API token*, the value must be the ID of the corresponding stack.

`header``true``integer`

`id`ID of the project.`path``true``integer`

#### Request body

##### Content types: `application/json`

`PatchProjectLimitsRequest` properties:

| Name                      | Description                                                            | Required | Type                |
|---------------------------|------------------------------------------------------------------------|----------|---------------------|
| `duration_max_per_test`   | Max duration of a test in seconds.                                     | `false`  | `integer` \| `null` |
| `vu_browser_max_per_test` | Max number of concurrent browser virtual users (VUs) used in one test. | `false`  | `integer` \| `null` |
| `vu_max_per_test`         | Max number of concurrent virtual users (VUs) used in one test.         | `false`  | `integer` \| `null` |
| `vuh_max_per_month`       | Max amount of virtual user hours (VUH) used per one calendar month.    | `false`  | `integer` \| `null` |

##### RemoveAll example

```json
{
  "duration_max_per_test": null,
  "vu_browser_max_per_test": null,
  "vu_max_per_test": null,
  "vuh_max_per_month": null
}
```

##### RemoveSingle example

```json
{
  "duration_max_per_test": null
}
```

##### UpdateAll example

```json
{
  "duration_max_per_test": 600,
  "vu_browser_max_per_test": 5,
  "vu_max_per_test": 20,
  "vuh_max_per_month": 50
}
```

##### UpdateSingle example

```json
{
  "vuh_max_per_month": 55
}
```

#### `204` response

OK.

#### `400` response

Request validation error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `401` response

Invalid token or authentication scheme.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `403` response

The user does not have permission to perform this action.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `404` response

Resource not found.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |

#### `500` response

Unexpected error.

##### Content types: `application/json`

`ErrorResponseApiModel` properties:

| Name    | Description | Required | Type            |
|---------|-------------|----------|-----------------|
| `error` |             | `true`   | `ErrorApiModel` |

Details of the error.

`ErrorApiModel` properties:

| Name      | Description                                                                                  | Required | Type               |
|-----------|----------------------------------------------------------------------------------------------|----------|--------------------|
| `code`    | Service-defined error code.                                                                  | `true`   | `string`           |
| `details` | Array of objects with more specific error information when applicable.                       | `false`  | `array` \| `null`  |
| `message` | Human-readable string describing the error.                                                  | `true`   | `string`           |
| `target`  | A string indicating the target of the error. For example, the name of the property in error. | `false`  | `string` \| `null` |
