--- title: "Edit Canary" slug: "apigateway-canarytest-change" updated: 2026-09-17T09:35:44Z published: 2026-09-17T09:35:44Z canonical: "api.ncloud-docs.com/apigateway-canarytest-change" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Edit Canary Available in Classic and VPC Edit enabled Canary settings. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | PATCH | /api/v1/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary | ### Request headers For information about the headers common to all API Gateways, see [API Gateway request headers](/docs/en/ai-application-service-apigateway#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `product-id` | String | Required | Product ID connected to the API - 1-10 characters | | `api-id` | String | Required | API ID generated in the product - 1-10 characters | | `stage-id` | String | Required | Stage ID generated in the API - 1-10 characters | ### Request syntax The request syntax is as follows: ``` { "canaryCacheTtlSec" : 0, "useDistributionRate" : true, "canaryConditions" : [ { "parameterName" : "parameterName", "parameterCode" : "REQUEST_HEADER", "parameterValue" : "parameterValue" } ], "canaryEndpointDomain" : "canaryEndpointDomain", "canaryThrottleRps" : 0, "canaryDistributionRate" : 0 } ``` ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `canaryCacheTtlSec` | String | Optional | Seconds to keep the cache (sec) - 1-3600 | | `useDistributionRate` | Boolean | Required | Determine how to distribute requests to Stage and Canary. - `true` \| `false` - `true`: Percentage distribution method (Specify the execution rate of Canary requests.) - `false`: Condition distribution method (Execute Canary requests when they match the specified headers and query strings.) | | `canaryConditions` | Array | Conditional | Canary test request information: [canaryConditions](/docs/en/apigateway-canarytest-change#canaryConditions) - Required if `useDistributionRate` is `false` | | `canaryEndpointDomain` | String | Required | Set up Canary's endpoint domain. | | `canaryThrottleRps` | String | Optional | Number of requests per second to limit per registered method to protect the backend server | | `canaryDistributionRate` | Float | Conditional | Execution rate of Canary requests - Required if `useDistributionRate` is `true` | #### `canaryConditions` The following describes `canaryConditions`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `parameterName` | String | Conditional | Parameter name - Required if `useDistributionRate` is `false` | | `parameterCode` | String | Conditional | Parameter type - `REQUEST_HEADER` \| `REQUEST_QUERY` - `REQUEST_HEADER`: Header type parameter - `REQUEST_QUERY`: Query type parameter - Required if `useDistributionRate` is `false` | | `parameterValue` | String | Conditional | Parameter request value - Required if `useDistributionRate` is `false` | ### Request example The request example is as follows: ``` curl -X PATCH 'https://apigateway.apigw.ntruss.com/api/v1/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary' \ --header 'Content-Type: application/json' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --data '{ "canaryCacheTtlSec" : 0, "useDistributionRate" : true, "canaryConditions" : [ { "parameterName" : "parameter-***", "parameterCode" : "REQUEST_HEADER", "parameterValue" : "*****" } ], "canaryEndpointDomain" : "canaryEndpointDomain", "canaryThrottleRps" : 6, "canaryDistributionRate" : 1.4658129 }' ``` ## Response This section describes the response format. ### Response syntax The response syntax is as follows: ``` { "stageId": "stageId", "canaryCertificateId": "canaryCertificateId", "canaryDeploymentNo": 0, "canaryDistributionRate": 0.0, "canaryCacheTtlSec": 0, "canaryThrottleRps": 0, "canaryEndpointDomain": "canaryEndpointDomain", "canaryDeployedTime": "2024-05-08T09:46:57.364Z", "canaryDeploymentDescription": "canaryDeploymentDescription", "deployedStageDeploymentNo": 0, "useDistributionRate": true, "canaryConditions": [ { "parameterCode": "parameterCode", "parameterName": "parameterName", "parameterValue": "parameterValue" } ] } ``` ### Response status codes For information about the HTTP status codes common to all API Gateways, see [API Gateway response status codes](/docs/en/ai-application-service-apigateway#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "stageId": "*****7mhdv", "canaryCertificateId": "", "canaryDeploymentNo": 251437, "canaryDistributionRate": 1.4658129, "canaryCacheTtlSec": 1, "canaryThrottleRps": 6, "canaryEndpointDomain": "NONE", "canaryDeployedTime": "2024-05-08T09:46:57.364Z", "canaryDeploymentDescription": "", "deployedStageDeploymentNo": 251381, "useDistributionRate": true, "canaryConditions": [ { "parameterCode": "REQUEST_HEADER", "parameterName": "****", "parameterValue": "****" } ] } ```