POST /api/websites
Creates a new website monitor for a customer.
BASE_URL = " https://uptimeify.io "
TOKEN = " <your-api-token> "
curl -X POST " $BASE_URL /api/websites " \
-H " Authorization: Bearer $TOKEN " \
-H " Content-Type: application/json " \
-H " Accept: application/json " \
-d ' {
"customerId": "059e1469-0f05-4c93-bd4d-89c45bb2afd9",
"name": "New Landing Page",
"url": "https://landing.example.com",
"monitoringType": "combined",
"checkInterval": 5
} '
Field Type Required Default Description customerIdnumber|string Yes — Customer public ID (preferred) or legacy numeric ID namestring Yes — Display name (1–255 chars) urlstring Yes* — URL to monitor (1–2048 chars). Required for non-heartbeat monitors. For DNS monitors, use a hostname without protocol. monitoringTypestring No combinedcombined, http_status, ssl_check, playwright, heartbeat, dnsstatusstring No activeactive, inactive, maintenance (paused accepted, mapped to inactive)checkIntervalnumber No 30 Check interval in minutes (1–60, min depends on package) timeoutSecondsnumber No 30 Request timeout in seconds (1–60) expectedStatusCodesstring No 200,301,302Comma-separated expected HTTP status codes allowedCheckCountryCodesstring |null No org default Array of 2-letter country codes to restrict monitoring locations searchTermstring|null No null Keyword to search for in response body (max 255 chars) customFieldsobject|null No null Custom field values as key-value pairs
Field Type Required Default Description authModestring No nonenone, authorization_header, basicauthorizationHeaderstring|null No null Required when authMode is authorization_header (1–4096 chars). Encrypted at rest. basicAuthUsernamestring|null No null Required when authMode is basic (1–255 chars) basicAuthPasswordstring|null No null Required when authMode is basic (1–4096 chars). Encrypted at rest.
Field Type Required Default Description httpMethodstring No GETGET, POST, PUT, PATCH, DELETE, HEAD, OPTIONScustomHeadersobject|null No null Custom HTTP headers as key-value pairs. Keys: 1–100 chars, values: max 8192 chars. Encrypted at rest. requestBodystring|null No null Request body for POST/PUT/PATCH requests (max 100KB). Encrypted at rest. followRedirectsboolean No true Whether to follow HTTP redirects cookieHandlingstring No nonenone or jar (maintain cookie jar across redirects)
Field Type Required Default Description mtlsEnabledboolean No false Enable mutual TLS authentication mtlsClientCertstring|null No null Required when mtlsEnabled is true (1–100000 chars). Encrypted at rest. mtlsClientKeystring|null No null Required when mtlsEnabled is true (1–100000 chars). Encrypted at rest.
Field Type Required Default Description playwrightScriptstring|null No* null Required when monitoringType is playwright (1–20000 chars) playwrightEnvobject|null No {} Environment variables (max 50, keys 1–64 chars, values max 2000 chars) playwrightDevicestring|null No null Device emulation preset (1–100 chars) playwrightViewportWidthnumber|null No null Viewport width (1–3840). Must be set with playwrightViewportHeight. playwrightViewportHeightnumber|null No null Viewport height (1–3840). Must be set with playwrightViewportWidth. playwrightRetriesnumber|null No 0 Number of retries (0–5) playwrightTimeoutMsnumber|null No 30000 Timeout in milliseconds (1000–180000)
Field Type Required Default Description checkExpectedResponseEnabledboolean No false Enable response body validation expectedResponseMatchTypestring|null No containscontains, equals, json_path_equalsexpectedResponseValuestring|null No null Required when checkExpectedResponseEnabled is true (max 10000 chars) expectedResponseJsonPathstring|null No null Required when expectedResponseMatchType is json_path_equals (max 500 chars)
Field Type Required Default Description checkSslEnabledboolean No true Enable SSL certificate checks (disabled for Playwright) checkHttpsRedirectEnabledboolean No true Check HTTPS redirect (disabled for Playwright) checkStatusEnabledboolean No true Check HTTP status (disabled for Playwright) checkSizeEnabledboolean No true Check response size (disabled for Playwright) checkResponseTimeEnabledboolean No true Check response time (disabled for Playwright) checkKeywordEnabledboolean No true Enable keyword search (disabled for Playwright)
Field Type Required Default Description sslNoticeDaysnumber No 7 Days before SSL expiry to trigger notice (1–365) sslErrorDaysnumber No 0 Days before SSL expiry to trigger error (0–365, must be ≤ sslNoticeDays) checkDomainExpiryEnabledboolean No true Enable domain expiry checks (disabled for Playwright) domainExpiryNoticeDaysnumber No 30 Days before domain expiry to trigger notice (1–365) domainExpiryErrorDaysnumber No 7 Days before domain expiry to trigger error (0–365, must be ≤ domainExpiryNoticeDays)
Field Type Required Default Description minPageSizenumber|null No null Minimum expected page size in bytes (disabled for Playwright) maxPageSizenumber|null No null Maximum expected page size in bytes (disabled for Playwright)
Field Type Required Default Description dnsConfigobject No {} DNS query configuration (only for monitoringType: dns)
Field Type Required Default Description heartbeatTokenstring|null No auto-generated Custom heartbeat token (max 255 chars) heartbeatGracePeriodMinutesnumber No 5 Grace period in minutes (1–10080, max 1 week)
Returns the created website record. Encrypted fields (authorizationHeader, basicAuthPassword, customHeaders, requestBody, mtlsClientCert, mtlsClientKey) are never returned in API responses.
{
" id " : 103 ,
" customerId " : 1 ,
" name " : " New Landing Page " ,
" url " : " https://landing.example.com " ,
" status " : " active " ,
" monitoringType " : " combined " ,
" checkInterval " : 5 ,
" httpMethod " : " GET " ,
" followRedirects " : true,
" cookieHandling " : " none " ,
" mtlsEnabled " : false,
" createdAt " : " 2026-02-26T12:05:00.000Z "
}
401 Unauthorized when you are not logged in403 Forbidden when you cannot create websites for the organization/customer404 Customer not found when customerId does not resolve to an existing customer