# Create a Traceroute monitor - Checkly Docs

> Creates a new Traceroute monitor. Will return a 402 when you are over the limit of your plan. When using the globalAlertSetting, the alertSetting can be null

Source: https://www.checklyhq.com/docs/api-reference/monitors/create-a-traceroute-monitor/

---

Create a Traceroute monitor

```
curl --request POST \
--url https://api.checklyhq.com/v1/checks/traceroute \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data '
{
"name": " ",
"request": {
"url": " ",
"protocol": "TCP",
"port": 32768,
"ipFamily": "IPv4",
"maxHops": 30,
"maxUnknownHops": 15,
"ptrLookup": true,
"timeout": 10,
"assertions": []
},
"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": {
"baseBackoffSeconds": 60,
"sameRegion": true,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": [
"NETWORK_ERROR"
]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": true
},
"runParallel": false,
"description": null,
"intent": null,
"aiAutoRepairEnabled": null,
"checkType": "TRACEROUTE",
"frequency": 10,
"frequencyOffset": 2,
"heartbeat": null,
"script": null,
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": false,
"secret": false
}
],
"setupSnippetId": null,
"tearDownSnippetId": null,
"localSetupScript": null,
"localTearDownScript": null,
"degradedResponseTime": 10000,
"maxResponseTime": 20000,
"privateLocations": [
" "
]
}
'
```

```
import requests

url = "https://api.checklyhq.com/v1/checks/traceroute"

payload = {
"name": " ",
"request": {
"url": " ",
"protocol": "TCP",
"port": 32768,
"ipFamily": "IPv4",
"maxHops": 30,
"maxUnknownHops": 15,
"ptrLookup": True,
"timeout": 10,
"assertions": []
},
"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": None,
"groupOrder": None,
"runtimeId": None,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": True
}
],
"retryStrategy": {
"baseBackoffSeconds": 60,
"sameRegion": True,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": ["NETWORK_ERROR"]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": True
},
"runParallel": False,
"description": None,
"intent": None,
"aiAutoRepairEnabled": None,
"checkType": "TRACEROUTE",
"frequency": 10,
"frequencyOffset": 2,
"heartbeat": None,
"script": None,
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": False,
"secret": False
}
],
"setupSnippetId": None,
"tearDownSnippetId": None,
"localSetupScript": None,
"localTearDownScript": None,
"degradedResponseTime": 10000,
"maxResponseTime": 20000,
"privateLocations": [" "]
}
headers = {
"Authorization": "Bearer ",
"Content-Type": "application/json"
}

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

print(response.text)
```

```
const options = {
method: 'POST',
headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: ' ',
request: {
url: ' ',
protocol: 'TCP',
port: 32768,
ipFamily: 'IPv4',
maxHops: 30,
maxUnknownHops: 15,
ptrLookup: true,
timeout: 10,
assertions: []
},
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: {
baseBackoffSeconds: 60,
sameRegion: true,
maxRetries: 5.5,
maxDurationSeconds: 300,
onlyOn: ['NETWORK_ERROR']
},
triggerIncident: {
serviceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: ' ',
description: ' ',
notifySubscribers: true
},
runParallel: false,
description: null,
intent: null,
aiAutoRepairEnabled: null,
checkType: 'TRACEROUTE',
frequency: 10,
frequencyOffset: 2,
heartbeat: null,
script: null,
scriptPath: ' ',
sslCheckDomain: ' ',
environmentVariables: [{key: ' ', value: ' ', locked: false, secret: false}],
setupSnippetId: null,
tearDownSnippetId: null,
localSetupScript: null,
localTearDownScript: null,
degradedResponseTime: 10000,
maxResponseTime: 20000,
privateLocations: [' ']
})
};

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

```
"https://api.checklyhq.com/v1/checks/traceroute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => ' ',
'request' => [
'url' => ' ',
'protocol' => 'TCP',
'port' => 32768,
'ipFamily' => 'IPv4',
'maxHops' => 30,
'maxUnknownHops' => 15,
'ptrLookup' => true,
'timeout' => 10,
'assertions' => [

]
],
'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' => [
'baseBackoffSeconds' => 60,
'sameRegion' => true,
'maxRetries' => 5.5,
'maxDurationSeconds' => 300,
'onlyOn' => [
'NETWORK_ERROR'
]
],
'triggerIncident' => [
'serviceId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => ' ',
'description' => ' ',
'notifySubscribers' => true
],
'runParallel' => false,
'description' => null,
'intent' => null,
'aiAutoRepairEnabled' => null,
'checkType' => 'TRACEROUTE',
'frequency' => 10,
'frequencyOffset' => 2,
'heartbeat' => null,
'script' => null,
'scriptPath' => ' ',
'sslCheckDomain' => ' ',
'environmentVariables' => [
[
'key' => ' ',
'value' => ' ',
'locked' => false,
'secret' => false
]
],
'setupSnippetId' => null,
'tearDownSnippetId' => null,
'localSetupScript' => null,
'localTearDownScript' => null,
'degradedResponseTime' => 10000,
'maxResponseTime' => 20000,
'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/traceroute"

