---
title: "Heartbeat-Token erneuern"
description: "Erzeugt ein neues Heartbeat-Token; das alte gilt sofort nicht mehr."
---

`POST /api/websites/:websitePublicId/heartbeat-token/rotate`

Erzeugt für einen Heartbeat-Monitor ein neues Token. Das alte Token gilt **sofort** nicht mehr: Pings an die alte Ping-URL werden mit `404` `heartbeatTokenNotFound` beantwortet. Eine Übergangsfrist gibt es nicht, weil ein Token meist erneuert wird, nachdem es nach außen gelangt ist. Trage die neue Ping-URL gleich in deinem Cronjob oder Skript ein; der Monitor selbst, seine Historie und sein Heartbeat-Zustand bleiben unverändert.

## Authentifizierung

Erfordert eine gültige Sitzung mit Schreibrecht auf den Monitor (Editor der Organisation oder höher; kundengebundene Logins nur für ihre eigenen Self-Service-Monitore).

- Header: `Authorization: Bearer <token>`

## Parameter

- `websitePublicId` (Pfad, Pflicht): öffentliche UUID (oder numerische Id) des Heartbeat-Monitors.

Kein Request Body.

## Beispiel (cURL)

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"

curl -X POST \
  "$BASE_URL/api/websites/6bfec6f6-245a-47ce-843b-157d97d56f88/heartbeat-token/rotate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
```

## Beispiel-Antwort

```json
{
  "id": 123,
  "publicId": "6bfec6f6-245a-47ce-843b-157d97d56f88",
  "heartbeatToken": "0f8e1c2a-6b4d-4e8a-9f3b-2d7c5a1e9b40"
}
```

Die neue Ping-URL lautet `https://uptimeify.io/ping/<heartbeatToken>` (oder deine eigene Domain). Das Audit-Protokoll vermerkt die Erneuerung ohne den Tokenwert.

## Häufige Fehler

- `400` `heartbeatMonitorRequired`, wenn der Monitor kein Heartbeat-Monitor ist
- `401 Unauthorized`, wenn du nicht angemeldet bist
- `403 Forbidden`, wenn du kein Schreibrecht auf den Monitor hast
- `404` `websiteNotFound`, wenn der Monitor nicht existiert oder zu einer anderen Organisation gehört
