What is inside
messages.json is a JSON file: structured text with curly brackets, quotes and field names. At the top it records whose account it came from and when the export was made. Then comes a list of conversations, and in each one a list of messages.
{
"userId": "live:yourname",
"exportDate": "2025-04-28T10:15:00.000Z",
"conversations": [
{
"id": "8:live:friend",
"displayName": "A friend",
"MessageList": [
{
"originalarrivaltime": "2019-11-20T16:44:53.421Z",
"from": "8:live:friend",
"messagetype": "RichText",
"content": "See you on Sunday <ss type=\"smile\">:)</ss>"
}
]
}
]
}
Messages are listed newest first, times are in UTC, and the text carries Skype's own markup: emoticons, quotes, links, bold and italics, notes about edits, and descriptions of shared photos and calls. That is why it is hard to read in a text editor.
Open it as conversations
Drop messages.json on the box on this page. Kept Chats reads it in your browser, turns the markup back into what you saw in Skype (quoted replies, emoticons, links, "edited" marks, calls) and shows each conversation with day headings and times in your own time zone.
Large files are fine. messages.json is read a piece at a time rather than all at once, so a file of a gigabyte or more opens in a browser on an ordinary computer.
What the message types mean
| Type in the file | Shown as |
|---|---|
RichText, Text | An ordinary message |
RichText/UriObject | A shared photo |
RichText/Media_GenericFile, Media_Video, Media_AudioMsg | A file, video or voice message |
Event/Call | A call, with its length, or a missed call |
ThreadActivity/... | Group changes: people added or leaving, the chat renamed |
Photos and files are not inside messages.json, only their descriptions. They are in the separate files export, in a folder called media. Add it to see them in place.
Searching it
Use the search box above the conversation list to search every conversation at once. Choose a result to jump to that message. To go to a particular day, use Go to date in the conversation header.