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
| Field | Type | Default | Description |
|---|---|---|---|
includeCheckHistory | boolean | true | Include raw per-check rows. This is the bulk of the bundle; set false for a configuration-only export. |
recipientEmails | string[] | administrators of the organization | Who 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 flagsREADME.txt— what is included, what is redacted, what is cappedjson/<section>.json— full-fidelity recordscsv/<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 organizationwhen no organization can be derived from the session or token400 Recipients must be members of this organization(data.code: invalidExportRecipient) whenrecipientEmailscontains an outside address401 Unauthorizedwhen you are not authenticated403 Forbiddenwhen your role cannot administer the organization409 An export is already being generated(data.code: exportAlreadyRunning)429 An export was already requested within the last 6 hours(data.code: exportCooldown)
Upsert Package Config
Creates a new package config (by :packageType) or updates an existing one. packageType is a free-form identifier chosen by the organization, and customer endpoints can later reference that same key.
List Data Exports
Returns the recent data export requests of your organization with status, size, retention window and expiry.