Uptimeify Docs

Website aktualisieren

Aktualisiert eine Website. Beherrscht Teil-Updates (nur gesendete Felder ändern sich) und Voll-Updates (alle Pflichtfelder müssen dabei sein).

PATCH /api/websites/:websitePublicId

Eine Anfrage gilt als Voll-Update, sobald customerId, name und url alle drei im Körper stehen. Sonst ist es ein Teil-Update.

Beispiel (cURL): Teil-Update

BASE_URL="https://uptimeify.io"
TOKEN="<dein-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": "Aktualisierter Name",
    "checkInterval": 5,
    "timeoutSeconds": 10
  }'

Beispiel (cURL): Voll-Update mit HTTP-Konfiguration

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": "<PEM-kodiertes Client-Zertifikat>",
    "mtlsClientKey": "<PEM-kodierter privater Schluessel>"
  }'

Anfrage (Request Body)

Für ein Voll-Update sind customerId, name und url Pflicht; jedes weitere Feld ist optional.

Ein Teil-Update übernimmt diese Felder: name, url, status, managementType, checkInterval, timeoutSeconds, expectedStatusCodes, searchTerm, checkExpectedResponseEnabled, expectedResponseMatchType, expectedResponseValue, expectedResponseJsonPath, heartbeatGracePeriodMinutes, connectHost, connectPort, connectTlsInsecure, die sechs Prüf-Felder, checkDomainExpiryEnabled, sslNoticeDays, sslErrorDays, domainExpiryNoticeDays, domainExpiryErrorDays, minPageSize und maxPageSize. Alles andere aus den Tabellen unten (monitoringType, allowedCheckCountryCodes, customFields, die Felder für Authentifizierung, HTTP-Anfrage, mTLS und Playwright sowie dnsConfig) greift nur im Voll-Update: allein geschickt bleibt es ohne Fehlermeldung wirkungslos. Schick customerId, name und url mit, oder nimm den jeweiligen eigenen Endpunkt, wo es einen gibt.

Kernfelder

FeldTypBeschreibung
customerIdnumber|stringPublic ID des Kunden (bevorzugt) oder die alte numerische ID
namestringAnzeigename, 1 bis 255 Zeichen
urlstringZu überwachende Adresse, höchstens 2048 Zeichen. HTTP-Monitore brauchen die vollständige URL samt Protokoll, DNS-Monitore nur den Hostnamen (ohne Protokoll, ohne Pfad).
monitoringTypestringcombined, http_status, ssl_check, playwright, heartbeat, dns
statusstringactive, inactive, maintenance (paused → inactive)
checkIntervalnumberPrüfintervall in Minuten. 1 bis 1440 (24 Stunden) für aktiv getaktete Monitore, 1 bis 43200 (30 Tage) für heartbeat-Monitore. Die Obergrenze richtet sich nach der Monitor-Art: monitoringType aus dem Request, sonst die gespeicherte Art.
timeoutSecondsnumberZeitlimit der Anfrage in Sekunden (1 bis 60)
expectedStatusCodesstringErwartete HTTP-Statuscodes, durch Komma getrennt
allowedCheckCountryCodesstring[]|nullZweibuchstabige Ländercodes; null setzt auf die Vorgabe der Organisation zurück
searchTermstring|nullSchlüsselwort, nach dem gesucht wird (null löscht es)
customFieldsobject|nullEigene Feldwerte
managementTypestringOwnership-Klasse: managed oder self_service, siehe Managed vs. Self-Service. Der Wechsel der Klasse ist Organisations-Admins vorbehalten; das Umstellen auf self_service erfordert allowSelfService und freies Kontingent.

Authentifizierung

FeldTypBeschreibung
authModestringnone, authorization_header, basic. none löscht die hinterlegten Zugangsdaten.
authorizationHeaderstring|nullPflicht, wenn authMode auf authorization_header steht. Verschlüsselt gespeichert.
basicAuthUsernamestring|nullPflicht, wenn authMode auf basic steht.
basicAuthPasswordstring|nullPflicht, wenn authMode auf basic steht. Verschlüsselt gespeichert.

HTTP-Anfrage konfigurieren

