Migrate from Disqus
Move your Disqus comments to GraphComment — hosted service, self-run CLI, or fully auditable open-source code. Your choice.
Moving from Disqus doesn't mean abandoning your comment history. GraphComment exports your Disqus forum to a standard WordPress WXR file and imports it, preserving threads and the reply hierarchy.
You choose how much control you want — three levels, all running the same open-source code:
| Level | You need | Your data |
|---|---|---|
| ① Hosted service | Nothing technical — a few clicks in your dashboard | Handled with strict guarantees (below) |
| ② Run it yourself (CLI) | Node.js ≥ 18 + your own Disqus application | Never leaves your machine |
| ③ Audit the code | Curiosity | You read the exact code before trusting either path |
① The hosted service (recommended)
The normal path requires no installation at all. From your GraphComment dashboard, open your site's Import wizard, connect your Disqus account, and the export runs on GraphComment's servers. You're notified by e-mail when the file is ready; you download it and deposit it yourself in the wizard's import step — the service only hands you back your own data.
What the service does with your data — these guarantees are implemented by the service code:
- No parsing, no extraction. The service never parses the generated file and never extracts anything from it into a database — the file is produced for you, not for GraphComment.
- Your Disqus token is transient. The OAuth token you grant is stored encrypted for the duration of the export job only, and destroyed as soon as the job ends.
- The file itself is transient. It is deleted automatically after you download it (48-hour grace period so you can download it again), or after 7 days if you never download it — these are the current defaults, set server-side.
- The service never sees commenters' e-mail addresses. The Disqus API only returns them to an application created by the forum owner himself; a third-party application such as GraphComment's never receives them — so that data never transits through GraphComment's servers at all.
Two consequences worth knowing before you start. Since the hosted export runs the same code against the same Disqus API as the CLI below, the same rate limits and durations apply (see the table in level ② — a million-comment forum takes ~10 hours either way). And since the hosted export contains no commenter e-mails, imported Disqus comments arrive with their author names but are not attached to accounts — your commenters start fresh, their history preserved on the threads.
Small forum? You may not need an export tool at allGraphComment's import also accepts Disqus's own native export file (the Comments XML you can request from your Disqus admin) directly. Request the export from Disqus, deposit the file in the import wizard, done — no API, no rate limits. For large forums, prefer the paths below: Disqus's native export is not built for big archives.
② Run the export yourself (CLI)
Prefer that nothing leave your machine? The exporter runs standalone, with your own Disqus application and credentials. You don't need GraphComment's infrastructure — or GraphComment at all — to use it.
Requirements:
- Node.js ≥ 18 (native
fetch, no external network dependency). - A Disqus application (disqus.com/api/applications/) created by the forum owner (read-only "Read" access is enough). From it you need the secret key and the access token.
Run it (no permanent installation — npx does it):
# Export a forum to a WXR file
npx disqus-wxr-middleware --forum <shortname> --out ./export.wxr.xml \
--api-secret <SECRET> --access-token <TOKEN>
# Credentials can also be passed through the environment
DISQUS_API_SECRET=<SECRET> DISQUS_ACCESS_TOKEN=<TOKEN> \
npx disqus-wxr-middleware --forum <shortname> --out ./export.wxr.xml
# Validate the configuration without running the export (no API call)
npx disqus-wxr-middleware --forum <shortname> --api-secret <SECRET> --access-token <TOKEN> --dry-run<shortname> is your Disqus forum's short identifier (the one in https://<shortname>.disqus.com/). Run npx disqus-wxr-middleware --help for all options (output file, rate budget, memory buffer…).
Large forums: duration and resuming
The Disqus API is capped at 1,000 requests per hour, 100 comments per request — a maximum throughput of ~100,000 comments per hour:
| Forum size | Minimum export duration |
|---|---|
| 100,000 comments | ~1 h |
| 1,000,000 comments | ~10 h |
| 5,000,000 comments | ~2 days |
| 10,000,000 comments | ~4 days |
The tool handles the rate limit automatically (throttling, recovery after a 429). If the export is interrupted — network, shutdown, exhausted quota — re-run the same command with --resume: it picks up where it stopped, without duplicating already-exported comments.
History depthThe Disqus API caps how far back history can be retrieved to roughly 5 years: older comments may not be exportable.
Self-run exports may contain plain-text e-mailsThe Disqus API returns commenters' e-mails only to an application created by the forum owner himself — Disqus's own public export omits them. Exporting through your own application therefore retrieves data Disqus otherwise anonymizes. As the data controller of your forum, verify your legal basis, the information given to your commenters, and your retention period before running it. Never commit an export file to a public repository. (The hosted service — level ① — never receives these e-mails at all.)
③ Audit the code
The exporter is open source: github.com/graphcomment/disqus-wxr-middleware (MIT, © Semiologic). It is the exact code that runs on GraphComment's servers for the hosted service — the code that touches your data is all there, auditable. Before granting an OAuth token or running anything, you can read precisely what it does: credentials are systematically masked from logs and errors, and the repo's README carries the full GDPR analysis of the e-mail question above.
It's also usable as a Node.js library (runExport, injectable writer and checkpoint store) if you want to drive the export from your own tooling — see the README's Programmatic API section.
Import the WXR file into GraphComment
Whether it came from the hosted service or from the CLI, the generated .wxr.xml is a standard WordPress export (WXR 1.2). Import it through GraphComment's WordPress import flow — the same one used for a regular WordPress export: your Disqus threads and comments are recreated, reply hierarchy preserved.
Next steps
- Getting Started — put the widget on your pages (if it isn't already).
- WordPress plugin — migrating a WordPress site? The plugin covers embed, import and sync.
- Single Sign-On — let your users comment with their existing accounts on your new setup.
Updated about 1 month ago
