POST Monitor-Test starten
/api/v1/monitors/{id}/checks/test-runs
Starten Sie einen Test am gewählten Standort ohne Änderung der Messhistorie oder Alarmbestätigungen. Dieselbe Anfragekennung liefert den ursprünglichen Auftrag.
Auf dieser Seite
Zugriff und Rechte
Starten Sie einen Test am gewählten Standort ohne Änderung der Messhistorie oder Alarmbestätigungen. Dieselbe Anfragekennung liefert den ursprünglichen Auftrag.
Browsersitzung: Cookie __Host-mb_session.
Maschinen-Verwaltungszugang in Authorization: Bearer. Beachten Sie die von der Operation benötigten Berechtigungen (Scopes).
Senden Sie bei einer Änderung mit Browsersitzung das aktuelle CSRF-Token in X-CSRF-Token zusammen mit dem Same-Site-Cookie. OAuth-Zustimmung verwendet ihr dokumentiertes Formularfeld.
Parameter und Header
| Feld | Position | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|---|
| id | Pfad | string; {"format":"uuid"} | Ja | Ressourcen-UUID aus dem Pfad. Sie muss existieren und für die handelnde Identität zugänglich sein. |
| Origin | Header | string; {"format":"uri"} | Nein | Muss, falls vorhanden, dem kanonischen HTTPS-Origin entsprechen. Sec-Fetch-Site cross-site wird abgewiesen. |
| X-CSRF-Token | Header | string | Nein | Wert des Browser-CSRF-Cookies. Bei einem zulässigen Maschinen-Verwaltungszugang nicht erforderlich. |
Anfragekörper
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | CheckTestRequest | Ja | — |
| $.expected_revision | integer; {"minimum":1} | Ja | — |
| $.location_id | string; {"format":"uuid"} | Ja | — |
| $.request_id | string; {"format":"uuid"} | Ja | — |
Antworten
| Stabile Fehlercodes |
|---|
| invalid_credential |
| unauthorized |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
{
"code": "demo",
"detail": "Demo error detail; inspect the documented code.",
"instance": "demo",
"message": "Demo error detail; inspect the documented code.",
"message_key": "errors.requestFailed",
"message_params": {},
"request_id": "00000000000000000000000000000000",
"status": 401,
"title": "Demo error",
"type": "about:blank"
}| Stabile Fehlercodes |
|---|
| csrf |
| insufficient_scope |
| invalid_origin |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
{
"code": "demo",
"detail": "Demo error detail; inspect the documented code.",
"instance": "demo",
"message": "Demo error detail; inspect the documented code.",
"message_key": "errors.requestFailed",
"message_params": {},
"request_id": "00000000000000000000000000000000",
"status": 403,
"title": "Demo error",
"type": "about:blank"
}| Stabile Fehlercodes |
|---|
| not_found |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
{
"code": "demo",
"detail": "Demo error detail; inspect the documented code.",
"instance": "demo",
"message": "Demo error detail; inspect the documented code.",
"message_key": "errors.requestFailed",
"message_params": {},
"request_id": "00000000000000000000000000000000",
"status": 404,
"title": "Demo error",
"type": "about:blank"
}| Stabile Fehlercodes |
|---|
| invalid_selection |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
{
"code": "demo",
"detail": "Demo error detail; inspect the documented code.",
"instance": "demo",
"message": "Demo error detail; inspect the documented code.",
"message_key": "errors.requestFailed",
"message_params": {},
"request_id": "00000000000000000000000000000000",
"status": 422,
"title": "Demo error",
"type": "about:blank"
}| Stabile Fehlercodes |
|---|
| creation_quota |
| rule_limit |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Retry-After | string; {"pattern":"^[0-9]+$"} | Sekunden bis zur Wiederholung. Bewahren Sie unterstützte Idempotenzkennungen und beachten Sie die Änderungsregeln der Operation. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
{
"code": "demo",
"detail": "Demo error detail; inspect the documented code.",
"instance": "demo",
"message": "Demo error detail; inspect the documented code.",
"message_key": "errors.requestFailed",
"message_params": {},
"request_id": "00000000000000000000000000000000",
"status": 429,
"title": "Demo error",
"type": "about:blank"
}| Stabile Fehlercodes |
|---|
| feature_unavailable |
| unavailable |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Retry-After | string; {"pattern":"^[0-9]+$"} | Sekunden bis zur Wiederholung. Bewahren Sie unterstützte Idempotenzkennungen und beachten Sie die Änderungsregeln der Operation. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
{
"code": "demo",
"detail": "Demo error detail; inspect the documented code.",
"instance": "demo",
"message": "Demo error detail; inspect the documented code.",
"message_key": "errors.requestFailed",
"message_params": {},
"request_id": "00000000000000000000000000000000",
"status": 503,
"title": "Demo error",
"type": "about:blank"
}| Stabile Fehlercodes |
|---|
| stale_check |
| result_conflict |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Header | Typ und Grenzen | Bedeutung |
|---|---|---|
| Cache-Control | string; {"pattern":"(?:^|,\\s*)no-store(?:,|$)"} | Private API-Antworten verbieten Speicherung. Öffentliche OAuth-Metadaten werden 300 Sekunden gecacht; Livestreams verbieten zusätzlich Transformation. |
| Content-Language | string; {"enum":["en","de"]} | Sprache lesbarer Antworttexte aus Accept-Language oder der dokumentierten Browserpräferenz. Technische Codes und Kennungen bleiben stabil. |
| Referrer-Policy | JSON; {"enum":["strict-origin-when-cross-origin","no-referrer"]} | Standard-Referrerpolicy ist strict-origin-when-cross-origin. Anbieterloginantworten verwenden no-referrer zum Schutz der Loginparameter. |
| Vary | string | Antworten variieren nach Accept-Language; browsergerenderte Antworten können zusätzlich nach Präferenzcookie variieren. |
| X-Content-Type-Options | JSON; {"const":"nosniff"} | Der Browser muss den angegebenen Inhaltstyp verwenden. |
| X-Frame-Options | JSON; {"const":"DENY"} | Die Antwort darf nicht in einem Frame eingebettet werden. |
| X-Request-ID | string | Vom Server erzeugte Anfragekennung. Bei Fehlermeldungen mitgeben; eingehende Werte werden nicht als vertrauenswürdig übernommen. |
application/json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | CheckTestRun | Ja | — |
| $.id | string; {"format":"uuid"} | Ja | — |
| $.monitor_id | string; {"format":"uuid"} | Ja | — |
| $.location_id | string; {"format":"uuid"} | Ja | — |
| $.config_revision | integer; {"minimum":1} | Ja | — |
| $.status | string; {"enum":["pending","running","completed","cancelled","expired"]} | Ja | — |
| $.pause_reason | string | null; {"enum":["network_quota","browser_quota",null]} | Ja | — |
| $.created_at | string; {"format":"date-time"} | Ja | — |
| $.deadline_at | string; {"format":"date-time"} | Ja | — |
| $.finished_at | string | null; {"format":"date-time"} | Ja | — |
| $.result | CheckResult | null | Ja | — |
| $.result (oneOf 1) | CheckResult | Nein | — |
| $.result (oneOf 1).code | string; {"pattern":"^[a-z][a-z0-9_]{0,63}$"} | Ja | — |
| $.result (oneOf 1).duration_ms | number; {"maximum":360000,"minimum":0} | Ja | — |
| $.result (oneOf 1).metrics | object | null | Nein | — |
| $.result (oneOf 1).status | JSON; {"enum":["up","down","unknown"]} | Ja | — |
| $.result (oneOf 1).states | object | null | Nein | — |
| $.result (oneOf 1).details | CheckPublicDiagnostics | Nein | — |
| $.result (oneOf 1).details.address | string; {"maxLength":45} | Nein | — |
| $.result (oneOf 1).details.certificate_sha256 | string; {"pattern":"^[a-f0-9]{64}$"} | Nein | — |
| $.result (oneOf 1).details.certificate_not_before | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).details.certificate_not_after | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).details.response_code | string; {"pattern":"^[A-Z0-9_]{1,32}$"} | Nein | — |
| $.result (oneOf 1).details.answers | array<string; {"maxLength":1024}>; {"maxItems":64} | Nein | — |
| $.result (oneOf 1).details.answers[] | string; {"maxLength":1024} | Ja | — |
| $.result (oneOf 1).details.certificate_chain | array<object; {"additionalProperties":false}>; {"maxItems":16} | Nein | — |
| $.result (oneOf 1).details.certificate_chain[] | object; {"additionalProperties":false} | Ja | — |
| $.result (oneOf 1).details.certificate_chain[].sha256 | string; {"pattern":"^[a-f0-9]{64}$"} | Ja | — |
| $.result (oneOf 1).details.certificate_chain[].not_before | string; {"format":"date-time"} | Ja | — |
| $.result (oneOf 1).details.certificate_chain[].not_after | string; {"format":"date-time"} | Ja | — |
| $.result (oneOf 1).details.certificate_chain[].is_ca | boolean | Ja | — |
| $.result (oneOf 1).details.ssh_host_key_sha256 | string; {"pattern":"^SHA256:[A-Za-z0-9+/]{43}$"} | Nein | — |
| $.result (oneOf 1).details.domain | CheckDomainRegistration | Nein | — |
| $.result (oneOf 1).details.domain.domain | string; {"maxLength":253} | Ja | — |
| $.result (oneOf 1).details.domain.expires_at | string; {"format":"date-time"} | null | Ja | — |
| $.result (oneOf 1).details.domain.expires_at (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).details.domain.expires_at (anyOf 2) | null | Nein | — |
| $.result (oneOf 1).details.domain.registrar | string; {"maxLength":256} | null | Ja | — |
| $.result (oneOf 1).details.domain.registrar (anyOf 1) | string; {"maxLength":256} | Nein | — |
| $.result (oneOf 1).details.domain.registrar (anyOf 2) | null | Nein | — |
| $.result (oneOf 1).details.domain.nameservers | array | null; {"maxItems":32} | Ja | — |
| $.result (oneOf 1).details.domain.nameservers[] | string; {"maxLength":253} | Ja | — |
| $.result (oneOf 1).details.domain.nameservers_known | boolean | Ja | — |
| $.result (oneOf 1).details.domain.status | array | null; {"maxItems":32} | Ja | — |
| $.result (oneOf 1).details.domain.status[] | string; {"maxLength":128} | Ja | — |
| $.result (oneOf 1).details.domain.status_known | boolean | Ja | — |
| $.result (oneOf 1).details.domain.source | string; {"enum":["rdap","whois"]} | Ja | — |
| $.result (oneOf 1).details.domain.observed_at | string; {"format":"date-time"} | Ja | — |
| $.result (oneOf 1).details.domain.registry_updated_at | string; {"format":"date-time"} | null | Ja | — |
| $.result (oneOf 1).details.domain.registry_updated_at (anyOf 1) | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).details.domain.registry_updated_at (anyOf 2) | null | Nein | — |
| $.result (oneOf 1).details.domain.expiration_conflict | boolean | Ja | — |
| $.result (oneOf 1).details.retry_at | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).details.certificate | TLSSnapshot | Nein | — |
| $.result (oneOf 1).details.certificate.host | string; {"maxLength":253} | Ja | — |
| $.result (oneOf 1).details.certificate.tls_version | string | Ja | — |
| $.result (oneOf 1).details.certificate.chain | array<TLSCertificate>; {"minItems":1,"maxItems":16} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[] | TLSCertificate | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].sha256 | string; {"pattern":"^[a-f0-9]{64}$"} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].common_name | string; {"maxLength":256} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].issuer | string; {"maxLength":256} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].serial | string; {"maxLength":128} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].not_before | string; {"format":"date-time"} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].not_after | string; {"format":"date-time"} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].names | array<string; {"maxLength":253}>; {"maxItems":128} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].names[] | string; {"maxLength":253} | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].is_ca | boolean | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].sent | boolean | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].signature | string | Ja | — |
| $.result (oneOf 1).details.certificate.chain[].key | string | Ja | — |
| $.result (oneOf 1).details.certificate.checks | array<object; {"additionalProperties":false}>; {"minItems":7,"maxItems":7} | Ja | — |
| $.result (oneOf 1).details.certificate.checks[] | object; {"additionalProperties":false} | Ja | — |
| $.result (oneOf 1).details.certificate.checks[].key | string; {"enum":["validity","hostname","authority","chain","revocation","tls","strength"]} | Ja | — |
| $.result (oneOf 1).details.certificate.checks[].status | string; {"enum":["passed","failed","unknown"]} | Ja | — |
| $.result (oneOf 1).details.certificate.checks[].reason | string; {"maxLength":64} | Ja | — |
| $.result (oneOf 1).details.certificate.revocation_valid_until | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).details.certificate.truncated | boolean | Nein | — |
| $.result (oneOf 1).details.certificate.port | integer; {"minimum":1,"maximum":65535} | Nein | — |
| $.result (oneOf 1).mail_delivery | CheckMailObservation | Nein | — |
| $.result (oneOf 1).mail_delivery.phase | string; {"enum":["smtp","imap"]} | Ja | — |
| $.result (oneOf 1).mail_delivery.accepted | boolean | Ja | — |
| $.result (oneOf 1).mail_delivery.uncertain | boolean | Ja | — |
| $.result (oneOf 1).mail_delivery.received | boolean | Ja | — |
| $.result (oneOf 1).mail_delivery.removed | boolean | Ja | — |
| $.result (oneOf 1).mail_delivery.cleanup_unavailable | boolean | Ja | — |
| $.result (oneOf 1).mail_delivery.received_at | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).browser | BrowserObservation | Nein | — |
| $.result (oneOf 1).browser.engines | array<BrowserEngineResult>; {"maxItems":3,"minItems":1} | Ja | — |
| $.result (oneOf 1).browser.engines[] | BrowserEngineResult | Ja | — |
| $.result (oneOf 1).browser.engines[].engine | string; {"enum":["chromium","firefox","webkit"]} | Ja | — |
| $.result (oneOf 1).browser.engines[].status | string; {"enum":["up","down","unknown"]} | Ja | — |
| $.result (oneOf 1).browser.engines[].code | string; {"pattern":"^[a-z][a-z0-9_]{0,63}$"} | Ja | — |
| $.result (oneOf 1).browser.engines[].duration_ms | number; {"minimum":0,"maximum":120000} | Ja | — |
| $.result (oneOf 1).browser.engines[].wall_ms | number; {"minimum":0,"maximum":120000} | Ja | — |
| $.result (oneOf 1).browser.engines[].steps | array<BrowserStepResult>; {"maxItems":128,"minItems":0} | Ja | — |
| $.result (oneOf 1).browser.engines[].steps[] | BrowserStepResult | Ja | — |
| $.result (oneOf 1).browser.engines[].steps[].index | integer; {"minimum":0,"maximum":127} | Ja | — |
| $.result (oneOf 1).browser.engines[].steps[].status | string; {"enum":["up","down","skipped"]} | Ja | — |
| $.result (oneOf 1).browser.engines[].steps[].code | string; {"pattern":"^[a-z][a-z0-9_]{0,63}$"} | Ja | — |
| $.result (oneOf 1).browser.engines[].steps[].duration_ms | number; {"minimum":0,"maximum":120000} | Ja | — |
| $.result (oneOf 1).browser.engines[].steps[].parent | integer; {"minimum":0,"maximum":126} | Nein | — |
| $.result (oneOf 1).browser.engines[].steps[].name | string; {"maxLength":160} | Nein | — |
| $.result (oneOf 1).browser.engines[].steps[].kind | string; {"enum":["test","step","hook"]} | Nein | — |
| $.result (oneOf 1).browser.engines[].steps[].source | object; {"additionalProperties":false} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics | object; {"additionalProperties":false} | null | Ja | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1) | object; {"additionalProperties":false} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).network_errors | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).javascript_errors | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).requests | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).page_load_ms | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).visual_diff_ratio | number; {"minimum":0,"maximum":1} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).lcp_ms | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).fcp_ms | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).tbt_ms | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).ttfb_ms | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 1).cls | number; {"minimum":0,"maximum":1000000000.0} | Nein | — |
| $.result (oneOf 1).browser.engines[].metrics (anyOf 2) | null | Nein | — |
| $.result (oneOf 1).browser.engines[].artifact_code | string; {"enum":["","recording_unavailable"]} | Nein | — |
| $.result (oneOf 1).browser.engines[].runtime | string; {"enum":["journey-2"]} | Nein | — |
| $.result (oneOf 1).browser.engines[].navigations | array<BrowserNavigation>; {"maxItems":64} | Nein | — |
| $.result (oneOf 1).browser.engines[].navigations[] | BrowserNavigation | Ja | — |
| $.result (oneOf 1).browser.engines[].navigations[].page | integer; {"minimum":1,"maximum":16} | Ja | — |
| $.result (oneOf 1).browser.engines[].navigations[].index | integer; {"minimum":1,"maximum":64} | Ja | — |
| $.result (oneOf 1).browser.engines[].navigations[].started_ms | number; {"minimum":0,"maximum":120000} | Ja | — |
| $.result (oneOf 1).browser.engines[].navigations[].complete | boolean | Ja | — |
| $.result (oneOf 1).browser.engines[].navigations[].vitals | object; {"additionalProperties":false} | Ja | — |
| $.result (oneOf 1).http | object | Nein | — |
| $.result (oneOf 1).http.attempts | array<object>; {"maxItems":1} | Ja | — |
| $.result (oneOf 1).http.attempts[] | object | Ja | Reine Statusprüfungen enden nach Empfang der Antwortheader, ohne den Inhalt herunterzuladen. Text- und JSON-Prüfungen lesen bis zu 1 MiB (1.048.576 Byte). Größere Antworten erzeugen response_body_too_large und content_match unknown; nur bei content_as_down false richtet sich die Verfügbarkeit weiter allein nach dem HTTP-Status. Andernfalls bleibt ein erwarteter HTTP-Status mit nicht prüfbarem Inhalt unbekannt. Ein unerwarteter HTTP-Status gilt weiterhin als Fehler. Lesefehler verwenden response_body_read_error. Historische response_body-Diagnosen behalten ihre ursprüngliche Bedeutung. Der empfangene HTTP-Status bleibt in allen Fällen erhalten. |
| $.result (oneOf 1).http.attempts[].body_matched | boolean | Nein | — |
| $.result (oneOf 1).http.attempts[].certificate_days | integer | Nein | — |
| $.result (oneOf 1).http.attempts[].checked_at | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).http.attempts[].duration_ms | integer | Ja | Millisekunden bis zum Empfang der Antwortheader bei reinen Statusprüfungen beziehungsweise bis zum begrenzten Einlesen des Inhalts bei Text- und JSON-Prüfungen. |
| $.result (oneOf 1).http.attempts[].failure_code | string; {"enum":["","dns","target_denied","connection","tls","timeout","response_body","response_body_too_large","response_body_read_error","redirect","http_status","body_mismatch"]} | Nein | — |
| $.result (oneOf 1).http.attempts[].healthy | boolean | Nein | — |
| $.result (oneOf 1).http.attempts[].hops | array<object>; {"maxItems":4} | Nein | — |
| $.result (oneOf 1).http.attempts[].hops[] | object | Ja | — |
| $.result (oneOf 1).http.attempts[].hops[].connect_ms | number | Nein | — |
| $.result (oneOf 1).http.attempts[].hops[].dns_ms | number | Ja | — |
| $.result (oneOf 1).http.attempts[].hops[].duration_ms | number | Ja | — |
| $.result (oneOf 1).http.attempts[].hops[].family | string; {"enum":["ipv4","ipv6"]} | Nein | — |
| $.result (oneOf 1).http.attempts[].hops[].status | integer | Nein | — |
| $.result (oneOf 1).http.attempts[].hops[].tls_ms | number | Nein | — |
| $.result (oneOf 1).http.attempts[].hops[].ttfb_ms | number | Nein | — |
| $.result (oneOf 1).http.attempts[].initial_status | integer | Nein | — |
| $.result (oneOf 1).http.attempts[].redirects | integer | Ja | — |
| $.result (oneOf 1).http.attempts[].status | integer | Ja | — |
| $.result (oneOf 1).http.attempts[].method | string; {"enum":["GET","HEAD"]} | Nein | — |
| $.result (oneOf 1).http.attempts[].certificate | TLSSnapshot | Nein | — |
| $.result (oneOf 1).http.attempts[].certificate.host | string; {"maxLength":253} | Ja | — |
| $.result (oneOf 1).http.attempts[].certificate.tls_version | string | Ja | — |
| $.result (oneOf 1).http.attempts[].certificate.chain | array<TLSCertificate>; {"minItems":1,"maxItems":16} | Ja | — |
| $.result (oneOf 1).http.attempts[].certificate.chain[] | TLSCertificate | Ja | — |
| $.result (oneOf 1).http.attempts[].certificate.checks | array<object; {"additionalProperties":false}>; {"minItems":7,"maxItems":7} | Ja | — |
| $.result (oneOf 1).http.attempts[].certificate.checks[] | object; {"additionalProperties":false} | Ja | — |
| $.result (oneOf 1).http.attempts[].certificate.revocation_valid_until | string; {"format":"date-time"} | Nein | — |
| $.result (oneOf 1).http.attempts[].certificate.truncated | boolean | Nein | — |
| $.result (oneOf 1).http.attempts[].certificate.port | integer; {"minimum":1,"maximum":65535} | Nein | — |
| $.result (oneOf 2) | null | Nein | — |
| $.progress | object | Nein | — |
Wiederholungen und asynchrone Aufträge
Behalten Sie die dokumentierten Kennungen bei Wiederholungen. Ersetzen Sie sie nach einer unklaren Antwort nicht durch neue Kennungen, die eine weitere Ressource oder Messung erzeugen könnten.
HTTP 202 bedeutet, dass der Hintergrundauftrag angenommen wurde. Prüfen Sie seinen Status mit der zurückgegebenen Auftragskennung. Laden Sie Ergebnisse nach dem Abschluss herunter oder lesen Sie den Fehler- beziehungsweise Abbruchstatus.
Anfragebeispiele
Ersetzen Sie Demokennungen, Zeitstempel und Platzhalter durch eigene Werte. Behalten Sie bei Wiederholungen Kennungen, Zeit und Inhalt bei. Diese Beispiele führen auf der Seite keine Anfragen aus.
Halten Sie Anmeldelinks, Codes, Cookies und Schlüssel privat. Schreiben Sie sie nicht in Logs und teilen Sie sie nicht in Hilfeanfragen.
curl --silent --show-error --output /dev/null --write-out "%{http_code}\n" \
--request POST \
--header @"$HOME/.config/metribeacon/headers.txt" \
--header "Content-Type: application/json" \
--data-binary '{"expected_revision":1,"location_id":"00000000-0000-4000-8000-000000000002","request_id":"00000000-0000-4000-8000-000000000003"}' \
"https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/checks/test-runs"
import json
from pathlib import Path
from urllib.request import Request, HTTPRedirectHandler, build_opener
from urllib.error import HTTPError
headers = json.loads((Path.home() / ".config/metribeacon/headers.json").read_text())
headers["Content-Type"] = "application/json"
request = Request("https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/checks/test-runs", data="{\"expected_revision\":1,\"location_id\":\"00000000-0000-4000-8000-000000000002\",\"request_id\":\"00000000-0000-4000-8000-000000000003\"}".encode("utf-8"), headers=headers, method="POST")
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, request, fp, code, message, headers, target):
return None
opener = build_opener(NoRedirect())
try:
with opener.open(request, timeout=10) as response:
print(response.status)
except HTTPError as error:
print(error.code)
error.close()
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";
const headers = JSON.parse(await readFile(join(homedir(), ".config/metribeacon/headers.json"), "utf8"));
headers["Content-Type"] = "application/json";
const response = await fetch("https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/checks/test-runs", {
method: "POST", headers, redirect: "manual",
signal: AbortSignal.timeout(10000), body: "{\"expected_revision\":1,\"location_id\":\"00000000-0000-4000-8000-000000000002\",\"request_id\":\"00000000-0000-4000-8000-000000000003\"}",
});
console.log(response.status);
await response.body?.cancel();
package main
import (
"fmt"
"net/http"
"time"
"encoding/json"
"os"
"path/filepath"
"strings"
)
func main() {
home, err := os.UserHomeDir(); if err != nil { panic("request failed; credentials and response omitted") }
raw, err := os.ReadFile(filepath.Join(home, ".config/metribeacon/headers.json")); if err != nil { panic("request failed; credentials and response omitted") }
var headers map[string]string
if json.Unmarshal(raw, &headers) != nil { panic("invalid local headers") }
request, err := http.NewRequest("POST", "https://metribeacon.com/api/v1/monitors/00000000-0000-4000-8000-000000000001/checks/test-runs", strings.NewReader("{\"expected_revision\":1,\"location_id\":\"00000000-0000-4000-8000-000000000002\",\"request_id\":\"00000000-0000-4000-8000-000000000003\"}"))
if err != nil { panic("request failed; credentials and response omitted") }
for name, value := range headers { request.Header.Set(name, value) }
request.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 10*time.Second, CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
response, err := client.Do(request)
if err != nil { panic("request failed; credentials and response omitted") }
defer response.Body.Close()
fmt.Println(response.StatusCode)
}
Verwandte Anleitungen
- HTTP-API, OAuth und MCP
Finden Sie die Nutzer-API-Endpunkte mit Rechten, Feldern, Beispielen und Antwortformaten.
- POST Monitor-Test abbrechen
Brechen Sie einen eigenen Test ab und entwerten Sie seine Ausführungsfreigabe. Wiederholter Abbruch startet keinen Test und ändert den normalen Monitorzeitplan nicht.
- POST Ausgewählte Alarmvorschläge für Prüfungen speichern
Ausdrücklich ausgewählte Kennungen für die aktuelle Monitorrevision speichern. Wiederholungen verwenden bestehende aktive Regeln und erhalten eigene Änderungen. Die globale Verfügbarkeitsregel berücksichtigt das eingestellte Standortquorum und die Bestätigungsanzahl.
- POST API: Check-Einrichtung fortsetzen oder abbrechen
Ausstehende Messreihen eines Checkmonitors erneut anlegen oder abbrechen. Abbruch gibt ausstehende Plätze frei, pausiert den Monitor und erhält vorhandene Historie. Wiederholen reserviert die Plätze anhand der gespeicherten Konfiguration erneut; das Fortsetzen des Monitors bleibt eine ausdrückliche Aktion.