payload := strings.NewReader("{\n \"name\": \" \",\n \"request\": {\n \"url\": \" \",\n \"protocol\": \"TCP\",\n \"port\": 32768,\n \"ipFamily\": \"IPv4\",\n \"maxHops\": 30,\n \"maxUnknownHops\": 15,\n \"ptrLookup\": true,\n \"timeout\": 10,\n \"assertions\": []\n },\n \"activated\": true,\n \"muted\": false,\n \"doubleCheck\": true,\n \"shouldFail\": false,\n \"locations\": [],\n \"tags\": [],\n \"alertSettings\": {\n \"escalationType\": \"RUN_BASED\",\n \"runBasedEscalation\": {\n \"failedRunThreshold\": 1\n },\n \"reminders\": {\n \"amount\": 0,\n \"interval\": 5\n },\n \"parallelRunFailureThreshold\": {\n \"enabled\": false,\n \"percentage\": 10\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": null,\n \"groupOrder\": null,\n \"runtimeId\": null,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 60,\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\": false,\n \"description\": null,\n \"intent\": null,\n \"aiAutoRepairEnabled\": null,\n \"checkType\": \"TRACEROUTE\",\n \"frequency\": 10,\n \"frequencyOffset\": 2,\n \"heartbeat\": null,\n \"script\": null,\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": false,\n \"secret\": false\n }\n ],\n \"setupSnippetId\": null,\n \"tearDownSnippetId\": null,\n \"localSetupScript\": null,\n \"localTearDownScript\": null,\n \"degradedResponseTime\": 10000,\n \"maxResponseTime\": 20000,\n \"privateLocations\": [\n \" \"\n ]\n}")

