# Update a gRPC Monitor - Checkly Docs

> Updates a gRPC monitor.

Source: https://www.checklyhq.com/docs/api-reference/monitors/update-a-grpc-monitor/

---

Update a gRPC Monitor

```
curl --request PUT \
--url https://api.checklyhq.com/v1/checks/grpc/{id} \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data '
{
"name": " ",
"activated": true,
"muted": true,
"doubleCheck": true,
"shouldFail": true,
"locations": [],
"tags": [
" "
],
"alertSettings": {
"reminders": {},
"sslCertificates": {
"enabled": true,
"alertThreshold": 123
},
"runBasedEscalation": {},
"timeBasedEscalation": {},
"parallelRunFailureThreshold": {
"enabled": true
}
},
"useGlobalAlertSettings": true,
"groupId": 123,
"groupOrder": 1,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": true
}
],
"retryStrategy": {
"baseBackoffSeconds": 123,
"sameRegion": true,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": [
"NETWORK_ERROR"
]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": true
},
"runParallel": true,
"description": " ",
"intent": {
"goal": " ",
"requiredOutcomes": [],
"mustPreserve": []
},
"aiAutoRepairEnabled": true,
"checkType": "GRPC",
"frequencyOffset": 2,
"heartbeat": {},
"script": " ",
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": true,
"secret": true
}
],
"setupSnippetId": 123,
"tearDownSnippetId": 123,
"localSetupScript": " ",
"localTearDownScript": " ",
"degradedResponseTime": 90000,
"maxResponseTime": 90000,
"privateLocations": [
" "
]
}
'
```

```
import requests

url = "https://api.checklyhq.com/v1/checks/grpc/{id}"

payload = {
"name": " ",
"activated": True,
"muted": True,
"doubleCheck": True,
"shouldFail": True,
"locations": [],
"tags": [" "],
"alertSettings": {
"reminders": {},
"sslCertificates": {
"enabled": True,
"alertThreshold": 123
},
"runBasedEscalation": {},
"timeBasedEscalation": {},
"parallelRunFailureThreshold": { "enabled": True }
},
"useGlobalAlertSettings": True,
"groupId": 123,
"groupOrder": 1,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": True
}
],
"retryStrategy": {
"baseBackoffSeconds": 123,
"sameRegion": True,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": ["NETWORK_ERROR"]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": True
},
"runParallel": True,
"description": " ",
"intent": {
"goal": " ",
"requiredOutcomes": [],
"mustPreserve": []
},
"aiAutoRepairEnabled": True,
"checkType": "GRPC",
"frequencyOffset": 2,
"heartbeat": {},
"script": " ",
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": True,
"secret": True
}
],
"setupSnippetId": 123,
"tearDownSnippetId": 123,
"localSetupScript": " ",
"localTearDownScript": " ",
"degradedResponseTime": 90000,
"maxResponseTime": 90000,
"privateLocations": [" "]
}
headers = {
"Authorization": "Bearer ",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
```

```
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: ' ',
activated: true,
muted: true,
doubleCheck: true,
shouldFail: true,
locations: [],
tags: [' '],
alertSettings: {
reminders: {},
sslCertificates: {enabled: true, alertThreshold: 123},
runBasedEscalation: {},
timeBasedEscalation: {},
parallelRunFailureThreshold: {enabled: true}
},
useGlobalAlertSettings: true,
groupId: 123,
groupOrder: 1,
alertChannelSubscriptions: [{alertChannelId: 123, activated: true}],
retryStrategy: {
baseBackoffSeconds: 123,
sameRegion: true,
maxRetries: 5.5,
maxDurationSeconds: 300,
onlyOn: ['NETWORK_ERROR']
},
triggerIncident: {
serviceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: ' ',
description: ' ',
notifySubscribers: true
},
runParallel: true,
description: ' ',
intent: {goal: ' ', requiredOutcomes: [], mustPreserve: []},
aiAutoRepairEnabled: true,
checkType: 'GRPC',
frequencyOffset: 2,
heartbeat: {},
script: ' ',
scriptPath: ' ',
sslCheckDomain: ' ',
environmentVariables: [{key: ' ', value: ' ', locked: true, secret: true}],
setupSnippetId: 123,
tearDownSnippetId: 123,
localSetupScript: ' ',
localTearDownScript: ' ',
degradedResponseTime: 90000,
maxResponseTime: 90000,
privateLocations: [' ']
})
};

fetch('https://api.checklyhq.com/v1/checks/grpc/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
```

