Websites
Update Website Updates a website. Supports both partial updates (only sent fields are changed) and full updates (all required fields must be present).
PATCH /api/websites/:websitePublicId
A request is treated as a full update when customerId, name, and url are all present in the body. Otherwise, it is treated as a partial update.
BASE_URL = "https://uptimeify.io"
TOKEN = "<your-api-token>"
curl -X PATCH " $BASE_URL /api/websites/9a3d4d4d-7a4b-4f37-a9df-2a6f6d9d7a10" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name": "Updated Website Name",
"checkInterval": 5,
"timeoutSeconds": 10
}'
curl -X PATCH " $BASE_URL /api/websites/9a3d4d4d-7a4b-4f37-a9df-2a6f6d9d7a10" \
-H "Authorization: Bearer $TOKEN " \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"customerId": 5,
"name": "API Endpoint Monitor",
"url": "https://api.deinkunde.com/health",
"httpMethod": "POST",
"customHeaders": { "X-API-Key": "abc123", "Content-Type": "application/json" },
"requestBody": "{\"check\": true}",
"followRedirects": false,
"cookieHandling": "jar",
"mtlsEnabled": true,
"mtlsClientCert": "-----BEGIN CERTIFICATE-----\n...",
"mtlsClientKey": "-----BEGIN PRIVATE KEY-----\n..."
}'
All fields are optional for partial updates. For full updates, customerId, name, and url are required.
Field Type Description customerIdnumber|string Customer public ID (preferred) or legacy numeric ID namestring Display name (1-255 chars) urlstring URL to monitor (1-2048 chars). For DNS monitors, use hostname without protocol. monitoringTypestring combined, http_status, ssl_check, playwright, heartbeat, dnsstatusstring active, inactive, maintenance (paused → inactive)checkIntervalnumber Check interval in minutes (1-60) timeoutSecondsnumber Request timeout in seconds (1-60) expectedStatusCodesstring Comma-separated expected HTTP status codes allowedCheckCountryCodesstring[]|null Array of 2-letter country codes, or null to reset to org default searchTermstring|null Keyword to search for (null clears it) customFieldsobject|null Custom field values managementTypestring Ownership class: managed or self_service: see Managed vs. Self-Service . Changing the class is organization-admin-only; flipping to self_service requires allowSelfService and free quota.
Field Type Description authModestring none, authorization_header, basic. Setting to none clears auth credentials.authorizationHeaderstring|null Required when authMode is authorization_header. Encrypted at rest. basicAuthUsernamestring|null Required when authMode is basic. basicAuthPasswordstring|null Required when authMode is basic. Encrypted at rest.
Field Type Description httpMethodstring GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONScustomHeadersobject|null Custom HTTP headers (keys: 1-100 chars, values: max 8192 chars). Null clears them. Encrypted at rest. requestBodystring|null Request body for POST/PUT/PATCH (max 100KB). Null clears it. Encrypted at rest. followRedirectsboolean Whether to follow HTTP redirects cookieHandlingstring none or jar (maintain cookie jar across redirects)
Field Type Description mtlsEnabledboolean Enable mutual TLS authentication. Setting to false clears cert and key. mtlsClientCertstring|null Client certificate (max 100KB). Required when mtlsEnabled is true. Encrypted at rest. mtlsClientKeystring|null Client private key (max 100KB). Required when mtlsEnabled is true. Encrypted at rest.
Field Type Description playwrightScriptstring|null Required when monitoringType is playwright (1-20000 chars) playwrightEnvobject|null Environment variables (max 50, keys must match ^[A-Z_][A-Z0-9_]*$) playwrightDevicestring|null Device emulation preset playwrightViewportWidthnumber|null Viewport width (1-3840). Must be set with playwrightViewportHeight. playwrightViewportHeightnumber|null Viewport height (1-3840). Must be set with playwrightViewportWidth. playwrightRetriesnumber|null Retries (0-5) playwrightTimeoutMsnumber|null Timeout in milliseconds (1000-180000)
Field Type Description checkExpectedResponseEnabledboolean Enable response body validation expectedResponseMatchTypestring|null contains, equals, json_path_equalsexpectedResponseValuestring|null Value to match (max 10000 chars). Required when enabled. expectedResponseJsonPathstring|null JSON path (max 500 chars). Required when json_path_equals.
Field Type Description checkSslEnabledboolean Enable SSL checks (disabled for Playwright) checkHttpsRedirectEnabledboolean Check HTTPS redirect (disabled for Playwright) checkStatusEnabledboolean Check HTTP status (disabled for Playwright) checkSizeEnabledboolean Check response size (disabled for Playwright) checkResponseTimeEnabledboolean Check response time (disabled for Playwright) checkKeywordEnabledboolean Enable keyword search (disabled for Playwright)
Field Type Description sslNoticeDaysnumber SSL notice threshold (1-365, must be ≥ sslErrorDays) sslErrorDaysnumber SSL error threshold (0-365) checkDomainExpiryEnabledboolean Enable domain expiry checks (disabled for Playwright) domainExpiryNoticeDaysnumber Domain expiry notice threshold (1-365) domainExpiryErrorDaysnumber Domain expiry error threshold (0-365)
Field Type Description minPageSizenumber|null Minimum page size in bytes (must be ≤ maxPageSize) maxPageSizenumber|null Maximum page size in bytes dnsConfigobject DNS query configuration (only for dns monitoring type) heartbeatGracePeriodMinutesnumber Heartbeat grace period (1-10080)
Returns the updated website record. Encrypted fields are never included in responses.
{
"id" : 101 ,
"customerId" : 1 ,
"name" : "Updated Website Name" ,
"url" : "https://deinkunde.com" ,
"status" : "active" ,
"monitoringType" : "combined" ,
"checkInterval" : 5 ,
"timeoutSeconds" : 10 ,
"httpMethod" : "POST" ,
"followRedirects" : false ,
"cookieHandling" : "jar" ,
"mtlsEnabled" : true ,
"updatedAt" : "2026-02-26T12:34:56.000Z"
}
400 Website public ID (UUID) is required when :websitePublicId is missing
401 Unauthorized when you are not logged in
403 Forbidden when you cannot write to the website (e.g. readonly/global supporter)
403 Forbidden (managed_by_organization) when a customer-scoped caller edits a managed monitor without the canEditManaged exception
403 Forbidden (managementTypeOrgOnly) when a non-org-admin tries to change managementType
403 Forbidden (selfServiceQuotaReached) when flipping to self_service would exceed the customer's quota
404 Customer not found when customerId does not resolve to an existing customer
500 Failed to update website on server errors