POST Geprüfte Aktionen auf ausgewählte Monitore anwenden
/api/v1/monitors/bulk/apply
Senden Sie dieselbe Auswahl und Aktions-UUID mit der Vorschauversion und confirmed=true. Bestehende HTTP-Prüfungen, die Ziele verändern können, benötigen zusätzlich actions_confirmed=true. Geänderte Einstellungen, Kontingente oder Auswahl erfordern eine neue Vorschau. Alle ausgewählten Monitore werden gemeinsam geändert oder keiner; Wiederholungen führen die Aktion nicht erneut aus. Intervalle externer Clients und Cron-Zeitpläne verwenden ihre individuellen Einstellungen.
Auf dieser Seite
Zugriff und Rechte
Senden Sie dieselbe Auswahl und Aktions-UUID mit der Vorschauversion und confirmed=true. Bestehende HTTP-Prüfungen, die Ziele verändern können, benötigen zusätzlich actions_confirmed=true. Geänderte Einstellungen, Kontingente oder Auswahl erfordern eine neue Vorschau. Alle ausgewählten Monitore werden gemeinsam geändert oder keiner; Wiederholungen führen die Aktion nicht erneut aus. Intervalle externer Clients und Cron-Zeitpläne verwenden ihre individuellen Einstellungen.
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
Keine Pfad-, Query- oder zusätzlichen Anfrageheader-Parameter.
Anfragekörper
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | MonitorBulkApply | Ja | — |
| $.workspace_id | string; {"format":"uuid"} | Ja | — |
| $.device_ids | array<string; {"format":"uuid"}>; {"minItems":1,"maxItems":100} | Ja | — |
| $.device_ids[] | string; {"format":"uuid"} | Ja | — |
| $.operation_id | string; {"format":"uuid"} | Ja | Eine stabile UUID für diese Aktion. Behalten Sie sie bei Wiederholungen bei, auch nach einer verlorenen Antwort. Ein Idempotency-Key kann die Anfrage zusätzlich binden; ein wiederverwendeter Schlüssel oder eine Aktion mit anderen Daten wird abgewiesen. |
| $.action | string; {"enum":["pause","resume","groups","interval"]} | Ja | — |
| $.interval_seconds | integer; {"minimum":1,"maximum":86400} | Nein | — |
| $.group_ids | array<string; {"format":"uuid"}>; {"maxItems":100} | Nein | — |
| $.group_ids[] | string; {"format":"uuid"} | Ja | — |
| $.group_mode | string; {"enum":["add","remove","replace"]} | Nein | — |
| $.version | string; {"pattern":"^[a-f0-9]{64}$"} | Ja | — |
| $.confirmed | boolean | Ja | — |
| $.actions_confirmed | boolean | Nein | — |
Antworten
application/json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | MonitorBulkResult | Ja | — |
| $.operation_id | string; {"format":"uuid"} | Ja | — |
| $.device_ids | array<string; {"format":"uuid"}> | Ja | — |
| $.device_ids[] | string; {"format":"uuid"} | Ja | — |
| $.action | string | Ja | — |
| $.after | object | Ja | — |
| $.after.items | number; {"minimum":0} | Ja | — |
| $.after.events | number; {"minimum":0} | Ja | — |
| $.after.bytes | number; {"minimum":0} | Ja | — |
| $.after.event_bytes | number; {"minimum":0} | Ja | — |
| 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"
}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 | — |
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 | — |
Wiederholungen und asynchrone Aufträge
Für diese Änderung gibt es keine allgemeine Wiederholungsgarantie. Prüfen Sie bei unklarer Antwort den betroffenen Eintrag, bevor Sie es erneut versuchen. Beachten Sie Wartezeiten aus Retry-After und fordern Sie abgelaufene Anmelde- oder Aktionscodes neu an.
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 --request POST --cookie '__Host-mb_session=SESSION; __Host-mb_csrf=CSRF' --header 'X-CSRF-Token: CSRF' --header 'Content-Type: application/json' --data '{"workspace_id":"11111111-1111-4111-8111-111111111111","device_ids":["22222222-2222-4222-8222-222222222222"],"operation_id":"33333333-3333-4333-8333-333333333333","action":"pause","version":"COPY_VERSION_FROM_PLAN","confirmed":true,"actions_confirmed":false}' 'https://metribeacon.com/api/v1/monitors/bulk/apply'import requests
response = requests.post('https://metribeacon.com/api/v1/monitors/bulk/apply', cookies={"__Host-mb_session":"SESSION","__Host-mb_csrf":"CSRF"}, headers={"X-CSRF-Token":"CSRF"}, json={'workspace_id': '11111111-1111-4111-8111-111111111111', 'device_ids': ['22222222-2222-4222-8222-222222222222'], 'operation_id': '33333333-3333-4333-8333-333333333333', 'action': 'pause', 'version': 'COPY_VERSION_FROM_PLAN', 'confirmed': True, 'actions_confirmed': False})
response.raise_for_status()const response = await fetch("https://metribeacon.com/api/v1/monitors/bulk/apply", {method:"POST", credentials:"same-origin", headers:{"Content-Type":"application/json","X-CSRF-Token":csrf}, body:JSON.stringify({"workspace_id":"11111111-1111-4111-8111-111111111111","device_ids":["22222222-2222-4222-8222-222222222222"],"operation_id":"33333333-3333-4333-8333-333333333333","action":"pause","version":"COPY_VERSION_FROM_PLAN","confirmed":true,"actions_confirmed":false})});
if (!response.ok) throw new Error(String(response.status));package main
import("net/http";"strings";"time")
func main() { req,err:=http.NewRequest("POST","https://metribeacon.com/api/v1/monitors/bulk/apply",strings.NewReader(`{"workspace_id":"11111111-1111-4111-8111-111111111111","device_ids":["22222222-2222-4222-8222-222222222222"],"operation_id":"33333333-3333-4333-8333-333333333333","action":"pause","version":"COPY_VERSION_FROM_PLAN","confirmed":true,"actions_confirmed":false}`));if err!=nil{panic("request failed")};req.AddCookie(&http.Cookie{Name:"__Host-mb_session",Value:"SESSION"});req.AddCookie(&http.Cookie{Name:"__Host-mb_csrf",Value:"CSRF"});req.Header.Set("X-CSRF-Token","CSRF");req.Header.Set("Content-Type","application/json");client:=http.Client{Timeout:10*time.Second};res,err:=client.Do(req);if err!=nil{panic("request failed")};defer res.Body.Close() }Verwandte Anleitungen
- HTTP-API, OAuth und MCP
Finden Sie die Nutzer-API-Endpunkte mit Rechten, Feldern, Beispielen und Antwortformaten.
- POST Aktionen für ausgewählte Monitore prüfen
Wählen Sie 1–100 Monitore eines Arbeitsbereichs sowie Pausieren, Fortsetzen, Gruppenzuordnung oder Erfassungsintervall. Die Vorschau zeigt die genaue Auswahl und den geplanten Tagesverbrauch des Kontos vor und nach der Änderung. Die Prüfung ändert nichts und reserviert keine Kapazität. Ungeeignete Intervalle oder eine erhöhte Kontingentüberschreitung blockieren die gesamte Auswahl.
- GET Eigene Monitore lesen
Eigene Monitore lesen.
- POST Monitor mit freigegebenem Typ erstellen
Monitor mit freigegebenem Typ erstellen.