Skip to main content
Atlassian deletes every unmigrated Opsgenie account on 5 April 2027. The built-in export is an iCalendar file of the next twelve months of schedules; it does not carry routing rules, escalation repeat settings, overrides, alert and notification policies, heartbeats, user contact methods, integrations, or a single alert of history. opsgenie-export is a command-line tool WHAWIT publishes under the MIT license. It reads the whole account through the REST API and writes plain JSON files to a folder on your machine. It is useful whether or not you move to WHAWIT: the importer recreates schedules and escalation policies; this tool keeps everything else, including the history the importer deliberately leaves behind.
The tool is read-only. It talks to api.opsgenie.com (or the EU host) and nothing else — no sign-up, no telemetry, no upload. Nothing in Opsgenie is modified, and the folder never leaves your disk unless you move it.

What you need

npx downloads and runs the current version; nothing is installed globally.
Settings → API key management → Add new API key, with Read and Configuration Access. A team integration key only sees alerts and fails with HTTP 403 on the configuration endpoints. The same key works for the importer.
Add --region eu for accounts on api.eu.opsgenie.com.

What you get

History is walked month by month, sorted by creation time. Opsgenie refuses any search past 20,000 results, so a month that would exceed the cap is split until it fits. A run that stops can be continued with --resume and the same --out.

Options

Sections: account, users, teams, schedules, on-calls, escalations, integrations, policies, maintenance, heartbeats, services, forwarding-rules, roles, alerts, incidents.

What it cannot get

  • Audit logs and reports — not exposed by the API.
  • Alert attachments — listed as download links, not fetched.
  • Integration secrets by default — redacted unless you pass --include-secrets. They do not transfer anyway: every integration is re-created and re-keyed on the destination side.
  • Anything a team integration key cannot read — use an account key.

How long it takes

Opsgenie throttles by request domain, and the configuration domain (users, teams, schedules, policies) has the lowest limit. The tool keeps a floor of 120 ms between requests, retries 429 and 5xx with exponential backoff and honours Retry-After. Configuration takes roughly one request per user, team, schedule and integration. History is 100 alerts per request; --with-alert-notes and --with-alert-logs add one request per alert each, which is what turns a large account into hours rather than minutes.
Compare the counts in manifest.json with what the Opsgenie UI shows before you rely on the folder, and run the export again close to your cutover date: overrides and notification rules keep changing until the last day.

Next

Importing from Opsgenie

Recreate schedules, rotations and escalation policies in WHAWIT from the same API key.

Migrating from another tool

The cutover playbook: run both systems in parallel, then switch.