Skip to main content
POST
/
api
/
v1
/
monitors
Create a new monitor
curl --request POST \
  --url https://api.devhelm.io/api/v1/monitors \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "type": "HTTP",
  "config": {
    "hostname": "<string>",
    "recordTypes": [
      "A"
    ],
    "nameservers": [
      "<string>"
    ],
    "timeoutMs": 123,
    "totalTimeoutMs": 123
  },
  "managedBy": "DASHBOARD",
  "frequencySeconds": 123,
  "enabled": true,
  "regions": [
    "<string>"
  ],
  "environmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "assertions": [
    {
      "config": {
        "type": "<string>",
        "substring": "<string>"
      },
      "severity": "fail"
    }
  ],
  "auth": {
    "type": "<string>",
    "headerName": "<string>",
    "vaultSecretId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "alertChannelIds": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ],
  "tags": {
    "tagIds": [
      "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    ],
    "newTags": [
      {
        "name": "<string>",
        "color": "<string>"
      }
    ]
  }
}
'
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "organizationId": 123,
    "name": "<string>",
    "type": "HTTP",
    "config": {
      "hostname": "<string>",
      "recordTypes": [
        "A"
      ],
      "nameservers": [
        "<string>"
      ],
      "timeoutMs": 123,
      "totalTimeoutMs": 123
    },
    "frequencySeconds": 123,
    "enabled": true,
    "regions": [
      "<string>"
    ],
    "managedBy": "DASHBOARD",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "assertions": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "monitorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "assertionType": "status_code",
        "config": {
          "type": "<string>",
          "substring": "<string>"
        },
        "severity": "fail"
      }
    ],
    "tags": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "organizationId": 123,
        "name": "<string>",
        "color": "<string>",
        "createdAt": "2023-11-07T05:31:56Z",
        "updatedAt": "2023-11-07T05:31:56Z"
      }
    ],
    "pingUrl": "<string>",
    "environment": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>",
      "slug": "<string>"
    },
    "auth": {
      "type": "<string>",
      "headerName": "<string>",
      "vaultSecretId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    },
    "incidentPolicy": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "monitorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "triggerRules": [
        {
          "type": "consecutive_failures",
          "scope": "per_region",
          "severity": "down",
          "count": 123,
          "windowMinutes": 123,
          "thresholdMs": 123,
          "aggregationType": "all_exceed"
        }
      ],
      "confirmation": {
        "type": "multi_region",
        "minRegionsFailing": 123,
        "maxWaitSeconds": 123
      },
      "recovery": {
        "consecutiveSuccesses": 123,
        "minRegionsPassing": 123,
        "cooldownMinutes": 123
      },
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z",
      "monitorRegionCount": 123,
      "checkFrequencySeconds": 123
    },
    "alertChannelIds": [
      "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    ]
  }
}

Authorizations

Authorization
string
header
required

API key (dh_live_...) or Auth0 JWT token

Body

application/json
name
string
required

Human-readable name for this monitor

Maximum string length: 255
type
enum<string>
required

Monitor protocol type

Available options:
HTTP,
DNS,
MCP_SERVER,
TCP,
ICMP,
HEARTBEAT
config
object
required

Updated protocol-specific configuration; null preserves current

managedBy
enum<string>
required

Who manages this monitor: DASHBOARD or CLI

Available options:
DASHBOARD,
CLI,
TERRAFORM
frequencySeconds
integer<int32>

Check frequency in seconds (30–86400, default: 60)

enabled
boolean | null

Whether the monitor is active (default: true)

regions
(string | null)[] | null

Probe regions to run checks from, e.g. us-east, eu-west

Probe regions to run checks from, e.g. us-east, eu-west

environmentId
string<uuid> | null

Environment to associate with this monitor

assertions
object[] | null

Assertions to evaluate against each check result

auth
object

New authentication configuration (full replacement)

incidentPolicy
object

Request body for updating an incident policy

alertChannelIds
(string<uuid> | null)[] | null

Alert channels to notify when this monitor triggers

Alert channels to notify when this monitor triggers

tags
object

Request body for adding tags to a monitor. Provide existing tag IDs, inline new tags, or both.

Response

201 - */*

Created

data
object

Full monitor representation