[Yandex Cloud documentation](../index.md) > [Yandex Cloud Quota Manager](index.md) > Request examples

# Examples of requests for quota management

{% note info %}

To manage quota update requests via the CLI and API, contact [support](https://center.yandex.cloud/support).

{% endnote %}

To ensure your service always has critical resources available, monitor quota usage and request automatic quota increase. To do this, you can use the Yandex Cloud Quota Manager API or CLI.

## Getting started {#before-you-begin}

To use the examples:

{% list tabs group=instructions %}

- CLI {#cli}

  1. If you do not have the Yandex Cloud CLI yet, [install and initialize it](../cli/quickstart.md#install).

      The folder used by default is the one specified when [creating](../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

  1. Make sure the user or service account authenticated in the CLI profile has the following [roles](../iam/concepts/access-control/roles.md):

      * To get information about quotas: [quota-manager.viewer](security/index.md#quota-manager-viewer) or higher.
      * To create quota update requests:
      
          * At the [organization](../resource-manager/concepts/resources-hierarchy.md#cloud) level, [quota-manager.requestOperator](security/index.md#quota-manager-requestoperator) or higher, and [organization-manager.viewer](../organization/security/index.md#organization-manager-viewer) or higher.
          * At the cloud level, [resource-manager.viewer](../resource-manager/security/index.md#resource-manager-viewer) or higher.

- REST API {#api}

  1. Install [cURL](https://curl.haxx.se).
  1. [Create a service account](../iam/operations/sa/create.md) and [assign](../iam/operations/sa/assign-role-for-sa.md) it the following [roles](../iam/concepts/access-control/roles.md):

      * To get information about quotas: [quota-manager.viewer](security/index.md#quota-manager-viewer) or higher.
      * To create quota update requests:
      
          * At the [organization](../resource-manager/concepts/resources-hierarchy.md#cloud) level, [quota-manager.requestOperator](security/index.md#quota-manager-requestoperator) or higher, and [organization-manager.viewer](../organization/security/index.md#organization-manager-viewer) or higher.
          * At the cloud level, [resource-manager.viewer](../resource-manager/security/index.md#resource-manager-viewer) or higher.

  1. [Get an IAM token](../iam/operations/iam-token/create-for-sa.md) for the created service account.

- gRPC API {#grpc-api}

  1. Install the [gRPCurl](https://github.com/fullstorydev/grpcurl) utility.
  1. [Create a service account](../iam/operations/sa/create.md) and [assign](../iam/operations/sa/assign-role-for-sa.md) it the following [roles](../iam/concepts/access-control/roles.md):

      * To get information about quotas: [quota-manager.viewer](security/index.md#quota-manager-viewer) or higher.
      * To create quota update requests:
      
          * At the [organization](../resource-manager/concepts/resources-hierarchy.md#cloud) level, [quota-manager.requestOperator](security/index.md#quota-manager-requestoperator) or higher, and [organization-manager.viewer](../organization/security/index.md#organization-manager-viewer) or higher.
          * At the cloud level, [resource-manager.viewer](../resource-manager/security/index.md#resource-manager-viewer) or higher.

  1. [Get an IAM token](../iam/operations/iam-token/create-for-sa.md) for the created service account.

{% endlist %}

Below are examples of CLI and API requests and responses for quota management. The examples use the following parameters:

{% list tabs group=instructions %}

- CLI {#cli}

  * `--quota-id`: Quota ID. The examples use the `iam.accessKeys.count` ID representing the number of static access keys per cloud, an [Identity and Access Management](../iam/concepts/limits.md) quota.
  * `--resource-id`: Resource ID. The examples use a cloud ID. To run requests from the examples, specify your cloud [ID](../resource-manager/operations/cloud/get-id.md).
  * `--resource-type`: Resource type. The example uses `resource-manager.cloud`, i.e., cloud.
  * `--filter`: Filter expression. You can filter requests only by status.
  * `<request_ID>`: ID of your quota update request.

- API {#api}

  * `<IAM_token>` or `${IAM_TOKEN?}`: Service account's [IAM token](../iam/operations/iam-token/create-for-sa.md) or the environment variable containing the token.
  * `uuidgen -t`: Command for generating a request UUID to provide in the `X-Request-Id` header. Providing a UUID is optional, but it helps tracking a particular request in the system.
  * `quotaId`: Quota ID. The examples use the `iam.accessKeys.count` ID representing the number of static access keys per cloud, an [Identity and Access Management quota](../iam/concepts/limits.md).
  * `resourceId`: Resource ID. The examples use a cloud ID. To run requests from the examples, specify your cloud [ID](../resource-manager/operations/cloud/get-id.md).
  * `resourceType`: Resource type. The example uses `resource-manager.cloud`, i.e., cloud.
  * `<request_ID>`: ID of your quota update request.

{% endlist %}

## Viewing quota ID {#get-quota-id}

You can look up a specific quota's ID in [Yandex Cloud service quotas](all-quotas.md).

## Viewing quota value and usage info {#get-quota-info}

To view the quota value and usage info:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-limit get \
    --quota-id iam.accessKeys.count \
    --resource-id <cloud_ID> \
    --resource-type resource-manager.cloud
  ```

  In the output, you will get the quota value and usage info for the number of static access keys in the cloud:
  
  ```bash
  quota_id: iam.accessKeys.count
  limit: 1000
  usage: 27
  ```
  
  Where:
  
  * `limit`: Quota value.
  * `usage`: Quota usage.

- REST API {#api}

  Use the [Get](api-ref/QuotaLimit/get.md) REST API method for the [QuotaLimit](api-ref/QuotaLimit/index.md) resource.

  **Request example**

  ```bash
  curl \
    --request GET \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaLimits/iam.accessKeys.count?resource.id=<cloud_ID>&resource.type=resource-manager.cloud'
  ```

  **Response example**

  ```json
  {
    "quotaId": "iam.accessKeys.count",
    "limit": 1000,
    "usage": 34
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaLimitService/Get](api-ref/grpc/QuotaLimit/get.md) gRPC API call.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{ \"resource\": { \"id\": \"<cloud_ID>\", \"type\": \"resource-manager.cloud\" }, \"quota_id\": \"iam.accessKeys.count\"}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaLimitService/Get
  ```

  **Response example**

  ```json
  {
    "quotaId": "iam.accessKeys.count",
    "limit": 1000,
    "usage": 34
  }
  ```

{% endlist %}

## Viewing value and usage info for all quotas of the service {#get-quota-service}

To view the values and usage info for all quotas of the service:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:
  
  ```bash
  yc quota-manager quota-limit list \
    --service iam \
    --resource-type resource-manager.cloud \
    --resource-id <cloud_ID>
  ```

  In the output, you will get the IDs of the quotas in place in IAM within the cloud, their values ​and usage figures:
  
  ```text
  resource:
    id: b1gia87mbaom********
    type: resource-manager.cloud
  quota_limits:
    - quota_id: iam.accessKeys.count
      limit: 1001
      usage: 33
    - quota_id: iam.apiKeys.count
      limit: 1000
      usage: 14
    - quota_id: iam.authorizedKeys.count
      limit: 1000
      usage: 44
    ...
  ```

- REST API {#api}

  Use the [List](api-ref/QuotaLimit/list.md) REST API method for the [QuotaLimit](api-ref/QuotaLimit/index.md) resource.

  **Request example**

  ```bash
  curl \
    --request GET \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaLimits?service=iam&resource.id=<cloud_ID>&resource.type=resource-manager.cloud'
  ```

  **Response example**

  ```json
  {
    "resource": {
      "id": "b1gia87mbaom********",
      "type": "resource-manager.cloud"
    },
    "quotaLimits": [
      {
        "quotaId": "iam.accessKeys.count",
        "limit": 1000,
        "usage": 34
      },
      {
        "quotaId": "iam.apiKeys.count",
        "limit": 1000,
        "usage": 13
      },
      {
        "quotaId": "iam.authorizedKeys.count",
        "limit": 1000,
        "usage": 43
      },
      ...
    ]
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaLimitService/List](api-ref/grpc/QuotaLimit/list.md) gRPC API call.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{ \"resource\": { \"id\": \"<cloud_ID>\", \"type\": \"resource-manager.cloud\" }, \"service\": \"iam\"}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaLimitService/List
  ```

  **Response example**

  ```json
  {
    "resource": {
      "id": "b1gia87mbaom********",
      "type": "resource-manager.cloud"
    },
    "quotaLimits": [
      {
        "quotaId": "iam.accessKeys.count",
        "limit": 1000,
        "usage": 34
      },
      {
        "quotaId": "iam.apiKeys.count",
        "limit": 1000,
        "usage": 13
      },
      {
        "quotaId": "iam.authorizedKeys.count",
        "limit": 1000,
        "usage": 43
      },
      ...
    ]
  }
  ```

{% endlist %}

## Requesting quota updates {#request-quota-change}

To request a quota update, create a request and specify the IDs of resource quotas and their new values.

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-request create \
    --resource-id <cloud_ID> \
    --resource-type resource-manager.cloud \
    --desired-limit quota-id=compute.placementGroups.count,value=5 \
    --desired-limit quota-id=storage.buckets.count,value=30
  ```

  This will create a quota increase request:
  * In Compute Cloud: Number of VM placement groups (`compute.placementGroups.count`), the new value is `5`.
  * In Object Storage: Number of buckets (`storage.buckets.count`), the new value is `30`.

  **Response example**

  ```bash
  id: atdogfioseaq********
  resource:
    id: b1gia87mbaom********
    type: resource-manager.cloud
  created_at: "2025-09-11T08:24:24.142277Z"
  status: PENDING
  quota_limits:
    - quota_id: compute.placementGroups.count
      desired_limit: 5
      status: PROCESSING
    - quota_id: storage.buckets.count
      desired_limit: 30
      status: REJECTED
      message: quota value you are requesting is equal to that already in use
  created_by: ajegtlf2q28a********
  ```

- REST API {#api}

  Use the [Create](api-ref/QuotaRequest/create.md) REST API methods for the [QuotaRequest](api-ref/QuotaRequest/index.md) resource.

  **Request example**

  ```bash
  curl \
    --request POST \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    --data '{"resource": {"id": "<cloud_ID>", "type": "resource-manager.cloud"}, "desired_quota_limits": [{"quota_id": "iam.accessKeys.count", "desired_limit": "1001"}]}' \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaRequests'
  ```
  
  **Response example**

  ```json
  {
    "done": false,
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CreateQuotaRequestMetadata",
      "quotaRequestId": "atdogfioseaq********"
    },
    "id": "atdlsk0hjt6r********",
    "description": "Create quota request",
    "createdAt": "2025-09-01T08:39:37.195600077Z",
    "createdBy": "ajegtlf2q28a********",
    "modifiedAt": "2025-09-01T08:39:37.195600077Z"
  }
  ```
  
  The `false` operation status means your request is under review.

- gRPC API {#grpc-api}

  Use the [QuotaRequestService/Create](api-ref/grpc/QuotaRequest/create.md) gRPC API call.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{\"resource\": {\"id\": \"<cloud_ID>\", \"type\": \"resource-manager.cloud\"}, \"desired_quota_limits\": [{\"quota_id\": \"iam.accessKeys.count\", \"desired_limit\": \"1001\"}]}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaRequestService/Create
  ```
  
  **Response example**

  ```json
  {
    "id": "atdhrm4k26ar********",
    "description": "Create quota request",
    "createdAt": "2025-09-01T08:46:28.116514197Z",
    "createdBy": "ajegtlf2q28a********",
    "modifiedAt": "2025-09-01T08:46:28.116514197Z",
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CreateQuotaRequestMetadata",
      "quotaRequestId": "atdp0kd3799e********"
    }
  }
  ```

{% endlist %}

## Viewing a list of quota update requests {#list-quota-requests}

To view the list of quota update requests:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-request list \
    --resource-id <cloud_ID> \
    --resource-type resource-manager.cloud \
    --limit 1
  ```

  **Response example**

  ```bash
  quota_requests:
    - id: atdogfioseaq********
      resource:
        id: b1gia87mbaom********
        type: resource-manager.cloud
      created_at: "2025-09-11T08:24:24.142277Z"
      status: PENDING
      quota_limits:
        - quota_id: storage.buckets.count
          desired_limit: 30
          status: REJECTED
          message: quota value you are requesting is equal to that already in use
        - quota_id: compute.placementGroups.count
          desired_limit: 5
          status: PROCESSING
      created_by: ajegtlf2q28a********
  ```

- REST API {#api}

  Use the [List](api-ref/QuotaRequest/list.md) REST API method for the [QuotaRequest](api-ref/QuotaRequest/index.md) resource.

  **Request example**

  ```bash
  curl \
    --request GET \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaRequests?page_size=100&resource.id=<cloud_ID>&resource.type=resource-manager.cloud'
  ```

  **Response example**

  ```json
  {
    "quotaRequests": [
      {
        "resource": {
          "id": "b1gia87mbaom********",
          "type": "resource-manager.cloud"
        },
        "quotaLimits": [
          {
            "quotaId": "iam.accessKeys.count",
            "desiredLimit": 1001,
            "status": "PROCESSING"
          }
        ],
        "id": "atdp0kd3799e********",
        "createdAt": "2025-09-01T08:46:28.091109Z",
        "status": "PROCESSING",
        "createdBy": "ajegtlf2q28a********"
      },
      ...
    ]
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaRequestService/List](api-ref/grpc/QuotaRequest/list.md) gRPC API call.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{\"resource\": {\"id\": \"<cloud_ID>\", \"type\": \"resource-manager.cloud\"}}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaRequestService/List
  ```

  **Response example**

  ```json
  {
    "quotaRequests": [
      {
        "id": "atdp0kd3799e********",
        "resource": {
          "id": "b1gia87mbaom********",
          "type": "resource-manager.cloud"
        },
        "createdAt": "2025-09-01T08:46:28.091109Z",
        "status": "PROCESSING",
        "quotaLimits": [
          {
            "quotaId": "iam.accessKeys.count",
            "desiredLimit": 1001,
            "status": "PROCESSING"
          }
        ],
        "createdBy": "ajegtlf2q28a********"
      },
      ...
    ]
  }
  ```

{% endlist %}

## Viewing the status of a quota update request {#view-request-status}

To view the status of a quota update request:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-request get \
    --id <request_ID>
  ```

  **Response example**

  ```bash
  id: atdogfioseaq********
  resource:
    id: b1gia87mbaom********
    type: resource-manager.cloud
  created_at: "2025-09-11T08:24:24.142277Z"
  status: PENDING
  quota_limits:
    - quota_id: compute.placementGroups.count
      desired_limit: 5
      status: PROCESSING
    - quota_id: storage.buckets.count
      desired_limit: 30
      status: REJECTED
      message: quota value you are requesting is equal to that already in use
  created_by: ajegtlf2q28a********
  ```

- REST API {#api}

  Use the [Get](api-ref/QuotaRequest/get.md) REST API method for the [QuotaRequest](api-ref/QuotaRequest/index.md) resource. In your request, provide the ID of the quota update request whose information you want to view.

  **Request example**

  ```bash
  curl \
    --request GET \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaRequests/<request_ID>'
  ```

  **Response example (request pending)**

  ```json
  {
    "resource": {
      "id": "b1gia87mbaom********",
      "type": "resource-manager.cloud"
    },
    "quotaLimits": [
      {
        "quotaId": "iam.accessKeys.count",
        "desiredLimit": 1001,
        "status": "PROCESSING"
      }
    ],
    "id": "atdp0kd3799e********",
    "createdAt": "2025-09-01T08:46:28.091109Z",
    "status": "PENDING",
    "createdBy": "ajegtlf2q28a********"
  }
  ```

  **Response example (request canceled)**

  ```json
  {
    "resource": {
      "id": "b1gia87mbaom********",
      "type": "resource-manager.cloud"
    },
    "quotaLimits": [
      {
        "quotaId": "iam.accessKeys.count",
        "desiredLimit": 1001,
        "status": "CANCELED",
        "modifiedBy": "ajeol2afu1js********"
      }
    ],
    "id": "atd67f3m9k92********",
    "createdAt": "2025-09-01T11:48:31.847524Z",
    "status": "CANCELED",
    "createdBy": "ajeol2afu1js********"
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaRequestService/Get](api-ref/grpc/QuotaRequest/get.md) gRPC API call. In your request, provide the ID of the quota update request whose information you want to view.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{\"quota_request_id\": \"<request_ID>\"}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaRequestService/Get
  ```

  **Response example (request pending)**

  ```json
  {
    "id": "atdp0kd3799e********",
    "resource": {
      "id": "b1gia87mbaom********",
      "type": "resource-manager.cloud"
    },
    "createdAt": "2025-09-01T08:46:28.091109Z",
    "status": "PENDING",
    "quotaLimits": [
      {
        "quotaId": "iam.accessKeys.count",
        "desiredLimit": 1001,
        "status": "PROCESSING"
      }
    ],
    "createdBy": "ajegtlf2q28a********"
  }
  ```

  **Response example (request canceled)**

  ```json
  {
    "id": "atd67f3m9k92********",
    "resource": {
      "id": "b1gia87mbaom********",
      "type": "resource-manager.cloud"
    },
    "createdAt": "2025-09-01T11:48:31.847524Z",
    "status": "CANCELED",
    "quotaLimits": [
      {
        "quotaId": "iam.accessKeys.count",
        "desiredLimit": 1001,
        "status": "CANCELED",
        "modifiedBy": "ajeol2afu1js********"
      }
    ],
    "createdBy": "ajeol2afu1js********"
  }
  ```

{% endlist %}

## Viewing a list of requests filtered by status {#filter-list-quota-requests}

To view a list of requests filtered by status:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-request list \
    --resource-type resource-manager.cloud \
    --resource-id <cloud_ID> \
    --filter "status in ('CANCELED','PENDING')"
  ```

  In our example, the filter selects `CANCELED` or `PENDING` requests.

  **Response example**

  ```text
  quota_requests:
    - id: atdusk8qi57o********
      resource:
        id: b1gia87mbaom********
        type: resource-manager.cloud
      created_at: "2025-09-15T15:13:46.928383Z"
      status: PENDING
      quota_limits:
        - quota_id: iam.accessKeys.count
          desired_limit: 1015
          status: PROCESSING
      created_by: ajeol2afu1js********
    - id: atdb761kojdb********
      resource:
        id: b1gia87mbaom********
        type: resource-manager.cloud
      created_at: "2025-09-01T19:40:03.838651Z"
      status: CANCELED
      quota_limits:
        - quota_id: iam.accessKeys.count
          desired_limit: 1040
          status: CANCELED
          modified_by: ajegtlf2q28a********
      created_by: ajegtlf2q28a********
    - id: atd2od8goloa********
      resource:
        id: b1gia87mbaom********
        type: resource-manager.cloud
      created_at: "2025-09-01T19:26:47.312728Z"
      status: CANCELED
      quota_limits:
        - quota_id: iam.accessKeys.count
          desired_limit: 1030
          status: CANCELED
          modified_by: ajegtlf2q28a********
      created_by: ajegtlf2q28a********
    ...
  ```

- REST API {#api}

  Use the [List](api-ref/QuotaRequest/list.md) REST API method for the [QuotaRequest](api-ref/QuotaRequest/index.md) resource with the `filter` parameter. You can filter requests only by status.

  **Request example**

  ```bash
  curl \
    --request GET \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaRequests?page_size=1&resource.id=<cloud_ID>&resource.type=resource-manager.cloud&filter=status%20in%20(%27CANCELED%27%2C%20%27PENDING%27)&page_size=100'
  ```
  
  The filter selects `CANCELED` or `PENDING` requests.

  **Response example**
  
  ```json
  {
    "quotaRequests": [
      {
        "resource": {
          "id": "b1gia87mbaom********",
          "type": "resource-manager.cloud"
        },
        "quotaLimits": [
          {
            "quotaId": "iam.accessKeys.count",
            "desiredLimit": 1001,
            "status": "PROCESSING"
          }
        ],
        "id": "atdp0kd3799e********",
        "createdAt": "2025-09-01T08:46:28.091109Z",
        "status": "PENDING",
        "createdBy": "ajegtlf2q28a********"
      },
      {
        "resource": {
          "id": "b1gia87mbaom********",
          "type": "resource-manager.cloud"
        },
        "quotaLimits": [
          {
            "quotaId": "iam.accessKeys.count",
            "desiredLimit": 10000,
            "status": "CANCELED",
            "modifiedBy": "ajegtlf2q28a********"
          }
        ],
        "id": "atdg5kdelhfr********",
        "createdAt": "2025-08-25T15:30:03.773669Z",
        "status": "CANCELED",
        "createdBy": "ajegtlf2q28a********"
      },
      ...
    ]
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaRequestService/List](api-ref/grpc/QuotaRequest/list.md) gRPC API call with the `filter` parameter. You can filter requests only by status.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{\"resource\": {\"id\": \"<cloud_ID>\", \"type\": \"resource-manager.cloud\"}, \"filter\": \"status in ('CANCELED', 'PENDING')\"}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaRequestService/List
  ```
  
  The filter selects `CANCELED` or `PENDING` requests.

  **Response example**
  
  ```json
  {
    "quotaRequests": [
      {
        "id": "atdp0kd3799e********",
        "resource": {
          "id": "b1gia87mbaom********",
          "type": "resource-manager.cloud"
        },
        "createdAt": "2025-09-01T08:46:28.091109Z",
        "status": "PENDING",
        "quotaLimits": [
          {
            "quotaId": "iam.accessKeys.count",
            "desiredLimit": 1001,
            "status": "PROCESSING"
          }
        ],
        "createdBy": "ajegtlf2q28a********"
      },
      {
        "id": "atd9im7tcr89********",
        "resource": {
          "id": "b1gia87mbaom********",
          "type": "resource-manager.cloud"
        },
        "createdAt": "2025-09-01T17:24:01.580902Z",
        "status": "CANCELED",
        "quotaLimits": [
          {
            "quotaId": "iam.accessKeys.count",
            "desiredLimit": 10000,
            "status": "CANCELED",
            "modifiedBy": "ajegtlf2q28a********"
          }
        ],
        "createdBy": "ajegtlf2q28a********"
      },
      ...
    ]
  }
  ```

{% endlist %}

## Canceling a quota update request {#cancel-quota-request}

To cancel a quota update request:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-request cancel \
    --id <request_ID> \
    --quota-id iam.accessKeys.count
  ```

  **Response example**

  ```text
  id: atdusk8qi57o********
  resource:
    id: b1gia87mbaom********
    type: resource-manager.cloud
  created_at: "2025-09-15T15:13:46.928383Z"
  status: CANCELED
  quota_limits:
    - quota_id: iam.accessKeys.count
      desired_limit: 1015
      status: CANCELED
      modified_by: ajeol2afu1js********
  created_by: ajeol2afu1js********
  ```

- REST API {#api}

  Use the [Cancel](api-ref/QuotaRequest/cancel.md) REST API method for the [QuotaRequest](api-ref/QuotaRequest/index.md) resource. In your request, provide the ID of the quota update request you want to cancel.

  **Request example**

  ```bash
  curl \
    --request POST \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    --data "{\"quota_ids\": [ \"iam.accessKeys.count\" ]}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaRequests/<request_ID>/cancel'
  ```

  **Response example**
  
  ```json
  {
    "done": false,
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CancelQuotaRequestMetadata",
      "quotaRequestId": "atdandtanku3********"
    },
    "id": "atdu5jt4dtve********",
    "description": "Cancel quota request",
    "createdAt": "2025-09-01T12:28:43.805955898Z",
    "createdBy": "ajeol2afu1js********",
    "modifiedAt": "2025-09-01T12:28:43.805955898Z"
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaRequestService/Cancel](api-ref/grpc/QuotaRequest/cancel.md) gRPC API call. In your request, provide the ID of the quota update request you want to cancel.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{ \"quota_request_id\": \"<request_ID>\", \"quota_ids\": [ \"iam.accessKeys.count\" ]}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaRequestService/Cancel
  ```

  **Response example**
  
  ```json
  {
    "id": "atd6ervtiljj********",
    "description": "Cancel quota request",
    "createdAt": "2025-09-01T11:50:32.151491373Z",
    "createdBy": "ajeol2afu1js********",
    "modifiedAt": "2025-09-01T11:50:32.151491373Z",
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CancelQuotaRequestMetadata",
      "quotaRequestId": "atd67f3m9k92********"
    }
  }
  ```

{% endlist %}

## Viewing a list of operations for a quota update request {#list-operation-request}

To view a list of operations for a quota update request:

{% list tabs group=instructions %}

- CLI {#cli}

  Run this command:

  ```bash
  yc quota-manager quota-request list-operations \
    --id <request_ID>
  ```

  **Response example**

  ```text
  +----------------------+---------------------+----------------------+---------------------+--------+----------------------+
  |          ID          |     CREATED AT      |      CREATED BY      |     MODIFIED AT     | STATUS |     DESCRIPTION      |
  +----------------------+---------------------+----------------------+---------------------+--------+----------------------+
  | atds4r7oishc******** | 2025-09-15 15:23:07 | ajeol2afu1js******** | 2025-09-15 15:23:14 | DONE   | Cancel quota request |
  | atdg006longe******** | 2025-09-15 15:13:46 | ajeol2afu1js******** | 2025-09-15 15:14:01 | DONE   | Create quota request |
  +----------------------+---------------------+----------------------+---------------------+--------+----------------------+
  ```

- REST API {#api}

  Use the [ListOperations](api-ref/QuotaRequest/listOperations.md) REST API method for the [QuotaRequest](api-ref/QuotaRequest/index.md) resource. In your request, provide the ID of the quota update request whose operations list you want to view.

  **Request example**

  ```bash
  curl \
    --request GET \
    --header "X-Request-Id: $(uuidgen -t)" \
    --header "Authorization: Bearer ${IAM_TOKEN?}" \
    'https://quota-manager.api.cloud.yandex.net/quota-manager/v1/quotaRequests/<request_ID>/operations'
  ```

  **Response example**
  
  ```json
  {
    "operations": [
      {
        "done": true,
        "metadata": {
          "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CancelQuotaRequestMetadata",
          "quotaRequestId": "atd67f3m9k92********"
        },
        "response": {
          "@type": "type.googleapis.com/google.protobuf.Empty"
        },
        "id": "atd6ervtiljj********",
        "description": "Cancel quota request",
        "createdAt": "2025-09-01T11:50:32.151Z",
        "createdBy": "ajeol2afu1js********",
        "modifiedAt": "2025-09-01T11:50:41.792964295Z"
      },
      {
        "done": true,
        "metadata": {
          "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CreateQuotaRequestMetadata",
          "quotaRequestId": "atd67f3m9k92********"
        },
        "response": {
          "@type": "type.googleapis.com/google.protobuf.Empty"
        },
        "id": "atdb3g33v9a9********",
        "description": "Create quota request",
        "createdAt": "2025-09-01T11:48:31.880Z",
        "createdBy": "ajeol2afu1js********",
        "modifiedAt": "2025-09-01T11:48:47.971065163Z"
      }
    ]
  }
  ```

- gRPC API {#grpc-api}

  Use the [QuotaRequestService/ListOperations](api-ref/grpc/QuotaRequest/listOperations.md) gRPC API call. In your request, provide the ID of the quota update request whose operations list you want to view.

  **Request example**

  ```bash
  grpcurl \
    -H "X-Request-Id: $(uuidgen -t)" \
    -H "Authorization: Bearer ${IAM_TOKEN?}" \
    -d "{ \"quota_request_id\": \"<request_ID>\"}" \
    quota-manager.api.cloud.yandex.net:443 yandex.cloud.quotamanager.v1.QuotaRequestService/ListOperations
  ```

  **Response example**
  
  ```json
  {
    "operations": [
      {
        "id": "atd6ervtiljj********",
        "description": "Cancel quota request",
        "createdAt": "2025-09-01T11:50:32.151Z",
        "createdBy": "ajeol2afu1js********",
        "modifiedAt": "2025-09-01T11:50:41.792964295Z",
        "done": true,
        "metadata": {
          "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CancelQuotaRequestMetadata",
          "quotaRequestId": "atd67f3m9k92********"
        },
        "response": {
          "@type": "type.googleapis.com/google.protobuf.Empty",
          "value": {}
        }
      },
      {
        "id": "atdb3g33v9a9********",
        "description": "Create quota request",
        "createdAt": "2025-09-01T11:48:31.880Z",
        "createdBy": "ajeol2afu1js********",
        "modifiedAt": "2025-09-01T11:48:47.971065163Z",
        "done": true,
        "metadata": {
          "@type": "type.googleapis.com/yandex.cloud.quotamanager.v1.CreateQuotaRequestMetadata",
          "quotaRequestId": "atd67f3m9k92********"
        },
        "response": {
          "@type": "type.googleapis.com/google.protobuf.Empty",
          "value": {}
        }
      }
    ]
  }
  ```

{% endlist %}