---
title: "TCP Monitore auflisten"
description: "Listet TCP Monitore einer Organisation auf."
---

`GET /api/tcp-monitors`

## Authentifizierung

Erfordert eine gültige Session.

- Header: `Authorization: Bearer <token>`

## Parameter

- `organizationId` (Query, optional): Organisations-ID. Default ist die Organisation des aktuellen Nutzers.
- `customerId` (Query, optional): Nach Kunden-ID filtern.
- `search` (Query, optional): Suche nach Name, Hostname oder Kunde.
- `page` (Query, optional): Seite (Default: 1).
- `perPage` (Query, optional): Einträge pro Seite (Default: 50, Max: 200).

## cURL

```bash
curl "https://YOUR_DOMAIN/api/tcp-monitors?page=1&perPage=50" \
  -H "Authorization: Bearer $TOKEN"
```

## Response

```json
{
  "items": [
    {
      "id": 300,
      "publicId": "44444444-4444-4444-8444-444444444444",
      "organizationId": 1,
      "customerId": 10,
      "name": "Redis Primary",
      "hostname": "redis.deinkunde.com",
      "port": 6379,
      "status": "active",
      "managementType": "managed",
      "checkInterval": 60,
      "timeoutSeconds": 30,
      "customerName": "Example Customer",
      "notificationEmail": null,
      "notificationPhoneNumber": null,
      "lastCheckedAt": "2026-02-26T12:00:00.000Z",
      "createdAt": "2026-02-26T12:00:00.000Z",
      "updatedAt": "2026-02-26T12:00:00.000Z",
      "config": {
        "expectBanner": "+PONG"
      },
      "tags": []
    }
  ],
  "total": 1,
  "page": 1,
  "perPage": 50
}
```

## Inline-Metriken

Jeder Eintrag traegt dieselben verdichteten Kennzahlen, die auch die uebrigen Monitor-Listen
liefern. Sie werden je Monitor ueber den Kalendertag, den Monat und das Jahr in UTC gebildet.

| Feld | Typ | Bedeutung |
|------|-----|-----------|
| `uptimeDay` / `uptimeMonth` / `uptimeYear` | string | Verfuegbarkeit in Prozent mit zwei Nachkommastellen, z. B. `"99.94"` |
| `avgResponseDay` / `avgResponseMonth` / `avgResponseYear` | number \| null | Mittlere Antwortzeit in Millisekunden; `null`, wenn in dem Fenster nichts gemessen wurde |
| `responseGraph` | object | `{ values, avg }` fuer die letzten 24 Stunden, ein Eintrag je Stunde; eine Stunde ohne erfolgreiche Pruefung ist `null` |
| `upSinceAt` | string \| null | ISO-Zeitpunkt, seit dem der Monitor laeuft, `null` solange er ausgefallen ist |
| `isDown` | boolean | Ob der Monitor gerade in einem unaufgeloesten Vorfall steckt |

Die Tageswerte kommen aus den Rohdaten, Monat und Jahr aus fortlaufenden Aggregaten -- in diesen
beiden Fenstern kann ein Wert der neuesten Pruefung daher um einige Minuten hinterherhinken.

## Errors

- `400` Ungültige `organizationId` oder `customerId`
- `401` Unauthorized
- `403` Forbidden

