Uptimeify Docs
Organization

Request Data Export

Queues a complete export of your organization's content as JSON and CSV, delivered as a downloadable ZIP and announced by email.

POST /api/organization/data-export

Starts a full export of everything your organization holds in Uptimeify: customers, monitors of every type, incidents and incident updates, maintenance windows, notification channels, tags, status pages, reports and their run history, billing records, team members, API token metadata, incident-management configuration and history, and — unless you opt out — the raw check history behind your monitors.

The request returns immediately with 202 Accepted. The bundle is built in the background; when it is ready, an email with a download link goes to the recipients, and the export appears as ready in GET /api/organization/data-export.

Request body

FieldTypeDefaultDescription
includeCheckHistorybooleantrueInclude raw per-check rows. This is the bulk of the bundle; set false for a configuration-only export.
recipientEmailsstring[]administrators of the organizationWho receives the "export is ready" email. Every address must belong to a member of this organization. Max 20.

Example (cURL)

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

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

Response

{
  "id": "0f0f2f6a-2b3b-4a2f-9a7c-3e5f8c1d2b44",
  "status": "queued",
  "format": "json_csv",
  "includeCheckHistory": true,
  "recipientEmails": ["admin@youragency.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
}

What the bundle contains

A ZIP with both formats plus an index:

  • manifest.json — every section with its row count, the retention cutoff per package, and truncation flags
  • README.txt — what is included, what is redacted, what is capped
  • json/<section>.json — full-fidelity records
  • csv/<section>.csv — the same records, flat and spreadsheet-ready

Two rules bound the contents:

  • Retention. Time-series data (check history, alert deliveries, SMS log) reaches back as far as the data retention of the packages your customers are on. Older rows are not withheld — they no longer exist.
  • Credentials. Passwords, webhook secrets, integration and ingest tokens, API token hashes and SMTP passwords are replaced with [redacted]. The surrounding record is exported in full.

Raw check history is capped per monitor type (100,000 newest rows by default). A capped section is flagged in manifest.json; pull the remainder per monitor via GET /api/websites/{id}/check-history?format=csv and the equivalent endpoints of the other monitor types.

Rate limits

  • One export at a time per organization (409 exportAlreadyRunning).
  • One request per organization every 6 hours (429 exportCooldown).
  • A finished export stays downloadable for 7 days, then the file is deleted and the record flips to expired.

Common errors

  • 400 User must belong to an organization when no organization can be derived from the session or token
  • 400 Recipients must be members of this organization (data.code: invalidExportRecipient) when recipientEmails contains an outside address
  • 401 Unauthorized when you are not authenticated
  • 403 Forbidden when your role cannot administer the organization
  • 409 An export is already being generated (data.code: exportAlreadyRunning)
  • 429 An export was already requested within the last 6 hours (data.code: exportCooldown)

On this page