FeldTypBeschreibung
httpMethodstringGET, QUERY, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
customHeadersobject|nullEigene HTTP-Header (Schlüssel 1 bis 100 Zeichen, Werte höchstens 8192 Zeichen). null löscht sie. Verschlüsselt gespeichert.
requestBodystring|nullAnfragekörper, höchstens 100 KB. Wird bei jeder Methode außer GET und HEAD mitgesendet. null löscht ihn. Verschlüsselt gespeichert.
followRedirectsbooleanOb Weiterleitungen verfolgt werden
cookieHandlingstringnone oder jar, letzteres behält Cookies über Weiterleitungen hinweg

QUERY ist sicher und idempotent wie GET, trägt aber einen Anfragekörper. Den Hintergrund dazu erklärt Website erstellen.

Ersatzziel

FeldTypBeschreibung
connectHoststring|nullDie Verbindung geht an diesen Host/diese IP statt an den aus url; URL, Pfad, Host-Header und TLS-SNI bleiben unverändert. Nur Host, oder Host mit Port; IPv6 in eckigen Klammern. null löscht das Ersatzziel und setzt connectTlsInsecure mit auf false zurück. Private, Loopback-, Link-Local- und sonst gesperrte Adressen werden abgelehnt (connectHostNotPublic).
connectPortnumber|nullPort für connectHost (1 bis 65535). Wirkt nur, wenn connectHost in derselben Anfrage mitgeschickt wird; allein gesendet bleibt es wirkungslos.
connectTlsInsecurebooleanSchaltet die Zertifikatsprüfung für connectHost ab. Nur gültig, solange ein connectHost gesetzt ist (sonst connectTlsInsecureWithoutHost).

Gilt im Teil-Update genauso wie im Voll-Update. Nicht verfügbar für playwright-Szenarien und heartbeat-Monitore: beide durchlaufen nicht die HTTP/SSL-Prüfkette, in die connectHost eingreift. Ist checkHttpsRedirectEnabled eingeschaltet, folgt auch die Umleitungsprüfung von http auf https dem connectHost und misst damit den Origin - eine von der WAF übernommene Umleitung kann den Monitor dann zu Recht rot werden lassen, obwohl die öffentliche Seite korrekt umleitet.

mTLS (gegenseitiges TLS)

FeldTypBeschreibung
mtlsEnabledbooleanGegenseitige TLS-Authentifizierung einschalten. false löscht Zertifikat und Schlüssel.
mtlsClientCertstring|nullClient-Zertifikat (höchstens 100 KB). Pflicht, wenn mtlsEnabled true ist. Verschlüsselt gespeichert.
mtlsClientKeystring|nullPrivater Schlüssel des Clients (höchstens 100 KB). Pflicht, wenn mtlsEnabled true ist. Verschlüsselt gespeichert.

Playwright-Monitoring

FeldTypBeschreibung
playwrightScriptstring|nullPflicht, wenn monitoringType auf playwright steht (1 bis 100000 Zeichen)
playwrightEnvobject|nullUmgebungsvariablen (höchstens 50; Schlüssel nach dem Muster ^[A-Z_][A-Z0-9_]*$)
playwrightDevicestring|nullVoreinstellung für die Geräteemulation
playwrightViewportWidthnumber|nullBreite des Sichtfensters (1 bis 3840). Nur zusammen mit playwrightViewportHeight.
playwrightViewportHeightnumber|nullHöhe des Sichtfensters (1 bis 3840). Nur zusammen mit playwrightViewportWidth.
playwrightRetriesnumber|nullWiederholungen (0 bis 5)
playwrightTimeoutMsnumber|nullZeitlimit in Millisekunden (1000 bis 180000)

Erwartete Antwort prüfen

FeldTypBeschreibung
checkExpectedResponseEnabledbooleanPrüfung des Antwortkörpers einschalten
expectedResponseMatchTypestring|nullcontains, equals, json_path_equals
expectedResponseValuestring|nullWert, der passen muss (höchstens 10000 Zeichen). Pflicht, sobald die Prüfung eingeschaltet ist.
expectedResponseJsonPathstring|nullJSON-Pfad (höchstens 500 Zeichen). Pflicht bei json_path_equals.

Prüfungen ein- und ausschalten

