Create monitor
POST
/monitors
Authentication
Bearer Token (hu_api_key)
Request Body required
application/jsonname
string
REQUIRED
type
string
REQUIRED
Enum:
http, ping, tcp, dns, keyword, heartbeaturl
string (uri)
method
string
REQUIRED
Enum:
GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONSheaders
object
body
string
interval_seconds
integer
REQUIRED
timeout_ms
integer
REQUIRED
regions
string[]
REQUIRED
Array of:
assertions
object[]
Array of:
type
string
REQUIRED
operator
string
REQUIRED
value
string
REQUIRED
auth_type
string
Enum:
basic, bearer, headerauth_config
object
keyword
string
keyword_type
string
REQUIRED
Enum:
contains, not_contains, regexheartbeat_interval
integer
heartbeat_grace
integer
ssl_check
boolean
REQUIRED
domain_check
boolean
REQUIRED
screenshot_on_failure
boolean
REQUIRED
screenshot_compare
boolean
REQUIRED
screenshot_threshold
number
REQUIRED
retry_count
integer
REQUIRED
tags
string[]
Array of:
Responses
201
Monitor created
application/jsondata
object
name
string
REQUIRED
type
string
REQUIRED
Enum:
http, ping, tcp, dns, keyword, heartbeaturl
string (uri)
method
string
REQUIRED
Enum:
GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONSheaders
object
body
string
interval_seconds
integer
REQUIRED
timeout_ms
integer
REQUIRED
regions
string[]
REQUIRED
Array of:
assertions
object[]
Array of:
type
string
REQUIRED
operator
string
REQUIRED
value
string
REQUIRED
auth_type
string
Enum:
basic, bearer, headerauth_config
object
keyword
string
keyword_type
string
REQUIRED
Enum:
contains, not_contains, regexheartbeat_interval
integer
heartbeat_grace
integer
ssl_check
boolean
REQUIRED
domain_check
boolean
REQUIRED
screenshot_on_failure
boolean
REQUIRED
screenshot_compare
boolean
REQUIRED
screenshot_threshold
number
REQUIRED
retry_count
integer
REQUIRED
tags
string[]
Array of:
400
Validation error
curl -X POST 'https://happyuptime.com/api/v1/monitors' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "name": "string", "type": "http", "url": "https://example.com", "method": "GET", "headers": {}, "body": "string", "interval_seconds": 60, "timeout_ms": 30000, "regions": [ "us-east" ], "assertions": [ { "type": "string", "operator": "string", "value": "string" } ], "auth_type": "basic", "auth_config": {}, "keyword": "string", "keyword_type": "contains", "heartbeat_interval": -9007199254740991, "heartbeat_grace": -9007199254740991, "ssl_check": false, "domain_check": false, "screenshot_on_failure": true, "screenshot_compare": false, "screenshot_threshold": 0.05, "retry_count": 2, "tags": [ "string" ]}'
const response = await fetch('https://happyuptime.com/api/v1/monitors', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({ "name": "string", "type": "http", "url": "https://example.com", "method": "GET", "headers": {}, "body": "string", "interval_seconds": 60, "timeout_ms": 30000, "regions": [ "us-east" ], "assertions": [ { "type": "string", "operator": "string", "value": "string" } ], "auth_type": "basic", "auth_config": {}, "keyword": "string", "keyword_type": "contains", "heartbeat_interval": -9007199254740991, "heartbeat_grace": -9007199254740991, "ssl_check": false, "domain_check": false, "screenshot_on_failure": true, "screenshot_compare": false, "screenshot_threshold": 0.05, "retry_count": 2, "tags": [ "string" ] })});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://happyuptime.com/api/v1/monitors', headers=headers, json={ "name": "string", "type": "http", "url": "https://example.com", "method": "GET", "headers": {}, "body": "string", "interval_seconds": 60, "timeout_ms": 30000, "regions": [ "us-east" ], "assertions": [ { "type": "string", "operator": "string", "value": "string" } ], "auth_type": "basic", "auth_config": {}, "keyword": "string", "keyword_type": "contains", "heartbeat_interval": -9007199254740991, "heartbeat_grace": -9007199254740991, "ssl_check": false, "domain_check": false, "screenshot_on_failure": true, "screenshot_compare": false, "screenshot_threshold": 0.05, "retry_count": 2, "tags": [ "string" ]})print(response.json())
201
Response
{ "data": { "name": "<string>", "type": "http", "url": "<uri>", "method": "GET", "headers": "<object>", "body": "<string>", "interval_seconds": 123, "timeout_ms": 123, "regions": [ "us-east" ], "assertions": [ { "type": "<string>", "operator": "<string>", "value": "<string>" } ], "auth_type": "basic", "auth_config": "<object>", "keyword": "<string>", "keyword_type": "contains", "heartbeat_interval": 123, "heartbeat_grace": 123, "ssl_check": true, "domain_check": true, "screenshot_on_failure": true, "screenshot_compare": true, "screenshot_threshold": 123, "retry_count": 123, "tags": [ "<string>" ] }}
API Playground
Try this endpoint
POST
/monitors