After exporting your Mastodon archive, you may worry that some posts were omitted during the process. The export tool generates a JSON file containing statuses, but network interruptions or server rate limits can truncate the data. This article explains how to verify the completeness of your Mastodon export by checking post counts, timestamps, and file integrity. You will learn to confirm that every public post is included and identify any missing entries.
Key Takeaways: Verifying Your Mastodon Archive Completeness
- Preferences > Import and Export > Export: Downloads a JSON archive of your posts that may be incomplete due to pagination limits.
- Compare total post count in JSON to your profile counter: A direct numeric check that reveals missing records.
- Check the oldest post timestamp in the export: Confirms whether the archive includes your earliest Mastodon content.
Why Mastodon Exports Can Miss Posts
Mastodon’s export feature generates a JSON file containing your public posts. The server uses pagination to collect posts, which means it requests them in batches of 40 per page. If your account has more than 40 posts, the export process must iterate through multiple pages. Network timeouts, server load, or rate limiting can stop this pagination early. The result is a JSON file that only contains the most recent posts.
The export does not include direct messages, private mentions, or posts from deleted accounts. Only public and unlisted posts appear in the archive. If you have used Mastodon for years, the export may stop at a date far after your first post. The verification steps below detect this exact problem.
What the Export JSON Contains
The downloaded file is named outbox.json. It follows the ActivityPub standard. The orderedItems array holds each post as an object. Each object contains fields such as published (timestamp), type (usually Create), and object (the post content and metadata). The array order is newest first. This structure allows you to extract the oldest timestamp and count the total items.
Steps to Verify Your Mastodon Export Completeness
Perform these checks in the order listed. Each step adds a layer of confirmation. You will need a text editor that can open large JSON files, such as Notepad++, VS Code, or Sublime Text. Alternatively, use a command-line tool like jq on Windows PowerShell or macOS Terminal.
- Obtain your export file
Log in to your Mastodon instance. Go to Preferences > Import and Export > Export. Click the download button next to the archive format. Wait for the file to download completely. Do not rename the file yet. - Count the number of posts in the JSON file
Open outbox.json in your text editor. Locate theorderedItemsarray. Count the number of objects inside it. In VS Code, hover over the closing bracket to see the item count. In Notepad++, use the Ctrl+F search for"type":"Create"and check the count in the Find dialog. Write down this number. - Compare the count to your Mastodon profile
Visit your Mastodon profile page. Look at the post count displayed under your display name. This number includes all public and unlisted posts. If the JSON count is lower than the profile count, your export is missing posts. If the numbers match, proceed to the next check. - Find the oldest post timestamp in the JSON
Scroll to the last object in theorderedItemsarray. This is the oldest post in the export. Look for thepublishedfield. Copy the timestamp value, such as2023-01-15T14:30:00Z. This is the date of the earliest post included in the archive. - Compare the oldest timestamp to your account creation date
Go to your profile and click the three-dot menu. Select About this account. Find the Joined date. If the oldest post timestamp is later than the Joined date, you are missing posts from the early period of your account. If the timestamp matches or is within a few days of your join date, the export is likely complete. - Run a checksum verification for file integrity
Open PowerShell or Command Prompt. Navigate to the folder containing outbox.json. Runcertutil -hashfile outbox.json MD5to get the file hash. Note the hash. Re-download the export and run the same command. If the two hashes match, the file was not corrupted during download. A mismatch indicates a partial or corrupted download.
Using jq for Automated Verification
If you are comfortable with the command line, jq provides faster checks. Install jq from the official website. Then run:
jq '.orderedItems | length' outbox.json
This command returns the post count. To get the oldest post timestamp, run:
jq '.orderedItems[-1].published' outbox.json
If the Export Is Missing Posts
Export Only Contains the Last 40 Posts
This indicates the pagination stopped early. Delete the downloaded file. Go to Preferences > Import and Export > Export. Click the export button again. Ensure your internet connection is stable. Do not navigate away from the page during the download. If the issue persists, try exporting during off-peak hours when the server is less loaded.
Export Has a Gap in the Middle of the Timeline
This is rare and suggests a server-side error. Contact your instance administrator. Provide the oldest and newest timestamps from the export. The admin can check server logs for API errors during the export generation. In most cases, a second export resolves the gap.
Checksums Do Not Match After Re-download
A mismatched hash means the file was truncated during transfer. Clear your browser cache. Use a different browser or a download manager that supports resuming. Download the export again and run the checksum comparison. Repeat until two consecutive downloads produce identical hashes.
| Item | Manual Check | jq Command Check |
|---|---|---|
| Post count | Count objects in orderedItems array visually |
jq '.orderedItems | length' outbox.json |
| Oldest post timestamp | Scroll to last object and copy published field |
jq '.orderedItems[-1].published' outbox.json |
| File integrity | Run certutil -hashfile outbox.json MD5 twice and compare |
Same command, no jq equivalent needed |
You can now confirm whether your Mastodon export contains every public post. Start by comparing the JSON post count to your profile counter. If they match and the oldest timestamp aligns with your account creation date, the archive is complete. For accounts with thousands of posts, use the jq commands to speed up the verification process. As an advanced tip, schedule a monthly export and store the checksum in a text file. Comparing checksums over time helps detect any data loss caused by server changes.