Uptimeify Docs

Datenexport anfordern

Stellt einen vollständigen Export der Inhalte deiner Organisation als JSON und CSV in die Warteschlange — als ZIP zum Download, angekündigt per E-Mail.

POST /api/organization/data-export

Startet einen vollständigen Export von allem, was deine Organisation in Uptimeify hat: Kunden, Monitore aller Typen, Vorfälle und Vorfalls-Updates, Wartungsfenster, Benachrichtigungskanäle, Tags, Statusseiten, Reports samt Lauf-Historie, Abrechnungsdaten, Teammitglieder, API-Token-Metadaten, Incident-Management-Konfiguration und -Historie sowie — sofern du nicht abwählst — die rohe Check-Historie hinter deinen Monitoren.

Die Anfrage antwortet sofort mit 202 Accepted. Das Bundle entsteht im Hintergrund; sobald es fertig ist, geht eine E-Mail mit Download-Link an die Empfänger, und der Export erscheint in GET /api/organization/data-export als ready.

Request-Body

FeldTypDefaultBeschreibung
includeCheckHistorybooleantrueRohe Check-Zeilen einschließen. Das ist der Löwenanteil des Bundles; false liefert einen reinen Konfigurations-Export.
recipientEmailsstring[]Administratoren der OrganisationWer die „Export ist fertig"-E-Mail bekommt. Jede Adresse muss zu einem Mitglied dieser Organisation gehören. Maximal 20.

Beispiel (cURL)

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

curl -X POST "$BASE_URL/api/organization/data-export" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "includeCheckHistory": true
  }'

Antwort (Response)

{
  "id": "0f0f2f6a-2b3b-4a2f-9a7c-3e5f8c1d2b44",
  "status": "queued",
  "format": "json_csv",
  "includeCheckHistory": true,
  "recipientEmails": ["admin@deineagentur.com"],
  "sizeBytes": null,
  "retentionCutoff": null,
  "expiresAt": null,
  "downloadCount": 0,
  "lastDownloadedAt": null,
  "error": null,
  "manifest": null,
  "createdAt": "2026-07-30T09:12:44.101Z",
  "startedAt": null,
  "completedAt": null
}

Was im Bundle steckt

Ein ZIP mit beiden Formaten plus Index:

  • manifest.json — jeder Bereich mit Zeilenanzahl, Retention-Grenze pro Paket und Kappungs-Flags
  • README.txt — was enthalten, was geschwärzt, was gekappt ist
  • json/<bereich>.json — Datensätze in voller Tiefe
  • csv/<bereich>.csv — dieselben Datensätze, flach und tabellenfertig

Zwei Regeln begrenzen den Inhalt:

  • Retention. Zeitreihen (Check-Historie, Alarm-Zustellungen, SMS-Log) reichen so weit zurück, wie die Datenvorhaltung der Pakete deiner Kunden es hergibt. Ältere Zeilen werden nicht zurückgehalten — es gibt sie nicht mehr.
  • Zugangsdaten. Passwörter, Webhook-Secrets, Integrations- und Ingest-Tokens, API-Token-Hashes und SMTP-Passwörter werden durch [redacted] ersetzt. Der restliche Datensatz wird vollständig exportiert.

Die rohe Check-Historie ist pro Monitor-Typ gekappt (standardmäßig die 100.000 neuesten Zeilen). Ein gekappter Bereich ist in manifest.json markiert; den Rest holst du pro Monitor über GET /api/websites/{id}/check-history?format=csv und die entsprechenden Endpunkte der anderen Monitor-Typen.

Limits

  • Ein Export gleichzeitig pro Organisation (409 exportAlreadyRunning).
  • Eine Anfrage pro Organisation alle 6 Stunden (429 exportCooldown).
  • Ein fertiger Export bleibt 7 Tage herunterladbar; danach wird die Datei gelöscht und der Datensatz auf expired gesetzt.

Häufige Fehler

  • 400 User must belong to an organization wenn aus Session oder Token keine Organisation abgeleitet werden kann
  • 400 Recipients must be members of this organization (data.code: invalidExportRecipient) wenn recipientEmails eine externe Adresse enthält
  • 401 Unauthorized wenn du nicht authentifiziert bist
  • 403 Forbidden wenn deine Rolle die Organisation nicht verwalten darf
  • 409 An export is already being generated (data.code: exportAlreadyRunning)
  • 429 An export was already requested within the last 6 hours (data.code: exportCooldown)

Auf dieser Seite