req, _ := http.NewRequest("POST", 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.post("https://api.checklyhq.com/v1/checks/traceroute")
.header("Authorization", "Bearer ")
.header("Content-Type", "application/json")
.body("{\n \"name\": \" \",\n \"request\": {\n \"url\": \" \",\n \"protocol\": \"TCP\",\n \"port\": 32768,\n \"ipFamily\": \"IPv4\",\n \"maxHops\": 30,\n \"maxUnknownHops\": 15,\n \"ptrLookup\": true,\n \"timeout\": 10,\n \"assertions\": []\n },\n \"activated\": true,\n \"muted\": false,\n \"doubleCheck\": true,\n \"shouldFail\": false,\n \"locations\": [],\n \"tags\": [],\n \"alertSettings\": {\n \"escalationType\": \"RUN_BASED\",\n \"runBasedEscalation\": {\n \"failedRunThreshold\": 1\n },\n \"reminders\": {\n \"amount\": 0,\n \"interval\": 5\n },\n \"parallelRunFailureThreshold\": {\n \"enabled\": false,\n \"percentage\": 10\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": null,\n \"groupOrder\": null,\n \"runtimeId\": null,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 60,\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\": false,\n \"description\": null,\n \"intent\": null,\n \"aiAutoRepairEnabled\": null,\n \"checkType\": \"TRACEROUTE\",\n \"frequency\": 10,\n \"frequencyOffset\": 2,\n \"heartbeat\": null,\n \"script\": null,\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": false,\n \"secret\": false\n }\n ],\n \"setupSnippetId\": null,\n \"tearDownSnippetId\": null,\n \"localSetupScript\": null,\n \"localTearDownScript\": null,\n \"degradedResponseTime\": 10000,\n \"maxResponseTime\": 20000,\n \"privateLocations\": [\n \" \"\n ]\n}")
.asString();
```

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

url = URI("https://api.checklyhq.com/v1/checks/traceroute")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer '
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \" \",\n \"request\": {\n \"url\": \" \",\n \"protocol\": \"TCP\",\n \"port\": 32768,\n \"ipFamily\": \"IPv4\",\n \"maxHops\": 30,\n \"maxUnknownHops\": 15,\n \"ptrLookup\": true,\n \"timeout\": 10,\n \"assertions\": []\n },\n \"activated\": true,\n \"muted\": false,\n \"doubleCheck\": true,\n \"shouldFail\": false,\n \"locations\": [],\n \"tags\": [],\n \"alertSettings\": {\n \"escalationType\": \"RUN_BASED\",\n \"runBasedEscalation\": {\n \"failedRunThreshold\": 1\n },\n \"reminders\": {\n \"amount\": 0,\n \"interval\": 5\n },\n \"parallelRunFailureThreshold\": {\n \"enabled\": false,\n \"percentage\": 10\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": null,\n \"groupOrder\": null,\n \"runtimeId\": null,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 60,\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\": false,\n \"description\": null,\n \"intent\": null,\n \"aiAutoRepairEnabled\": null,\n \"checkType\": \"TRACEROUTE\",\n \"frequency\": 10,\n \"frequencyOffset\": 2,\n \"heartbeat\": null,\n \"script\": null,\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": false,\n \"secret\": false\n }\n ],\n \"setupSnippetId\": null,\n \"tearDownSnippetId\": null,\n \"localSetupScript\": null,\n \"localTearDownScript\": null,\n \"degradedResponseTime\": 10000,\n \"maxResponseTime\": 20000,\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": "TRACEROUTE",
"request": {
"url": " ",
"protocol": "TCP",
"port": 32768,
"ipFamily": "IPv4",
"maxHops": 32,
"maxUnknownHops": 15,
"ptrLookup": true,
"timeout": 15,
"assertions": [
{
"source": "RESPONSE_TIME",
"comparison": " ",
"property": "",
"target": "",
"regex": ""
}
]
}
}
```

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

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

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

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

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

Traceroute Monitor

# Create a Traceroute monitor

Creates a new Traceroute monitor. Will return a `402` when you are over the limit of your plan.
When using the `globalAlertSetting`, the `alertSetting` can be `null`

POST

/

v1

/

checks

/

traceroute

Create a Traceroute monitor

```
curl --request POST \
--url https://api.checklyhq.com/v1/checks/traceroute \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data '
{
"name": " ",
"request": {
"url": " ",
"protocol": "TCP",
"port": 32768,
"ipFamily": "IPv4",
"maxHops": 30,
"maxUnknownHops": 15,
"ptrLookup": true,
"timeout": 10,
"assertions": []
},
"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": {
"baseBackoffSeconds": 60,
"sameRegion": true,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": [
"NETWORK_ERROR"
]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": true
},
"runParallel": false,
"description": null,
"intent": null,
"aiAutoRepairEnabled": null,
"checkType": "TRACEROUTE",
"frequency": 10,
"frequencyOffset": 2,
"heartbeat": null,
"script": null,
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": false,
"secret": false
}
],
"setupSnippetId": null,
"tearDownSnippetId": null,
"localSetupScript": null,
"localTearDownScript": null,
"degradedResponseTime": 10000,
"maxResponseTime": 20000,
"privateLocations": [
" "
]
}
'
```

```
import requests

url = "https://api.checklyhq.com/v1/checks/traceroute"

payload = {
"name": " ",
"request": {
"url": " ",
"protocol": "TCP",
"port": 32768,
"ipFamily": "IPv4",
"maxHops": 30,
"maxUnknownHops": 15,
"ptrLookup": True,
"timeout": 10,
"assertions": []
},
"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": None,
"groupOrder": None,
"runtimeId": None,
"alertChannelSubscriptions": [
{
"alertChannelId": 123,
"activated": True
}
],
"retryStrategy": {
"baseBackoffSeconds": 60,
"sameRegion": True,
"maxRetries": 5.5,
"maxDurationSeconds": 300,
"onlyOn": ["NETWORK_ERROR"]
},
"triggerIncident": {
"serviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": " ",
"description": " ",
"notifySubscribers": True
},
"runParallel": False,
"description": None,
"intent": None,
"aiAutoRepairEnabled": None,
"checkType": "TRACEROUTE",
"frequency": 10,
"frequencyOffset": 2,
"heartbeat": None,
"script": None,
"scriptPath": " ",
"sslCheckDomain": " ",
"environmentVariables": [
{
"key": " ",
"value": " ",
"locked": False,
"secret": False
}
],
"setupSnippetId": None,
"tearDownSnippetId": None,
"localSetupScript": None,
"localTearDownScript": None,
"degradedResponseTime": 10000,
"maxResponseTime": 20000,
"privateLocations": [" "]
}
headers = {
"Authorization": "Bearer ",
"Content-Type": "application/json"
}

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

print(response.text)
```

```
const options = {
method: 'POST',
headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: ' ',
request: {
url: ' ',
protocol: 'TCP',
port: 32768,
ipFamily: 'IPv4',
maxHops: 30,
maxUnknownHops: 15,
ptrLookup: true,
timeout: 10,
assertions: []
},
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: {
baseBackoffSeconds: 60,
sameRegion: true,
maxRetries: 5.5,
maxDurationSeconds: 300,
onlyOn: ['NETWORK_ERROR']
},
triggerIncident: {
serviceId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: ' ',
description: ' ',
notifySubscribers: true
},
runParallel: false,
description: null,
intent: null,
aiAutoRepairEnabled: null,
checkType: 'TRACEROUTE',
frequency: 10,
frequencyOffset: 2,
heartbeat: null,
script: null,
scriptPath: ' ',
sslCheckDomain: ' ',
environmentVariables: [{key: ' ', value: ' ', locked: false, secret: false}],
setupSnippetId: null,
tearDownSnippetId: null,
localSetupScript: null,
localTearDownScript: null,
degradedResponseTime: 10000,
maxResponseTime: 20000,
privateLocations: [' ']
})
};

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

```
"https://api.checklyhq.com/v1/checks/traceroute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => ' ',
'request' => [
'url' => ' ',
'protocol' => 'TCP',
'port' => 32768,
'ipFamily' => 'IPv4',
'maxHops' => 30,
'maxUnknownHops' => 15,
'ptrLookup' => true,
'timeout' => 10,
'assertions' => [

]
],
'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' => [
'baseBackoffSeconds' => 60,
'sameRegion' => true,
'maxRetries' => 5.5,
'maxDurationSeconds' => 300,
'onlyOn' => [
'NETWORK_ERROR'
]
],
'triggerIncident' => [
'serviceId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => ' ',
'description' => ' ',
'notifySubscribers' => true
],
'runParallel' => false,
'description' => null,
'intent' => null,
'aiAutoRepairEnabled' => null,
'checkType' => 'TRACEROUTE',
'frequency' => 10,
'frequencyOffset' => 2,
'heartbeat' => null,
'script' => null,
'scriptPath' => ' ',
'sslCheckDomain' => ' ',
'environmentVariables' => [
[
'key' => ' ',
'value' => ' ',
'locked' => false,
'secret' => false
]
],
'setupSnippetId' => null,
'tearDownSnippetId' => null,
'localSetupScript' => null,
'localTearDownScript' => null,
'degradedResponseTime' => 10000,
'maxResponseTime' => 20000,
'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/traceroute"

payload := strings.NewReader("{\n \"name\": \" \",\n \"request\": {\n \"url\": \" \",\n \"protocol\": \"TCP\",\n \"port\": 32768,\n \"ipFamily\": \"IPv4\",\n \"maxHops\": 30,\n \"maxUnknownHops\": 15,\n \"ptrLookup\": true,\n \"timeout\": 10,\n \"assertions\": []\n },\n \"activated\": true,\n \"muted\": false,\n \"doubleCheck\": true,\n \"shouldFail\": false,\n \"locations\": [],\n \"tags\": [],\n \"alertSettings\": {\n \"escalationType\": \"RUN_BASED\",\n \"runBasedEscalation\": {\n \"failedRunThreshold\": 1\n },\n \"reminders\": {\n \"amount\": 0,\n \"interval\": 5\n },\n \"parallelRunFailureThreshold\": {\n \"enabled\": false,\n \"percentage\": 10\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": null,\n \"groupOrder\": null,\n \"runtimeId\": null,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 60,\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\": false,\n \"description\": null,\n \"intent\": null,\n \"aiAutoRepairEnabled\": null,\n \"checkType\": \"TRACEROUTE\",\n \"frequency\": 10,\n \"frequencyOffset\": 2,\n \"heartbeat\": null,\n \"script\": null,\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": false,\n \"secret\": false\n }\n ],\n \"setupSnippetId\": null,\n \"tearDownSnippetId\": null,\n \"localSetupScript\": null,\n \"localTearDownScript\": null,\n \"degradedResponseTime\": 10000,\n \"maxResponseTime\": 20000,\n \"privateLocations\": [\n \" \"\n ]\n}")

req, _ := http.NewRequest("POST", 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.post("https://api.checklyhq.com/v1/checks/traceroute")
.header("Authorization", "Bearer ")
.header("Content-Type", "application/json")
.body("{\n \"name\": \" \",\n \"request\": {\n \"url\": \" \",\n \"protocol\": \"TCP\",\n \"port\": 32768,\n \"ipFamily\": \"IPv4\",\n \"maxHops\": 30,\n \"maxUnknownHops\": 15,\n \"ptrLookup\": true,\n \"timeout\": 10,\n \"assertions\": []\n },\n \"activated\": true,\n \"muted\": false,\n \"doubleCheck\": true,\n \"shouldFail\": false,\n \"locations\": [],\n \"tags\": [],\n \"alertSettings\": {\n \"escalationType\": \"RUN_BASED\",\n \"runBasedEscalation\": {\n \"failedRunThreshold\": 1\n },\n \"reminders\": {\n \"amount\": 0,\n \"interval\": 5\n },\n \"parallelRunFailureThreshold\": {\n \"enabled\": false,\n \"percentage\": 10\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": null,\n \"groupOrder\": null,\n \"runtimeId\": null,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 60,\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\": false,\n \"description\": null,\n \"intent\": null,\n \"aiAutoRepairEnabled\": null,\n \"checkType\": \"TRACEROUTE\",\n \"frequency\": 10,\n \"frequencyOffset\": 2,\n \"heartbeat\": null,\n \"script\": null,\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": false,\n \"secret\": false\n }\n ],\n \"setupSnippetId\": null,\n \"tearDownSnippetId\": null,\n \"localSetupScript\": null,\n \"localTearDownScript\": null,\n \"degradedResponseTime\": 10000,\n \"maxResponseTime\": 20000,\n \"privateLocations\": [\n \" \"\n ]\n}")
.asString();
```

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

url = URI("https://api.checklyhq.com/v1/checks/traceroute")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer '
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \" \",\n \"request\": {\n \"url\": \" \",\n \"protocol\": \"TCP\",\n \"port\": 32768,\n \"ipFamily\": \"IPv4\",\n \"maxHops\": 30,\n \"maxUnknownHops\": 15,\n \"ptrLookup\": true,\n \"timeout\": 10,\n \"assertions\": []\n },\n \"activated\": true,\n \"muted\": false,\n \"doubleCheck\": true,\n \"shouldFail\": false,\n \"locations\": [],\n \"tags\": [],\n \"alertSettings\": {\n \"escalationType\": \"RUN_BASED\",\n \"runBasedEscalation\": {\n \"failedRunThreshold\": 1\n },\n \"reminders\": {\n \"amount\": 0,\n \"interval\": 5\n },\n \"parallelRunFailureThreshold\": {\n \"enabled\": false,\n \"percentage\": 10\n }\n },\n \"useGlobalAlertSettings\": true,\n \"groupId\": null,\n \"groupOrder\": null,\n \"runtimeId\": null,\n \"alertChannelSubscriptions\": [\n {\n \"alertChannelId\": 123,\n \"activated\": true\n }\n ],\n \"retryStrategy\": {\n \"baseBackoffSeconds\": 60,\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\": false,\n \"description\": null,\n \"intent\": null,\n \"aiAutoRepairEnabled\": null,\n \"checkType\": \"TRACEROUTE\",\n \"frequency\": 10,\n \"frequencyOffset\": 2,\n \"heartbeat\": null,\n \"script\": null,\n \"scriptPath\": \" \",\n \"sslCheckDomain\": \" \",\n \"environmentVariables\": [\n {\n \"key\": \" \",\n \"value\": \" \",\n \"locked\": false,\n \"secret\": false\n }\n ],\n \"setupSnippetId\": null,\n \"tearDownSnippetId\": null,\n \"localSetupScript\": null,\n \"localTearDownScript\": null,\n \"degradedResponseTime\": 10000,\n \"maxResponseTime\": 20000,\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": "TRACEROUTE",
"request": {
"url": " ",
"protocol": "TCP",
"port": 32768,
"ipFamily": "IPv4",
"maxHops": 32,
"maxUnknownHops": 15,
"ptrLookup": true,
"timeout": 15,
"assertions": [
{
"source": "RESPONSE_TIME",
"comparison": " ",
"property": "",
"target": "",
"regex": ""
}
]
}
}
```

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

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

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

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

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

#### 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)

#### 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

required

Minimum string length: `1`

​

request

object

required

Show child attributes

​

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

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: `510`

​

intent

object | null

Show child attributes

​

aiAutoRepairEnabled

boolean | null

​

checkType

enum<string>

default: TRACEROUTE

Available options: `TRACEROUTE`

​

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`

​

heartbeat

unknown

​

script

unknown

​

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

​

degradedResponseTime

number | null

default: 10000

Required range: `0 ​

maxResponseTime

number | null

default: 20000

Required range: `0 ​

privateLocations

string[] | null

Minimum string length: `1`

#### Response

Created

​

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: `TRACEROUTE`

​

request

object

Show child attributes

Was this page helpful?

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

[Update an SSL Monitor Previous](https://www.checklyhq.com/docs/api-reference/monitors/update-an-ssl-monitor)[Update a Traceroute Monitor Next](https://www.checklyhq.com/docs/api-reference/monitors/update-a-traceroute-monitor)

[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)