```
"https://api.checklyhq.com/v1/checks/grpc/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => ' ',
'activated' => true,
'muted' => true,
'doubleCheck' => true,
'shouldFail' => true,
'locations' => [

],
'tags' => [
' '
],
'alertSettings' => [
'reminders' => [

],
'sslCertificates' => [
'enabled' => true,
'alertThreshold' => 123
],
'runBasedEscalation' => [

],
'timeBasedEscalation' => [

],
'parallelRunFailureThreshold' => [
'enabled' => true
]
],
'useGlobalAlertSettings' => true,
'groupId' => 123,
'groupOrder' => 1,
'alertChannelSubscriptions' => [
[
'alertChannelId' => 123,
'activated' => true
]
],
'retryStrategy' => [
'baseBackoffSeconds' => 123,
'sameRegion' => true,
'maxRetries' => 5.5,
'maxDurationSeconds' => 300,
'onlyOn' => [
'NETWORK_ERROR'
]
],
'triggerIncident' => [
'serviceId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => ' ',
'description' => ' ',
'notifySubscribers' => true
],
'runParallel' => true,
'description' => ' ',
'intent' => [
'goal' => ' ',
'requiredOutcomes' => [

],
'mustPreserve' => [

]
],
'aiAutoRepairEnabled' => true,
'checkType' => 'GRPC',
'frequencyOffset' => 2,
'heartbeat' => [

],
'script' => ' ',
'scriptPath' => ' ',
'sslCheckDomain' => ' ',
'environmentVariables' => [
[
'key' => ' ',
'value' => ' ',
'locked' => true,
'secret' => true
]
],
'setupSnippetId' => 123,
'tearDownSnippetId' => 123,
'localSetupScript' => ' ',
'localTearDownScript' => ' ',
'degradedResponseTime' => 90000,
'maxResponseTime' => 90000,
'privateLocations' => [
' '
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer ",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
```

```
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.checklyhq.com/v1/checks/grpc/{id}"

payload := strings.NewReader("{\n \"name\": \" \",\n \"activated\": true,\n \"muted\": true,\n \"doubleCheck\": true,\n \"shouldFail\": true,\n \"locations\": [],\n \"tags\": [\n \" \"\n ],\n \"alertSettings\": {\n \"reminders\": {},\n \"sslCertificates\": {\n \"enabled\": true,\n \"alertThreshold\": 123\n },\n \"runBasedEscalation\": {},\n \"timeBasedEscalation\": {},\n \"parallelRunFailureThreshold\": {\n \"enabled\": true\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": 123,\n \"groupOrder\": 1,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 123,\n \"sameRegion\": true,\n \"maxRetries\": 5.5,\n \"maxDurationSeconds\": 300,\n \"onlyOn\": [\n \"NETWORK_ERROR\"\n ]\n },\n \"triggerIncident\": {\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \" \",\n \"description\": \" \",\n \"notifySubscribers\": true\n },\n \"runParallel\": true,\n \"description\": \" \",\n \"intent\": {\n \"goal\": \" \",\n \"requiredOutcomes\": [],\n \"mustPreserve\": []\n },\n \"aiAutoRepairEnabled\": true,\n \"checkType\": \"GRPC\",\n \"frequencyOffset\": 2,\n \"heartbeat\": {},\n \"script\": \" \",\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": true,\n \"secret\": true\n }\n ],\n \"setupSnippetId\": 123,\n \"tearDownSnippetId\": 123,\n \"localSetupScript\": \" \",\n \"localTearDownScript\": \" \",\n \"degradedResponseTime\": 90000,\n \"maxResponseTime\": 90000,\n \"privateLocations\": [\n \" \"\n ]\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("Authorization", "Bearer ")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
```