FeldTypBeschreibung
checkSslEnabledbooleanZertifikatsprüfung (bei Playwright abgeschaltet)
checkHttpsRedirectEnabledbooleanPrüfung der HTTPS-Weiterleitung (bei Playwright abgeschaltet)
checkStatusEnabledbooleanPrüfung des HTTP-Status (bei Playwright abgeschaltet)
checkSizeEnabledbooleanPrüfung der Antwortgröße (bei Playwright abgeschaltet)
checkResponseTimeEnabledbooleanPrüfung der Antwortzeit (bei Playwright abgeschaltet)
checkKeywordEnabledbooleanSuche nach dem Schlüsselwort (bei Playwright abgeschaltet)

Ein im Request fehlendes Prüf-Feld lässt den gespeicherten Wert unverändert. Das Paket der Organisation kann eine Prüfung verbieten: ein true für eine verbotene Prüfung wird nur dann auf false zurückgeklemmt, wenn die Prüfung noch nicht läuft; eine bereits als true gespeicherte Prüfung schaltet das Paket bei diesem oder jedem späteren Update nie ab.

Schwellen für Zertifikat und Domain

FeldTypBeschreibung
sslNoticeDaysnumberSchwelle für den Zertifikatshinweis (1 bis 365, muss ≥ sslErrorDays sein)
sslErrorDaysnumberSchwelle für den Zertifikatsfehler (0 bis 365)
checkDomainExpiryEnabledbooleanPrüfung des Domain-Ablaufs (bei Playwright abgeschaltet)
domainExpiryNoticeDaysnumberSchwelle für den Domain-Hinweis (1 bis 365)
domainExpiryErrorDaysnumberSchwelle für den Domain-Fehler (0 bis 365)

Seitengröße und Sonstiges

FeldTypBeschreibung
minPageSizenumber|nullKleinste Seitengröße in Bytes (muss ≤ maxPageSize sein)
maxPageSizenumber|nullGrößte Seitengröße in Bytes
dnsConfigobjectKonfiguration der DNS-Abfrage (nur beim Monitor-Typ dns)
heartbeatGracePeriodMinutesnumberKarenzzeit des Heartbeats (1 bis 10080)

Antwort (Response)

Gibt den aktualisierten Website-Datensatz zurück. Die verschlüsselt gespeicherten Felder gibt die API grundsätzlich nicht heraus.

{
  "id": 101,
  "customerId": 1,
  "name": "Aktualisierter Name",
  "url": "https://deinkunde.com",
  "status": "active",
  "monitoringType": "combined",
  "checkInterval": 5,
  "timeoutSeconds": 10,
  "httpMethod": "POST",
  "followRedirects": false,
  "cookieHandling": "jar",
  "mtlsEnabled": true,
  "connectHost": null,
  "connectPort": null,
  "connectTlsInsecure": false,
  "updatedAt": "2026-02-26T12:34:56.000Z"
}

Häufige Fehler

  • 400 Website public ID (UUID) is required, wenn :websitePublicId fehlt
  • 401 Unauthorized, wenn du nicht angemeldet bist
  • 403 Forbidden, wenn du auf die Website nicht schreiben darfst (etwa als Readonly- oder globaler Supporter-Zugang)
  • 403 Forbidden (managed_by_organization), wenn ein kunden-gescopter Aufrufer einen managed-Monitor ohne die Ausnahme canEditManaged bearbeitet
  • 403 Forbidden (managementTypeOrgOnly), wenn jemand ohne Org-Admin-Rechte managementType ändern will
  • 403 Forbidden (selfServiceQuotaReached), wenn das Umstellen auf self_service das Kontingent des Kunden überschreiten würde
  • 404 Customer not found, wenn sich customerId keinem bestehenden Kunden zuordnen lässt
  • 400 Invalid check configuration (invalidCheckConfig), wenn ein Teil-Update ein Prüf-Feld ausserhalb seiner Grenzen schickt (etwa sslNoticeDays: 400)
  • 400 Bad Request (connectHostInvalid), wenn connectHost kein gültiger Host ist oder Protokoll bzw. Pfad enthält
  • 400 Bad Request (connectHostNotPublic), wenn connectHost auf eine private, Loopback-, Link-Local- oder sonst gesperrte Adresse auflöst
  • 400 Bad Request (connectTlsInsecureWithoutHost), wenn das sich ergebende connectTlsInsecure true ist, während das sich ergebende connectHost leer bleibt
  • 500 Failed to update website bei Serverfehlern

Auf dieser Seite