GET Gemeinsamen Testverlauf mit Cursor lesen
/api/v1/notifications/tests
Bis zu 50 Tests mit Kanal, Zielname, Status, error_code, attempts, next_attempt_at und next_cursor
Auf dieser Seite
Zugriff und Rechte
Bis zu 50 Tests mit Kanal, Zielname, Status, error_code, attempts, next_attempt_at und next_cursor
Browsersitzung: Cookie __Host-mb_session.
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 |
|---|---|---|---|---|
| cursor | URL-Parameter | string; {"maxLength":4096} | Nein | Opaker next_cursor der vorherigen Seite. Ressource, Konto, Filter, Sortierung und Limit beibehalten; Listen-Cursor verfallen nach 15 Minuten. |
| table | URL-Parameter | string; {"enum":["1"]} | Nein | Für eine gefilterte Cursor-Seite auf 1 setzen; ohne Tabellenparameter bleibt die ursprüngliche Antwort erhalten. |
| q | URL-Parameter | string; {"maxLength":128} | Nein | Suche nach wörtlichem Text ohne Beachtung der Groß-/Kleinschreibung in den dokumentierten Textfeldern, vor dem Seitenlimit. |
| limit | URL-Parameter | integer; {"default":50,"maximum":100,"minimum":1} | Nein | Seitengröße 1–100, standardmäßig 50. Eine Folgeseite besteht nur bei einer weiteren passenden Zeile. |
| sort | URL-Parameter | string; {"enum":["newest","oldest","name_asc","name_desc"]} | Nein | Stabile Sortierung mit der Datensatz-ID bei Gleichstand: newest, oldest, name_asc oder name_desc. |
| status | URL-Parameter | string | Nein | Exakter Feldfilter; Parameter für alle Werte weglassen. |
| channel | URL-Parameter | string | Nein | Exakter Feldfilter; Parameter für alle Werte weglassen. |
| kind | URL-Parameter | string | Nein | Exakter Feldfilter; Parameter für alle Werte weglassen. |
| from | URL-Parameter | string; {"format":"date-time"} | Nein | Exakter Feldfilter; Parameter für alle Werte weglassen. |
| to | URL-Parameter | string; {"format":"date-time"} | Nein | Exakter Feldfilter; Parameter für alle Werte weglassen. |
| counts_only | URL-Parameter | string; {"enum":["1"]} | Nein | Liefert Anzahlen für den angegebenen Filter statt Tabellenzeilen. Suche und weitere Filter gelten; die eigene Auswahl, Sortierung und Pagination beeinflussen die Zählung nicht. |
| count_filter | URL-Parameter | string; {"enum":["status","channel","kind"]} | Nein | Deklarierter Tabellenfilter für die Zählung. Erfordert counts_only=1. |
| snapshot | URL-Parameter | string; {"format":"date-time"} | Nein | Optionaler Snapshot der zugehörigen Tabellenseite. |
Anfragekörper
Kein Anfragekörper.
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 | object | Ja | — |
| $ (anyOf 1) | object | Nein | — |
| $ (anyOf 2) | object | Nein | — |
| $ (anyOf 2).filter_counts | TableFilterCounts | Ja | — |
| $ (anyOf 2).filter_counts.field | string | Ja | — |
| $ (anyOf 2).filter_counts.total | integer; {"minimum":0} | Ja | — |
| $ (anyOf 2).filter_counts.values | object | Ja | — |
| $ (anyOf 2).filter_counts.complete | boolean | Ja | — |
| $ (anyOf 2).filter_counts.snapshot | string; {"format":"date-time"} | Ja | — |
| $ (anyOf 2).filter_counts.counted_at | string; {"format":"date-time"} | Ja | — |
| Stabile Fehlercodes |
|---|
| 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 | — |
| Stabile Fehlercodes |
|---|
| forbidden |
| 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 | — |
Wiederholungen und asynchrone Aufträge
Diese Operation liest oder prüft, ohne eine Ressourcenänderung anzuwenden. Beachten Sie Ratenlimits und Zugangslaufzeiten.
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 GET \
--header @"$HOME/.config/metribeacon/headers.txt" \
"https://metribeacon.com/api/v1/notifications/tests"
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())
request = Request("https://metribeacon.com/api/v1/notifications/tests", data=None, headers=headers, method="GET")
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"));
const response = await fetch("https://metribeacon.com/api/v1/notifications/tests", {
method: "GET", headers, redirect: "manual",
signal: AbortSignal.timeout(10000),
});
console.log(response.status);
await response.body?.cancel();
package main
import (
"fmt"
"net/http"
"time"
"encoding/json"
"os"
"path/filepath"
)
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("GET", "https://metribeacon.com/api/v1/notifications/tests", nil)
if err != nil { panic("request failed; credentials and response omitted") }
for name, value := range headers { request.Header.Set(name, value) }
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.
- GET Verfügbare Alarmkanäle und Einrichtungsvoraussetzungen lesen
Sieben Kanäle mit Verfügbarkeit, Einrichtungsvoraussetzungen, Zielgrenze, öffentlichem VAPID-Schlüssel, Botname und gemeinsamem Testlimit
- GET Eigene benannte Benachrichtigungsziele auflisten
Ziele einschließlich Verbindungsstatus und letztem Zustellergebnis; keine Zugangsdaten
- POST Benanntes Ziel anlegen oder ein Browser-Push-Abonnement registrieren
CSRF-geschützt; Idempotency-Key wird unterstützt. Die aktuelle bestätigte Konto-E-Mail-Adresse wird automatisch bestätigt; andere E-Mail-Empfänger benötigen eine einmalige Bestätigung. Telegram erfordert einen privaten /start-Nachweis. Höchstens 20 Ziele pro Konto, zentral konfigurierbar. Beim Webhook wird signing_secret ausschließlich in der ersten Antwort geliefert.