POST Messwerte, Zustände, Ereignisse oder Heartbeats mit ausdrücklich freigegebenem Maschinencredential senden. Nutzt die bestehende Telemetrieprüfung, Kontingente, Deduplizierung und Alarmverarbeitung. Ein konkreter Monitor ist erforderlich. Laufstart und Abschluss verwenden den Ereignisvertrag. Die Laufzeitfreigabe muss aktiviert sein; Ingest-Endpunkte akzeptieren weiterhin nur Geräteschlüssel.
/api/v1/automation/telemetry/{kind}
Messwerte, Zustände, Ereignisse oder Heartbeats mit ausdrücklich freigegebenem Maschinencredential senden. Nutzt die bestehende Telemetrieprüfung, Kontingente, Deduplizierung und Alarmverarbeitung. Ein konkreter Monitor ist erforderlich. Laufstart und Abschluss verwenden den Ereignisvertrag. Die Laufzeitfreigabe muss aktiviert sein; Ingest-Endpunkte akzeptieren weiterhin nur Geräteschlüssel.
Auf dieser Seite
Zugriff und Rechte
Messwerte, Zustände, Ereignisse oder Heartbeats mit ausdrücklich freigegebenem Maschinencredential senden. Nutzt die bestehende Telemetrieprüfung, Kontingente, Deduplizierung und Alarmverarbeitung. Ein konkreter Monitor ist erforderlich. Laufstart und Abschluss verwenden den Ereignisvertrag. Die Laufzeitfreigabe muss aktiviert sein; Ingest-Endpunkte akzeptieren weiterhin nur Geräteschlüssel.
Maschinen-Verwaltungszugang in Authorization: Bearer. Beachten Sie die von der Operation benötigten Berechtigungen (Scopes).
Parameter und Header
| Feld | Position | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|---|
| kind | Pfad | string; {"enum":["points","states","events","heartbeat"]} | Ja | Datenart; ein Heartbeat hat keinen Body. |
| device_id | URL-Parameter | string; {"format":"uuid"} | Nein | Konkrete Monitor-UUID, für Heartbeats erforderlich; Batches können device_id im JSON enthalten. |
Anfragekörper
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Batch | StateBatch | EventBatch | Ja | — |
| $ (oneOf 1) | Batch | Nein | — |
| $ (oneOf 1).batch_id | string; {"format":"uuid"} | Ja | Vom Client erzeugte UUID dieser Übermittlung. Verwenden Sie bei Wiederholungen Messkennungen und exakte Nutzlast erneut. |
| $ (oneOf 1).device_id | string; {"format":"uuid"} | Nein | Optionaler Monitor-Scope; falls angegeben, muss er zum Schreibschlüssel gehören. |
| $ (oneOf 1).points | array<Point>; {"maxItems":1000,"minItems":1} | Ja | — |
| $ (oneOf 1).points[] | Point | Ja | — |
| $ (oneOf 1).points[].id | string; {"format":"uuid"} | Ja | UUID dieser Ressource. Bewahren Sie die zurückgegebene Kennung für weitere Operationen auf. |
| $ (oneOf 1).points[].measured_at | string; {"format":"date-time"} | Ja | Vom Gerät gelieferter UTC-Messzeitpunkt; beachten Sie das zulässige Vergangenheits- und Zukunftsfenster. |
| $ (oneOf 1).points[].series_id | string; {"format":"uuid"} | Ja | UUID der Messreihe des freigegebenen Geräts. |
| $ (oneOf 1).points[].value | number; {"format":"double"} | Ja | — |
| $ (oneOf 2) | StateBatch | Nein | — |
| $ (oneOf 2).batch_id | string; {"format":"uuid"} | Ja | Vom Client erzeugte UUID dieser Übermittlung. Verwenden Sie bei Wiederholungen Messkennungen und exakte Nutzlast erneut. |
| $ (oneOf 2).device_id | string; {"format":"uuid"} | Nein | UUID des Zielgeräts. Für gemeinsam genutzte Schlüssel erforderlich, bei einem ausgewählten Gerät implizit. Zielangaben in Header und Inhalt müssen übereinstimmen. |
| $ (oneOf 2).points | array<StatePoint>; {"maxItems":1000,"minItems":1} | Ja | — |
| $ (oneOf 2).points[] | StatePoint | Ja | — |
| $ (oneOf 2).points[].id | string; {"format":"uuid"} | Ja | UUID dieser Ressource. Bewahren Sie die zurückgegebene Kennung für weitere Operationen auf. |
| $ (oneOf 2).points[].measured_at | string; {"format":"date-time"} | Ja | Vom Gerät gelieferter UTC-Messzeitpunkt; beachten Sie das zulässige Vergangenheits- und Zukunftsfenster. |
| $ (oneOf 2).points[].series_id | string; {"format":"uuid"} | Ja | UUID der Messreihe des freigegebenen Geräts. |
| $ (oneOf 2).points[].value | boolean | string; {"maxLength":128} | Ja | — |
| $ (oneOf 2).points[].value (oneOf 1) | boolean | Nein | — |
| $ (oneOf 2).points[].value (oneOf 2) | string; {"maxLength":128} | Nein | — |
| $ (oneOf 3) | EventBatch | Nein | — |
| $ (oneOf 3).batch_id | string; {"format":"uuid"} | Ja | Vom Client erzeugte UUID dieser Übermittlung. Verwenden Sie bei Wiederholungen Messkennungen und exakte Nutzlast erneut. |
| $ (oneOf 3).device_id | string; {"format":"uuid"} | Nein | UUID des Zielgeräts. Für gemeinsam genutzte Schlüssel erforderlich, bei einem ausgewählten Gerät implizit. Zielangaben in Header und Inhalt müssen übereinstimmen. |
| $ (oneOf 3).events | array<TextEvent>; {"maxItems":1000,"minItems":1} | Ja | — |
| $ (oneOf 3).events[] | TextEvent | Ja | — |
| $ (oneOf 3).events[].id | string; {"format":"uuid"} | Ja | UUID dieser Ressource. Bewahren Sie die zurückgegebene Kennung für weitere Operationen auf. |
| $ (oneOf 3).events[].labels | object | Nein | Erfassungsereignisse verwenden höchstens zehn Labels: source, type, series_id, component_id, parameter_key, change_kind, old_status, new_status und optionale JSON-kodierte old_value / new_value für Boolean- oder Enum-Zustände. change_kind ist collection_status, state_value oder counter_reset. Fehlende Werte wurden nicht übermittelt; eine wieder mögliche Erfassung bestätigt keine Dienstgesundheit. Bestehende Ereignisgrößen gelten weiterhin. |
| $ (oneOf 3).events[].measured_at | string; {"format":"date-time"} | Ja | Vom Gerät gelieferter UTC-Messzeitpunkt; beachten Sie das zulässige Vergangenheits- und Zukunftsfenster. |
| $ (oneOf 3).events[].message | string; {"maxLength":2048} | Ja | — |
| $ (oneOf 3).events[].run | RunEvent | Nein | — |
| $ (oneOf 3).events[].run.duration_ms | integer; {"format":"int64","maximum":604800000,"minimum":0} | Nein | Optional clientgemeldete Dauer beim Abschluss |
| $ (oneOf 3).events[].run.exit_code | integer; {"maximum":4294967295,"minimum":-2147483648} | Nein | Nativer Unix- oder Windows-Prozessstatus. Unix-Signale werden als 128 plus Signal dargestellt; Windows-Statuscodes behalten ihren nativen Wert. |
| $ (oneOf 3).events[].run.id | string; {"format":"uuid"} | Ja | Eindeutige Run-ID je Account |
| $ (oneOf 3).events[].run.scheduled_for | string; {"format":"date-time"} | Nein | Nur beim Start; exakter geplanter UTC-Zeitpunkt für überlappende Toleranzfenster |
| $ (oneOf 3).events[].run.status | string; {"enum":["started","succeeded","failed","aborted"]} | Ja | — |
| $ (oneOf 3).events[].severity | string; {"enum":["info","warning","critical"]} | Ja | Schweregrad aus dem angegebenen Wertebereich. |
Antworten
| 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 |
|---|---|---|---|
| $ | object; {"additionalProperties":true} | Ja | — |
| 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 |
| machine_required |
| device_scope |
| 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 |
|---|
| feature_unavailable |
| unavailable |
| 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. |
| 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 |
|---|
| invalid_mcp_token_request |
| invalid_json |
| device_scope |
| device_required |
| 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 |
|---|
| mcp_token_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"
}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 --silent --show-error --request POST --header @"$HOME/.config/metribeacon/headers.txt" --header "Content-Type: application/json" --data-binary '{"batch_id":"00000000-0000-4000-8000-000000000001","device_id":"00000000-0000-4000-8000-000000000002","points":[{"id":"00000000-0000-4000-8000-000000000003","series_id":"00000000-0000-4000-8000-000000000004","measured_at":"2026-10-02T12:00:00Z","value":42}]}' "https://metribeacon.com/api/v1/automation/telemetry/points"
import json
from pathlib import Path
import urllib.request
headers = dict(line.split(": ", 1) for line in (Path.home()/".config/metribeacon/headers.txt").read_text().splitlines())
headers["Content-Type"] = "application/json"
request = urllib.request.Request('https://metribeacon.com/api/v1/automation/telemetry/points', data='{"batch_id":"00000000-0000-4000-8000-000000000001","device_id":"00000000-0000-4000-8000-000000000002","points":[{"id":"00000000-0000-4000-8000-000000000003","series_id":"00000000-0000-4000-8000-000000000004","measured_at":"2026-10-02T12:00:00Z","value":42}]}'.encode() if '{"batch_id":"00000000-0000-4000-8000-000000000001","device_id":"00000000-0000-4000-8000-000000000002","points":[{"id":"00000000-0000-4000-8000-000000000003","series_id":"00000000-0000-4000-8000-000000000004","measured_at":"2026-10-02T12:00:00Z","value":42}]}' else None, headers=headers, method='POST')
with urllib.request.urlopen(request, timeout=20) as response:
print(response.status)
import {readFileSync} from "node:fs";
import {homedir} from "node:os";
const headers=Object.fromEntries(readFileSync(homedir()+"/.config/metribeacon/headers.txt","utf8").trim().split("\n").map(line=>{const i=line.indexOf(": ");return [line.slice(0,i),line.slice(i+2)]}));
headers["Content-Type"]="application/json";
const response=await fetch("https://metribeacon.com/api/v1/automation/telemetry/points",{method:"POST",headers,body:"{\"batch_id\":\"00000000-0000-4000-8000-000000000001\",\"device_id\":\"00000000-0000-4000-8000-000000000002\",\"points\":[{\"id\":\"00000000-0000-4000-8000-000000000003\",\"series_id\":\"00000000-0000-4000-8000-000000000004\",\"measured_at\":\"2026-10-02T12:00:00Z\",\"value\":42}]}"});
console.log(response.status);
package main
import ("fmt";"net/http";"os";"strings";"time")
func main(){
home,_:=os.UserHomeDir(); headers,_:=os.ReadFile(home+"/.config/metribeacon/headers.txt")
request,_:=http.NewRequest("POST","https://metribeacon.com/api/v1/automation/telemetry/points",strings.NewReader("{\"batch_id\":\"00000000-0000-4000-8000-000000000001\",\"device_id\":\"00000000-0000-4000-8000-000000000002\",\"points\":[{\"id\":\"00000000-0000-4000-8000-000000000003\",\"series_id\":\"00000000-0000-4000-8000-000000000004\",\"measured_at\":\"2026-10-02T12:00:00Z\",\"value\":42}]}"))
for _,line:=range strings.Split(strings.TrimSpace(string(headers)),"\n"){name,value,ok:=strings.Cut(line,": ");if ok{request.Header.Set(name,value)}}
request.Header.Set("Content-Type","application/json")
client:=&http.Client{Timeout:20*time.Second};response,err:=client.Do(request);if err!=nil{panic(err)};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 Zugängliche Messreihen standardmäßig zehn, höchstens 15 Sekunden beobachten. Credential, Scope, Konto und Arbeitsbereich werden alle fünf Sekunden erneut geprüft. Teilt die Live-Grenzen von zwei je Konto und 64 je API-Prozess. Verlangt die Laufzeitfreigabe für Maschinen-Livezugriff.
Zugängliche Messreihen standardmäßig zehn, höchstens 15 Sekunden beobachten. Credential, Scope, Konto und Arbeitsbereich werden alle fünf Sekunden erneut geprüft. Teilt die Live-Grenzen von zwei je Konto und 64 je API-Prozess. Verlangt die Laufzeitfreigabe für Maschinen-Livezugriff.
- POST Code für eine einzelne sensible Aktion anfordern
Fordern Sie einen sechsstelligen Bestätigungscode für eine sensible Konto- oder Arbeitsbereichsänderung an. Er gilt fünf Minuten und erlaubt fünf Fehlversuche. Nutzen Sie zur Bestätigung denselben angemeldeten Browser, dieselbe Aktion, dasselbe Ziel und dieselben Parameter. Ein nach 60 Sekunden angeforderter Ersatz macht den bisherigen Code dieser Aktion ungültig. Für Ihr Konto nutzen Sie link_identity, unlink_identity, add_passkey, remove_passkey oder delete_self; Mitgliedschaftsaktionen brauchen Besitzerrechte. Anmeldecodes bestätigen keine Änderungen.
- DELETE Eigene ausstehende Aktionsbestätigung abbrechen
Nur eine ausstehende Bestätigung des aktuellen Kontos und der aktuellen Sitzung kann abgebrochen werden.