```
HttpResponse response = Unirest.put("https://api.checklyhq.com/v1/checks/grpc/{id}")
.header("Authorization", "Bearer ")
.header("Content-Type", "application/json")
.body("{\n \"name\": \" \",\n \"activated\": true,\n \"muted\": true,\n \"doubleCheck\": true,\n \"shouldFail\": true,\n \"locations\": [],\n \"tags\": [\n \" \"\n ],\n \"alertSettings\": {\n \"reminders\": {},\n \"sslCertificates\": {\n \"enabled\": true,\n \"alertThreshold\": 123\n },\n \"runBasedEscalation\": {},\n \"timeBasedEscalation\": {},\n \"parallelRunFailureThreshold\": {\n \"enabled\": true\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": 123,\n \"groupOrder\": 1,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 123,\n \"sameRegion\": true,\n \"maxRetries\": 5.5,\n \"maxDurationSeconds\": 300,\n \"onlyOn\": [\n \"NETWORK_ERROR\"\n ]\n },\n \"triggerIncident\": {\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \" \",\n \"description\": \" \",\n \"notifySubscribers\": true\n },\n \"runParallel\": true,\n \"description\": \" \",\n \"intent\": {\n \"goal\": \" \",\n \"requiredOutcomes\": [],\n \"mustPreserve\": []\n },\n \"aiAutoRepairEnabled\": true,\n \"checkType\": \"GRPC\",\n \"frequencyOffset\": 2,\n \"heartbeat\": {},\n \"script\": \" \",\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": true,\n \"secret\": true\n }\n ],\n \"setupSnippetId\": 123,\n \"tearDownSnippetId\": 123,\n \"localSetupScript\": \" \",\n \"localTearDownScript\": \" \",\n \"degradedResponseTime\": 90000,\n \"maxResponseTime\": 90000,\n \"privateLocations\": [\n \" \"\n ]\n}")
.asString();
```

```
require 'uri'
require 'net/http'

url = URI("https://api.checklyhq.com/v1/checks/grpc/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer '
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \" \",\n \"activated\": true,\n \"muted\": true,\n \"doubleCheck\": true,\n \"shouldFail\": true,\n \"locations\": [],\n \"tags\": [\n \" \"\n ],\n \"alertSettings\": {\n \"reminders\": {},\n \"sslCertificates\": {\n \"enabled\": true,\n \"alertThreshold\": 123\n },\n \"runBasedEscalation\": {},\n \"timeBasedEscalation\": {},\n \"parallelRunFailureThreshold\": {\n \"enabled\": true\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": 123,\n \"groupOrder\": 1,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 123,\n \"sameRegion\": true,\n \"maxRetries\": 5.5,\n \"maxDurationSeconds\": 300,\n \"onlyOn\": [\n \"NETWORK_ERROR\"\n ]\n },\n \"triggerIncident\": {\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \" \",\n \"description\": \" \",\n \"notifySubscribers\": true\n },\n \"runParallel\": true,\n \"description\": \" \",\n \"intent\": {\n \"goal\": \" \",\n \"requiredOutcomes\": [],\n \"mustPreserve\": []\n },\n \"aiAutoRepairEnabled\": true,\n \"checkType\": \"GRPC\",\n \"frequencyOffset\": 2,\n \"heartbeat\": {},\n \"script\": \" \",\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": true,\n \"secret\": true\n }\n ],\n \"setupSnippetId\": 123,\n \"tearDownSnippetId\": 123,\n \"localSetupScript\": \" \",\n \"localTearDownScript\": \" \",\n \"degradedResponseTime\": 90000,\n \"maxResponseTime\": 90000,\n \"privateLocations\": [\n \" \"\n ]\n}"

response = http.request(request)
puts response.read_body
```

