Mastodon Export Verification: How to Confirm No Posts Were Lost
🔍 WiseChecker

Mastodon Export Verification: How to Confirm No Posts Were Lost

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.

ADVERTISEMENT

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.

  1. 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.
  2. Count the number of posts in the JSON file
    Open outbox.json in your text editor. Locate the orderedItems array. 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.
  3. 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.
  4. Find the oldest post timestamp in the JSON
    Scroll to the last object in the orderedItems array. This is the oldest post in the export. Look for the published field. Copy the timestamp value, such as 2023-01-15T14:30:00Z. This is the date of the earliest post included in the archive.
  5. 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.
  6. Run a checksum verification for file integrity
    Open PowerShell or Command Prompt. Navigate to the folder containing outbox.json. Run certutil -hashfile outbox.json MD5 to 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

ADVERTISEMENT

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.

ADVERTISEMENT