Quick answer: Settings, then Account, then Export my data. You get a .car file with your posts, follows and likes. Your photos and videos are not in it, and you have to save those separately.
What the Export Actually Gives You
Bluesky is unusual among social networks in that a full export is built in and takes about thirty seconds. That is a genuine advantage of the AT Protocol: your account is a repository, and a repository can be handed to you in one piece.
What you receive is everything stored as a record:
| In the export | Not in the export |
|---|---|
| Your posts and replies, with timestamps | Photos and videos you posted |
| Likes and reposts | Your avatar and banner images |
| Follows and blocks | Direct messages |
| Lists you created | Other people's posts, including ones you liked |
| Your profile record | Notifications and view counts |
That right-hand column is the part worth reading twice, and we come back to the media problem below because it catches almost everyone out.
How to Export Your Data
Open your account settings
In the Bluesky app or on bsky.app, go to Settings, then Account. The option is the same on iOS, Android and the web.
Choose Export my data
Bluesky assembles your repository and hands you a file ending in .car. For most accounts this takes seconds rather than the day or two other platforms make you wait.
Store it somewhere that is not your laptop
The file is small, frequently under a megabyte, so there is no excuse for keeping only one copy. Put it in cloud storage or on an external drive. A backup that lives on the device most likely to fail is not a backup.
Back up your media separately
This is the step the interface does not tell you about. Your images and videos are not in the file you just downloaded. See below.
What a .car File Is, and How to Open It
A .car file is a Content Addressable aRchive. It is the raw storage format the AT Protocol uses for a repository, and Bluesky serves it with the content type application/vnd.ipld.car.
Two practical consequences. First, it is a complete, verifiable snapshot: every record is addressed by a cryptographic hash, so the archive can be checked for tampering. Second, you cannot read it. Double-clicking gets you nothing. It is not a zip file and it is not JSON.
To actually look inside you need a tool that understands the format. Several community-built CAR viewers exist that will list your posts in a readable form, and the official @atproto/repo package can parse one in a few lines if you are comfortable with Node.
Worth knowing: the same file is what a different AT Protocol host would import if you ever moved providers. That is the real purpose of the format. Human readability was never the goal, portability was.
The Part People Miss: Your Media Is Not in There
Images and videos on Bluesky are stored as blobs, held separately from the repository. Your post record contains a reference to the blob, an identifier called a CID, rather than the picture itself.
The export contains the reference. It does not contain the picture.
It is easy to demonstrate rather than assert. We exported the repository of the official @bsky.app account through the public API and inspected the file:
| Measurement | Result |
|---|---|
| Size of the entire repository export | about 193 KB |
| JPEG image data found inside it | none |
| PNG image data found inside it | none |
| Size of a single image from that account | about 454 KB |
One photograph is more than twice the size of the entire archive of that account's posts. That is not a flaw in the export, it is what a repository is. But if you assumed your holiday photos were safely inside that file, they are not.
Why this matters: if you delete a post, or your account is removed, the blobs go too. A .car file will preserve the fact that you posted something and what you wrote. It will not preserve the image you posted.
How to Back Up Your Photos and Videos
There is no built-in bulk media export, so this part is manual unless you write code. For most people, being selective is the right approach anyway: the handful of posts you would actually be upset to lose is usually a short list.
For each post that matters, copy its link and save the media in full quality. Our downloader fetches the original file straight from Bluesky's CDN, so you get what was uploaded rather than the compressed version the timeline displays. That distinction matters more than people expect, and we measured it in our image downloader guide. Video works the same way through the video downloader.
Two habits make the difference between an archive and a folder of mystery files:
- Save the post URL next to the file. Downloads are named by their CDN identifier, not by what they show. A plain text file listing the links alongside your media costs nothing and makes the archive usable in two years.
- Copy the alt text if it matters. Alt text lives on the post, not inside the image, so it does not travel with the download.
If a post contains several images, each one is a separate file and needs saving individually.
What a Backup Protects You From
Being precise about this is more useful than reassurance.
| Scenario | Does a backup help? |
|---|---|
| You delete a post by accident | Yes, if the backup predates the deletion |
| You want to move to another AT Protocol host | Yes, this is exactly what the format is for |
| Your account is suspended or removed | Yes for your records, but only if you exported beforehand |
| Bluesky the company shuts down | Partly, see below |
| You want your media back | Only if you saved it separately |
| You want someone else's posts you liked | No, the export records the like, not the post |
On the shutdown question, the honest answer is that portability is real but not automatic. Your identity is a DID rather than a username owned by a server, and your repository is a file you hold, so in principle you could carry both elsewhere. In practice that requires another host to exist and to accept your import. The architecture permits survival; it does not guarantee it. We go into this in our AT Protocol explainer.
Doing It Properly, for Developers
If you would rather automate the whole thing, everything above is available through the public API without authentication. The one detail that trips people up is that you cannot call these on bsky.social. Accounts live on individual hosting servers, and you have to find the right one first.
→ read serviceEndpoint, for example https://puffball.us-east.host.bsky.network
→ returns application/vnd.ipld.car
GET {pds}/xrpc/com.atproto.sync.getBlob?did=did:plc:yourid&cid={cid}
Step four is what turns a partial backup into a complete one. listBlobs is paginated with a cursor, so keep requesting until no cursor comes back, and add a short delay between calls rather than hammering the host. Our developer guide to the AT Protocol covers pagination, rate limits and error handling in more depth.
One caveat: blobs come back with no filename and no indication of which post they belong to. If you want an archive you can navigate later, record the mapping between post and CID as you go.
How Often to Back Up
Records and media deserve different rhythms, because they fail differently.
The repository export: every few months. It is a complete snapshot each time rather than an incremental one, so a recent copy replaces the old. Do an extra export before anything significant, such as changing your handle, moving hosting provider, or deleting a large number of posts.
Media: as you go. This is the asymmetry. A missed export costs you a few months of records that still exist on Bluesky and can be exported later. A deleted post takes its images with it permanently, and no later backup can recover them. If you post something you would be sorry to lose, save it that week.
Set a reminder if you are the sort of person who needs one. Twice a year is enough to matter, and it takes less time than reading this paragraph did.
Frequently Asked Questions
Does Bluesky let you export your data? Yes, and unusually easily. Settings, then Account, then Export my data gives you a .car file with your posts, replies, likes, reposts, follows, blocks and lists.
Are my photos included? No. Media is stored as separate blobs and referenced by identifier. The whole repository export for the official Bluesky account is around 193 KB, while a single image from it is around 454 KB.
How do I open a .car file? Not by double-clicking it. You need a CAR viewer or the @atproto/repo package. It is a portability format rather than a readable one.
Can I import a backup into another service? In principle yes, into another AT Protocol host, which is the point of the format. It depends on a suitable host existing and accepting the import.
Does the export include my direct messages? No. Direct messages are not part of your repository and are not included.
What about posts I liked from other people? Your export records that you liked something, not the post itself. If someone else deletes their post, your backup will not bring it back.