YanMate

Read your Character.AI data export

Character.AI's data export is at Settings → Legal & Privacy → Export Data. It arrives by email as a download link, and what you get is a ZIP of JSON files with no readable format — no schema, no version, no index. Your characters and your entire chat history are in there, but not in a shape any normal app will open. Drop the ZIP below and this page reads it in your browser: your characters as cards you can take elsewhere, your conversations as plain readable text. One thing worth knowing before you request it — long chats often export incomplete unless you scroll the conversation all the way to the top first, because the export only contains what the app had loaded.

Open your export

  1. Open the conversations you care about and scroll each one to the very top. The export contains what the app has loaded, so this step is the difference between a complete history and a recent fragment.
  2. Go to Settings → Legal & Privacy → Export Data.
  3. Wait for the email. It carries a download link rather than the file itself, and it can take up to a day to arrive.
  4. Download the ZIP and drop it below. It never leaves your computer — it is unpacked and read here, in this tab.

Waiting on your export email? It can take a day. Try a character in the meantime — no account needed.

How to get your export from Character.AI

The option is in the app under Settings → Legal & Privacy → Export Data. It is a data-protection export rather than a product feature, which is why it does not download in the app and why the result is not designed to be read: Character.AI emails you a link, and the link gives you a ZIP of JSON files.

The email can take up to a day. There is no progress indicator and no second notification, so it is worth checking spam before assuming it failed. Once it arrives the link is the only copy you get — download it promptly, because export links expire.

The most important thing happens before you request it: open every conversation you care about and scroll it all the way to the beginning. The section below explains why.

What is actually inside the ZIP

A folder of JSON files with machine-generated names and no index. Two kinds of thing matter, and both are recognisable by their field names rather than by where they live.

Character definitions

One JSON object per character you made or talked to, holding the name, the greeting, the short description, and the long-form Definition field — which is where a Character.AI author puts the persona and the example dialogue together. Categories come across as tags, and the character's internal id comes across as provenance.

There is no lorebook, no alternate greetings and no asset list, because Character.AI has none of those. A character card exported from here is genuinely thinner than one written in an app that speaks the card format, and that is a property of the source rather than of this page.

Chat history

Nested arrays of messages, usually under a key like histories, chats or msgs, with the text under text or raw_content and the speaker under a field like src__name. The archive has no conversation titles and no reliable conversation id, so this page groups your messages by the file they came from — the file boundaries are the only conversation boundaries the data honestly has.

Avatars are not in the archive. They are links to images on Character.AI's servers, and this page never fetches anything from anywhere, so a card downloaded here has no picture.

What the fields map to

The names on the left are what Character.AI writes; the middle column is the other names the same field has been seen under across export versions. The double-underscore names come from Django's ORM, which is both why they look like that and why they change whenever the query behind the export changes.

Character.AI fieldAlso seen asBecomes, on a card
nameparticipant__name, title, character_namename
greetingfirst_message, introfirst_mes
descriptionshort_description, taglinedescription
definitionlong_descriptionpersonality — the long-form persona and example dialogue field
categoriestags
external_idcharacter_id, identifiersource[] as characterai:<id>
user__usernameauthorcreator
In the chat filesKeys seen
Container keyshistories, history, chats, messages, turns
Per-entry message arraymsgs
Message texttext, raw_content
Message authorsrc__name, src__user__username

Why exports come back incomplete

This is the most common disappointment with a Character.AI export and it has nothing to do with the tool you open it in. The export contains what the app had loaded, not everything on the server. A conversation you opened, read the last hundred messages of, and closed will export with about that many messages in it.

Nothing can recover the rest from the file, here or anywhere else — the messages are not in it. The only thing that helps is to open each conversation, scroll it all the way to the beginning so the app loads the whole thing, and then request a new export. If a chat matters to you, do that before you delete anything.

Taking your characters somewhere else

Each character this page recovers can be downloaded as a V3 character card — JSON or PNG — which is the format SillyTavern, Chub, RisuAI, Janitor AI and most other character apps read. The name, greeting, description, Definition and categories all come across, and the character's Character.AI id is written into the card's provenance chain so you can tell later where it came from.

Two things do not survive, and neither is fixable by any tool: there is no lorebook and no alternate greetings, because Character.AI does not store them; and there is no picture, because the avatar is a link to an image on their servers rather than a file in the archive. This page never fetches anything from anywhere, so the PNG it writes is a blank image carrying the character's text.

Your conversations download as plain text — one file for everything, or one per conversation. A text file is the most durable thing you can keep: it will still open in twenty years, whatever happens to any of the apps involved. If you want to compare where to go next, we compare eight platforms honestly, including where this one is the wrong answer.

Questions

How do I download my data from Character.AI?
Settings → Legal & Privacy → Export Data. It is a data-protection export rather than a product feature, so it does not download in the app: Character.AI emails you a link, which can take up to a day, and the link gives you a ZIP of JSON files. Before you request it, open your important conversations and scroll each one to the very top — the export contains what the app had loaded, and that step is the difference between a complete history and the last few hundred messages.
Why is my Character.AI export missing messages?
Because the export reflects what the client had loaded, not what is on the server. A long conversation you opened and read the recent part of will export with only that recent part. This is widely reported and there is no way to recover the rest from the file — the messages are not in it. Scrolling each chat fully to the top and requesting a fresh export is the only thing that helps, and it is worth doing before you delete anything.
Can I move my Character.AI character to another app?
Yes, with a caveat about what survives. This page turns each recovered character into a V3 character card, as JSON or as a PNG, which SillyTavern, Chub, RisuAI, Janitor AI and most other character apps read. The name, greeting, description, Definition and categories all come across. What cannot come across is anything Character.AI does not store: there is no lorebook, no alternate greetings, and no avatar in the archive — the avatar is a link to their servers, and this page never downloads one.
Is my export uploaded anywhere?
No. The ZIP is unpacked and read by JavaScript running in your browser. Dropping a file here produces no network request at all — you can confirm that in your browser's network tab. Nothing is stored, nothing is logged, and there is no result link to share, because there is no result on any server to share. That matters more here than on most tools: this is your private chat history.
Does this work with the old export format?
It is built to. Character.AI has changed the shape of this export at least twice and publishes no version field, so this reader looks for each field under every name it has been seen using — name or participant__name or character_name or title, greeting or first_message or intro, and so on — rather than validating against one schema. It reads what it recognises and tells you which files it skipped. If your archive comes back unrecognised, that is more likely to be a shape we have not seen than a problem with your file.
Can I get my chat history as a text file?
Yes. There is a download for the whole archive as one plain-text file, and one per conversation. Each message is written as "Speaker: what they said", with the source filename as a heading between conversations, so it opens in anything and stays searchable. That is usually the most durable thing to keep: a text file will still open in twenty years, whatever happens to any of the apps involved.

Other free tools

An AI character on YanMate. Character.AI is a trademark of Character Technologies, Inc. This page is not affiliated with or endorsed by them; it reads a file format their export produces.