You may have downloaded your Mastodon account archive twice — once today and once a month ago — and want to see what changed. Mastodon archives contain separate JSON files for follows, mutes, blocks, domain blocks, bookmarks, and lists. Comparing two archives manually is tedious and error-prone. This article explains how to use a simple command-line diff tool and a spreadsheet method to spot exactly which accounts you followed, muted, or blocked between two export dates.
Key Takeaways: Comparing Mastodon Export Archives with Diff and Spreadsheets
- diff command on Unix or WSL: The fastest way to compare two archive folders and see added or removed accounts in each JSON file.
- Import JSON into Excel or Google Sheets: Use Power Query or IMPORTDATA to load the
outbox.jsonfile and filter bytypeandpublisheddate to find new follows or blocks. - Sort and compare unique identifiers: Extract the
actororobjectfield from each activity to get the exact account URI that changed.
Why Compare Two Mastodon Export Archives
Mastodon exports are JSON snapshots of your account activity. Each archive includes an outbox.json file that lists every action you performed — follows, unfollows, boosts, favorites, mutes, blocks, and list changes — in chronological order. The actor.json file contains your profile information. Other files such as lists.json and bookmarks.json store static snapshots of those collections.
When you export your archive today and again in two weeks, the new archive will contain all the old data plus any new activity. Manually scrolling through thousands of lines of JSON is impractical. A diff reveals exactly what changed between the two snapshots without reading every line.
Common reasons to diff archives include:
- Verifying that a follower migration moved all followers correctly.
- Checking that you successfully muted or blocked a specific account.
- Auditing your own activity for data-privacy purposes.
- Confirming that list memberships were updated after a cleanup.
Prerequisites for Comparing Mastodon Archives
Before starting, you need two Mastodon export archives from different dates. To create an archive:
- Log into your Mastodon instance
Open your Mastodon web interface and go to Preferences > Import and export > Export. - Download the archive
Click the Download archive button. Mastodon generates a ZIP file containing multiple JSON files and your media uploads. - Repeat after a time interval
Wait at least one day or perform some actions (follow, unfollow, mute, block). Download a second archive.
You also need a tool to extract ZIP files. On Windows, right-click and choose Extract All. On macOS or Linux, double-click or use the unzip command. For the command-line method, you need a terminal with diff installed — this is built into macOS and Linux, and available on Windows via WSL or Git Bash.
Method 1: Command-Line Diff of Archive Folders
This method compares the entire folder structure of two archives and shows which files differ and what lines changed inside each JSON file.
- Extract both archives into separate folders
Name the foldersarchive_oldandarchive_newso you can identify them easily. - Open a terminal in the parent directory
On Windows with WSL, typewslin the folder path. On macOS or Linux, open Terminal and navigate to the folder containing the two archive folders. - Run the recursive diff command
Type:diff -r archive_old archive_new
The-rflag compares subdirectories recursively. The output shows lines that differ between matching files. - Interpret the output
Lines prefixed with>exist only in the newer archive. Lines prefixed with<exist only in the older archive. For JSON files, the diff shows the exact line numbers and content that changed. - Filter for specific activity types
If you only want to see new follows, pipe the diff output throughgrep:diff -r archive_old archive_new | grep "Follow". ReplaceFollowwithBlock,Mute, orUndoto focus on specific actions.
The command-line method is fast and works on any file type. However, the output can be long if you have many changes. You can redirect the output to a file with diff -r archive_old archive_new > changes.txt and review it at your own pace.
Method 2: Spreadsheet Comparison of Outbox.json
If you prefer a visual approach, import the outbox.json file from each archive into a spreadsheet and use filters to find additions or deletions.
- Extract the outbox.json file
From each archive ZIP, copy theoutbox.jsonfile to a working folder. Rename one tooutbox_old.jsonand the other tooutbox_new.json. - Import into Excel using Power Query
In Excel, go to Data > Get Data > From File > From JSON. Selectoutbox_old.json. In the Power Query editor, expand theorderedItemslist. Load the data to a worksheet. Repeat foroutbox_new.jsoninto a separate sheet. - Import into Google Sheets using IMPORTDATA
In Google Sheets, use the formula=IMPORTDATA("file:///path/to/outbox_old.json"). This works only if the file is hosted on a web server. For local files, upload the JSON to Google Drive and use=IMPORTDATAwith the Drive share link. - Add a helper column to identify the source
In both sheets, add a column namedArchiveand fill it withOldorNew. - Combine both tables and find differences
Copy all rows from the New sheet and paste below the Old sheet. Select all data and go to Data > Remove Duplicates. Check the column that contains the unique activity identifier — typically theidorobjectfield. Rows that remain after removing duplicates are the activities that exist in only one archive.
This method gives you a clean table of what changed. You can sort by type to see only Follows or Blocks. You can also filter by published date to see activities within a specific time range.
Common Issues When Comparing Mastodon Archives
Diff Shows Changes in Media Files That Are Not Relevant
Mastodon archives include media files such as profile pictures and header images. If you changed your avatar between exports, the diff will flag that file as different. To ignore media files, run the diff with the -x exclude flag: diff -r archive_old archive_new -x "jpg" -x "png" -x "gif". This skips image files and focuses on JSON data.
Outbox.json Contains Duplicate Activities
Mastodon sometimes records the same activity multiple times, especially after a follower migration or a re-follow. When using the spreadsheet method, remove duplicates based on the id field before comparing. In Excel, use Data > Remove Duplicates and select only the id column.
JSON Structure Differs Between Mastodon Versions
Older Mastodon versions (3.x) export a flat orderedItems array. Newer versions (4.x) may include nested objects. If the diff shows entire blocks of added or removed lines, the JSON structure itself changed. In that case, focus on specific fields like type and object rather than comparing the entire file.
Account URIs Do Not Match Due to Instance Migration
If you moved your account to a different instance between exports, the actor field in old activities points to your old instance while new activities point to your new instance. A direct diff will flag every activity as changed. To compare meaningfully, extract only the object field (the target account URI) and compare those separately.
| Item | Command-Line Diff | Spreadsheet Method |
|---|---|---|
| Setup time | Under 1 minute after extraction | 5-10 minutes for JSON import |
| Requires software | Terminal with diff (built into macOS/Linux, WSL on Windows) | Excel or Google Sheets |
| Handles large archives | Yes, processes thousands of lines quickly | May slow down with over 10,000 rows |
| Filters by activity type | Via grep or awk | Via spreadsheet filters |
| Visual output | Text-based, colorized with colordiff | Tabular, easy to sort and filter |
| Handles media files | Yes, but can be excluded | Not applicable — focuses on JSON only |
You now have two reliable methods to compare Mastodon export archives from different dates. Use the command-line diff for a quick scan of all changes, or use the spreadsheet method for a detailed audit of follows, mutes, and blocks. After finding differences, you can verify your account cleanup or migration results. As an advanced tip, automate the diff by writing a shell script that runs diff -r every week and emails you the output — this gives you a continuous change log of your Mastodon activity.