```
{
"name": " ",
"activated": true,
"muted": false,
"doubleCheck": true,
"shouldFail": false,
"locations": [],
"tags": [],
"alertSettings": {
"escalationType": "RUN_BASED",
"runBasedEscalation": {
"failedRunThreshold": 1
},
"reminders": {
"amount": 0,
"interval": 5
},
"parallelRunFailureThreshold": {
"enabled": false,
"percentage": 10
}
},
"useGlobalAlertSettings": true,
"groupId": null,
"groupOrder": null,
"runtimeId": null,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": true
}
],
"retryStrategy": {
"type": "FIXED",
"baseBackoffSeconds": 60,
"sameRegion": true,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": [
"NETWORK_ERROR"
]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"severity": "CRITICAL",
"name": " ",
"description": " ",
"notifySubscribers": true
},
"runParallel": false,
"description": null,
"intent": null,
"aiAutoRepairEnabled": null,
"id": " ",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"alertChannels": {
"email": [
{
"address": ""
}
],
"webhook": [
{
"name": "",
"url": "",
"method": "POST",
"headers": [],
"queryParameters": []
}
],
"slack": [
{
"url": ""
}
],
"sms": [
{
"name": " ",
"number": ""
}
]
},
"project": {
"id": " ",
"logicalId": " ",
"name": " "
},
"logicalId": " ",
"member": true,
"pending": true,
"projectBindings": {
"owner": {
"project": {
"id": " ",
"logicalId": " ",
"name": " "
},
"binding": {
"logicalId": "homepage-check",
"pending": true,
"sourceFile": "src/__checks__/homepage.check.ts"
}
},
"references": [
{
"project": {
"id": " ",
"logicalId": " ",
"name": " "
},
"binding": {
"logicalId": "homepage-check",
"pending": true,
"sourceFile": "src/__checks__/homepage.check.ts"
}
}
]
},
"privateLocations": [
" "
],
"frequency": 10,
"frequencyOffset": 2,
"degradedResponseTime": 123,
"maxResponseTime": 123,
"checkType": "GRPC",
"request": {
"url": " ",
"port": 123,
"ipFamily": "IPv4",
"skipSSL": true,
"timeout": 123,
"grpcConfig": {
"mode": "BEHAVIOR",
"tls": true,
"metadata": [],
"service": " ",
"encoding": "PROTOBUF",
"bfbsContent": " ",
"serviceDefinition": "REFLECTION",
"method": " ",
"protoContent": " ",
"message": " "
},
"assertions": []
}
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

gRPC Monitor

# Update a gRPC Monitor

Updates a gRPC monitor.

PUT

/

v1

/

checks

/

grpc

/

{id}

Update a gRPC Monitor

```
curl --request PUT \
--url https://api.checklyhq.com/v1/checks/grpc/{id} \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data '
{
"name": " ",
"activated": true,
"muted": true,
"doubleCheck": true,
"shouldFail": true,
"locations": [],
"tags": [
" "
],
"alertSettings": {
"reminders": {},
"sslCertificates": {
"enabled": true,
"alertThreshold": 123
},
"runBasedEscalation": {},
"timeBasedEscalation": {},
"parallelRunFailureThreshold": {
"enabled": true
}
},
"useGlobalAlertSettings": true,
"groupId": 123,
"groupOrder": 1,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": true
}
],
"retryStrategy": {
"baseBackoffSeconds": 123,
"sameRegion": true,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": [
"NETWORK_ERROR"
]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": true
},
"runParallel": true,
"description": " ",
"intent": {
"goal": " ",
"requiredOutcomes": [],
"mustPreserve": []
},
"aiAutoRepairEnabled": true,
"checkType": "GRPC",
"frequencyOffset": 2,
"heartbeat": {},
"script": " ",
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": true,
"secret": true
}
],
"setupSnippetId": 123,
"tearDownSnippetId": 123,
"localSetupScript": " ",
"localTearDownScript": " ",
"degradedResponseTime": 90000,
"maxResponseTime": 90000,
"privateLocations": [
" "
]
}
'
```

```
import requests

url = "https://api.checklyhq.com/v1/checks/grpc/{id}"

payload = {
"name": " ",
"activated": True,
"muted": True,
"doubleCheck": True,
"shouldFail": True,
"locations": [],
"tags": [" "],
"alertSettings": {
"reminders": {},
"sslCertificates": {
"enabled": True,
"alertThreshold": 123
},
"runBasedEscalation": {},
"timeBasedEscalation": {},
"parallelRunFailureThreshold": { "enabled": True }
},
"useGlobalAlertSettings": True,
"groupId": 123,
"groupOrder": 1,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": True
}
],
"retryStrategy": {
"baseBackoffSeconds": 123,
"sameRegion": True,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": ["NETWORK_ERROR"]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": True
},
"runParallel": True,
"description": " ",
"intent": {
"goal": " ",
"requiredOutcomes": [],
"mustPreserve": []
},
"aiAutoRepairEnabled": True,
"checkType": "GRPC",
"frequencyOffset": 2,
"heartbeat": {},
"script": " ",
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": True,
"secret": True
}
],
"setupSnippetId": 123,
"tearDownSnippetId": 123,
"localSetupScript": " ",
"localTearDownScript": " ",
"degradedResponseTime": 90000,
"maxResponseTime": 90000,
"privateLocations": [" "]
}
headers = {
"Authorization": "Bearer ",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
```

```
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: ' ',
activated: true,
muted: true,
doubleCheck: true,
shouldFail: true,
locations: [],
tags: [' '],
alertSettings: {
reminders: {},
sslCertificates: {enabled: true, alertThreshold: 123},
runBasedEscalation: {},
timeBasedEscalation: {},
parallelRunFailureThreshold: {enabled: true}
},
useGlobalAlertSettings: true,
groupId: 123,
groupOrder: 1,
alertChannelSubscriptions: [{alertChannelId: 123, activated: true}],
retryStrategy: {
baseBackoffSeconds: 123,
sameRegion: true,
maxRetries: 5.5,
maxDurationSeconds: 300,
onlyOn: ['NETWORK_ERROR']
},
triggerIncident: {
serviceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: ' ',
description: ' ',
notifySubscribers: true
},
runParallel: true,
description: ' ',
intent: {goal: ' ', requiredOutcomes: [], mustPreserve: []},
aiAutoRepairEnabled: true,
checkType: 'GRPC',
frequencyOffset: 2,
heartbeat: {},
script: ' ',
scriptPath: ' ',
sslCheckDomain: ' ',
environmentVariables: [{key: ' ', value: ' ', locked: true, secret: true}],
setupSnippetId: 123,
tearDownSnippetId: 123,
localSetupScript: ' ',
localTearDownScript: ' ',
degradedResponseTime: 90000,
maxResponseTime: 90000,
privateLocations: [' ']
})
};

fetch('https://api.checklyhq.com/v1/checks/grpc/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
```

```
"https://api.checklyhq.com/v1/checks/grpc/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => ' ',
'activated' => true,
'muted' => true,
'doubleCheck' => true,
'shouldFail' => true,
'locations' => [

],
'tags' => [
' '
],
'alertSettings' => [
'reminders' => [

],
'sslCertificates' => [
'enabled' => true,
'alertThreshold' => 123
],
'runBasedEscalation' => [

],
'timeBasedEscalation' => [

],
'parallelRunFailureThreshold' => [
'enabled' => true
]
],
'useGlobalAlertSettings' => true,
'groupId' => 123,
'groupOrder' => 1,
'alertChannelSubscriptions' => [
[
'alertChannelId' => 123,
'activated' => true
]
],
'retryStrategy' => [
'baseBackoffSeconds' => 123,
'sameRegion' => true,
'maxRetries' => 5.5,
'maxDurationSeconds' => 300,
'onlyOn' => [
'NETWORK_ERROR'
]
],
'triggerIncident' => [
'serviceId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => ' ',
'description' => ' ',
'notifySubscribers' => true
],
'runParallel' => true,
'description' => ' ',
'intent' => [
'goal' => ' ',
'requiredOutcomes' => [

],
'mustPreserve' => [

]
],
'aiAutoRepairEnabled' => true,
'checkType' => 'GRPC',
'frequencyOffset' => 2,
'heartbeat' => [

],
'script' => ' ',
'scriptPath' => ' ',
'sslCheckDomain' => ' ',
'environmentVariables' => [
[
'key' => ' ',
'value' => ' ',
'locked' => true,
'secret' => true
]
],
'setupSnippetId' => 123,
'tearDownSnippetId' => 123,
'localSetupScript' => ' ',
'localTearDownScript' => ' ',
'degradedResponseTime' => 90000,
'maxResponseTime' => 90000,
'privateLocations' => [
' '
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer ",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
```

```
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.checklyhq.com/v1/checks/grpc/{id}"

payload := strings.NewReader("{\n \"name\": \" \",\n \"activated\": true,\n \"muted\": true,\n \"doubleCheck\": true,\n \"shouldFail\": true,\n \"locations\": [],\n \"tags\": [\n \" \"\n ],\n \"alertSettings\": {\n \"reminders\": {},\n \"sslCertificates\": {\n \"enabled\": true,\n \"alertThreshold\": 123\n },\n \"runBasedEscalation\": {},\n \"timeBasedEscalation\": {},\n \"parallelRunFailureThreshold\": {\n \"enabled\": true\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": 123,\n \"groupOrder\": 1,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 123,\n \"sameRegion\": true,\n \"maxRetries\": 5.5,\n \"maxDurationSeconds\": 300,\n \"onlyOn\": [\n \"NETWORK_ERROR\"\n ]\n },\n \"triggerIncident\": {\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \" \",\n \"description\": \" \",\n \"notifySubscribers\": true\n },\n \"runParallel\": true,\n \"description\": \" \",\n \"intent\": {\n \"goal\": \" \",\n \"requiredOutcomes\": [],\n \"mustPreserve\": []\n },\n \"aiAutoRepairEnabled\": true,\n \"checkType\": \"GRPC\",\n \"frequencyOffset\": 2,\n \"heartbeat\": {},\n \"script\": \" \",\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": true,\n \"secret\": true\n }\n ],\n \"setupSnippetId\": 123,\n \"tearDownSnippetId\": 123,\n \"localSetupScript\": \" \",\n \"localTearDownScript\": \" \",\n \"degradedResponseTime\": 90000,\n \"maxResponseTime\": 90000,\n \"privateLocations\": [\n \" \"\n ]\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("Authorization", "Bearer ")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
```

```
HttpResponse response = Unirest.put("https://api.checklyhq.com/v1/checks/grpc/{id}")
.header("Authorization", "Bearer ")
.header("Content-Type", "application/json")
.body("{\n \"name\": \" \",\n \"activated\": true,\n \"muted\": true,\n \"doubleCheck\": true,\n \"shouldFail\": true,\n \"locations\": [],\n \"tags\": [\n \" \"\n ],\n \"alertSettings\": {\n \"reminders\": {},\n \"sslCertificates\": {\n \"enabled\": true,\n \"alertThreshold\": 123\n },\n \"runBasedEscalation\": {},\n \"timeBasedEscalation\": {},\n \"parallelRunFailureThreshold\": {\n \"enabled\": true\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": 123,\n \"groupOrder\": 1,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 123,\n \"sameRegion\": true,\n \"maxRetries\": 5.5,\n \"maxDurationSeconds\": 300,\n \"onlyOn\": [\n \"NETWORK_ERROR\"\n ]\n },\n \"triggerIncident\": {\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \" \",\n \"description\": \" \",\n \"notifySubscribers\": true\n },\n \"runParallel\": true,\n \"description\": \" \",\n \"intent\": {\n \"goal\": \" \",\n \"requiredOutcomes\": [],\n \"mustPreserve\": []\n },\n \"aiAutoRepairEnabled\": true,\n \"checkType\": \"GRPC\",\n \"frequencyOffset\": 2,\n \"heartbeat\": {},\n \"script\": \" \",\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": true,\n \"secret\": true\n }\n ],\n \"setupSnippetId\": 123,\n \"tearDownSnippetId\": 123,\n \"localSetupScript\": \" \",\n \"localTearDownScript\": \" \",\n \"degradedResponseTime\": 90000,\n \"maxResponseTime\": 90000,\n \"privateLocations\": [\n \" \"\n ]\n}")
.asString();
```

```
require 'uri'
require 'net/http'

url = URI("https://api.checklyhq.com/v1/checks/grpc/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer '
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \" \",\n \"activated\": true,\n \"muted\": true,\n \"doubleCheck\": true,\n \"shouldFail\": true,\n \"locations\": [],\n \"tags\": [\n \" \"\n ],\n \"alertSettings\": {\n \"reminders\": {},\n \"sslCertificates\": {\n \"enabled\": true,\n \"alertThreshold\": 123\n },\n \"runBasedEscalation\": {},\n \"timeBasedEscalation\": {},\n \"parallelRunFailureThreshold\": {\n \"enabled\": true\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": 123,\n \"groupOrder\": 1,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 123,\n \"sameRegion\": true,\n \"maxRetries\": 5.5,\n \"maxDurationSeconds\": 300,\n \"onlyOn\": [\n \"NETWORK_ERROR\"\n ]\n },\n \"triggerIncident\": {\n \"serviceId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \" \",\n \"description\": \" \",\n \"notifySubscribers\": true\n },\n \"runParallel\": true,\n \"description\": \" \",\n \"intent\": {\n \"goal\": \" \",\n \"requiredOutcomes\": [],\n \"mustPreserve\": []\n },\n \"aiAutoRepairEnabled\": true,\n \"checkType\": \"GRPC\",\n \"frequencyOffset\": 2,\n \"heartbeat\": {},\n \"script\": \" \",\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": true,\n \"secret\": true\n }\n ],\n \"setupSnippetId\": 123,\n \"tearDownSnippetId\": 123,\n \"localSetupScript\": \" \",\n \"localTearDownScript\": \" \",\n \"degradedResponseTime\": 90000,\n \"maxResponseTime\": 90000,\n \"privateLocations\": [\n \" \"\n ]\n}"

response = http.request(request)
puts response.read_body
```

```
{
"name": " ",
"activated": true,
"muted": false,
"doubleCheck": true,
"shouldFail": false,
"locations": [],
"tags": [],
"alertSettings": {
"escalationType": "RUN_BASED",
"runBasedEscalation": {
"failedRunThreshold": 1
},
"reminders": {
"amount": 0,
"interval": 5
},
"parallelRunFailureThreshold": {
"enabled": false,
"percentage": 10
}
},
"useGlobalAlertSettings": true,
"groupId": null,
"groupOrder": null,
"runtimeId": null,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": true
}
],
"retryStrategy": {
"type": "FIXED",
"baseBackoffSeconds": 60,
"sameRegion": true,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": [
"NETWORK_ERROR"
]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"severity": "CRITICAL",
"name": " ",
"description": " ",
"notifySubscribers": true
},
"runParallel": false,
"description": null,
"intent": null,
"aiAutoRepairEnabled": null,
"id": " ",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"alertChannels": {
"email": [
{
"address": ""
}
],
"webhook": [
{
"name": "",
"url": "",
"method": "POST",
"headers": [],
"queryParameters": []
}
],
"slack": [
{
"url": ""
}
],
"sms": [
{
"name": " ",
"number": ""
}
]
},
"project": {
"id": " ",
"logicalId": " ",
"name": " "
},
"logicalId": " ",
"member": true,
"pending": true,
"projectBindings": {
"owner": {
"project": {
"id": " ",
"logicalId": " ",
"name": " "
},
"binding": {
"logicalId": "homepage-check",
"pending": true,
"sourceFile": "src/__checks__/homepage.check.ts"
}
},
"references": [
{
"project": {
"id": " ",
"logicalId": " ",
"name": " "
},
"binding": {
"logicalId": "homepage-check",
"pending": true,
"sourceFile": "src/__checks__/homepage.check.ts"
}
}
]
},
"privateLocations": [
" "
],
"frequency": 10,
"frequencyOffset": 2,
"degradedResponseTime": 123,
"maxResponseTime": 123,
"checkType": "GRPC",
"request": {
"url": " ",
"port": 123,
"ipFamily": "IPv4",
"skipSSL": true,
"timeout": 123,
"grpcConfig": {
"mode": "BEHAVIOR",
"tls": true,
"metadata": [],
"service": " ",
"encoding": "PROTOBUF",
"bfbsContent": " ",
"serviceDefinition": "REFLECTION",
"method": " ",
"protoContent": " ",
"message": " "
},
"assertions": []
}
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

```
{
"statusCode": 123,
"error": " ",
"message": " ",
"errorCode": "ERR_ACCOUNT_NOT_ACCESSIBLE"
}
```

#### Authorizations

Authorization

string

header

required

The Checkly Public API uses API keys to authenticate requests. You can get the API Key [here](https://app.checklyhq.com/settings/user/api-keys).
Your API key is like a password:
keep it secure!

Authentication to the API is performed using the Bearer auth method in the Authorization header and using the account ID.

For example, set Authorization header while using cURL: `curl -H "Authorization: Bearer [apiKey]" "X-Checkly-Account: [accountId]"`

#### Headers

x-checkly-account

string<uuid>

Your Checkly account ID, you can find it at [https://app.checklyhq.com/settings/account/general](https://app.checklyhq.com/settings/account/general)

#### Path Parameters

id

string<uuid>

required

Minimum string length: `1`

#### Query Parameters

autoAssignAlerts

boolean

default: true

Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.

#### Body

application/json

name

string

Minimum string length: `1`

activated

boolean

muted

boolean

doubleCheck

boolean

shouldFail

boolean

locations

enum<string>[] | null

Available options: `us-east-1`,

`us-east-2`,

`us-west-1`,

`us-west-2`,

`ca-central-1`,

`sa-east-1`,

`eu-west-1`,

`eu-central-1`,

`eu-west-2`,

`eu-west-3`,

`eu-north-1`,

`eu-south-1`,

`me-south-1`,

`ap-southeast-1`,

`ap-northeast-1`,

`ap-east-1`,

`ap-southeast-2`,

`ap-southeast-3`,

`ap-northeast-2`,

`ap-northeast-3`,

`ap-south-1`,

`af-south-1`

tags

string[]

Minimum string length: `1`

alertSettings

object

Show child attributes

useGlobalAlertSettings

boolean

groupId

number | null

groupOrder

number | null

Required range: `x >= 0`

runtimeId

enum<string> | null

Available options: `2026.04`,

`2025.04`,

`2024.09`,

`2024.02`,

`2023.09`,

`2023.02`,

`2022.10`,

`null`

alertChannelSubscriptions

object[]

Show child attributes

retryStrategy

object | null

Show child attributes

triggerIncident

object | null

Show child attributes

runParallel

boolean

description

string | null

Maximum string length: `510`

intent

object | null

Show child attributes

aiAutoRepairEnabled

boolean | null

checkType

enum<string>

Available options: `GRPC`

frequency

enum<integer>

Available options: `0`,

`1`,

`2`,

`5`,

`10`,

`15`,

`30`,

`60`,

`120`,

`180`,

`360`,

`720`,

`1440`

frequencyOffset

integer

Required range: `x >= 1`

heartbeat

object | null

Show child attributes

script

string | null

scriptPath

string | null

Minimum string length: `1`

sslCheckDomain

string | null

environmentVariables

object[] | null

Maximum array length: `200`

Show child attributes

setupSnippetId

number | null

tearDownSnippetId

number | null

localSetupScript

string | null

localTearDownScript

string | null

request

object

Show child attributes

degradedResponseTime

number | null

Required range: `0 maxResponseTime

number | null

Required range: `0 privateLocations

string[] | null

Minimum string length: `1`

#### Response

Successful

name

string

required

Minimum string length: `1`

activated

boolean

default: true

muted

boolean

default: false

doubleCheck

boolean

default: true

shouldFail

boolean

default: false

locations

enum<string>[] | null

Available options: `us-east-1`,

`us-east-2`,

`us-west-1`,

`us-west-2`,

`ca-central-1`,

`sa-east-1`,

`eu-west-1`,

`eu-central-1`,

`eu-west-2`,

`eu-west-3`,

`eu-north-1`,

`eu-south-1`,

`me-south-1`,

`ap-southeast-1`,

`ap-northeast-1`,

`ap-east-1`,

`ap-southeast-2`,

`ap-southeast-3`,

`ap-northeast-2`,

`ap-northeast-3`,

`ap-south-1`,

`af-south-1`

tags

string[]

Minimum string length: `1`

alertSettings

object | null

Show child attributes

useGlobalAlertSettings

boolean

default: true

groupId

number | null

groupOrder

number | null

Required range: `x >= 0`

runtimeId

enum<string> | null

Available options: `2026.04`,

`2025.04`,

`2024.09`,

`2024.02`,

`2023.09`,

`2023.02`,

`2022.10`,

`null`

alertChannelSubscriptions

object[]

Show child attributes

retryStrategy

object | null

Show child attributes

triggerIncident

object | null

Show child attributes

runParallel

boolean

default: false

description

string | null

Maximum string length: `500`

intent

object | null

Show child attributes

aiAutoRepairEnabled

boolean | null

id

string

created_at

string<date-time>

updated_at

string<date-time> | null

alertChannels

object | null

Show child attributes

project

object | null

The project that manages this check, or null when the check is not managed by code. When a check has more than one binding, this reports the preferred one.

Show child attributes

logicalId

string | null

The check's logical ID within the managing project, or null when it is not managed by code.

member

boolean | null

True when the project owns this check, false when it merely references a check owned outside the project. Null when not managed by code. The same relationship appears structurally in `projectBindings`: an owning project under `projectBindings.owner`, a referencing one under `projectBindings.references`.

pending

boolean | null

True when the binding is reserved by an import plan that has not been deployed yet. Null when not managed by code.

projectBindings

object

The Checkly CLI projects that manage this resource. `owner` is null and `references` empty when the resource is not managed by code.

Show child attributes

privateLocations

string[] | null

Minimum string length: `1`

frequency

enum<integer>

default: 10

Available options: `0`,

`1`,

`2`,

`5`,

`10`,

`15`,

`30`,

`60`,

`120`,

`180`,

`360`,

`720`,

`1440`

frequencyOffset

integer

Required range: `x >= 1`

degradedResponseTime

number | null

maxResponseTime

number | null

checkType

enum<string>

Available options: `GRPC`

request

object

Show child attributes

Was this page helpful?

[Suggest edits](https://github.com/checkly/docs/edit/main/api-reference/monitors/update-a-grpc-monitor.mdx)[Raise issue](https://github.com/checkly/docs/issues/new?title=Issue%20on%20docs&body=Path:%20/api-reference/monitors/update-a-grpc-monitor)

[Create a gRPC monitor Previous](https://www.checklyhq.com/docs/api-reference/monitors/create-a-grpc-monitor)[List all alerts for your account Next](https://www.checklyhq.com/docs/api-reference/check-alerts/list-all-alerts-for-your-account)

[x](https://x.com/checklyhq)[github](https://github.com/checkly)[linkedin](https://linkedin.com/company/checkly)

[Powered by This documentation is built and hosted on Mintlify, a developer documentation platform](https://www.mintlify.com/?utm_campaign=poweredBy&utm_medium=referral&utm_source=checkly-422f444a)
