Read a Telegram result.json Export

Turn a Telegram Desktop machine-readable JSON export into a clean transcript plus per-sender message counts, word counts, top words and emoji — all in your browser.

Try:
Transcript / stats

About this tool

Telegram Export Reader turns a Telegram Desktop machine-readable result.json export into plain text you can actually read: a dated transcript plus per-sender message counts, word counts, top words, top emoji and media/service-message counts. Paste the JSON export; everything runs locally in WebAssembly and no chat history is uploaded.

It accepts the common Telegram Desktop shapes:

Formatted Telegram text arrays are flattened into normal text, while media-only messages become readable placeholders such as [photo], [sticker 🎉], [voice message] or [file: invoice.pdf].

Worked example

Input:

{
  "name": "Weekend Trip",
  "type": "private_group",
  "messages": [
    {"type":"message","date":"2021-03-27T14:45:00","from":"Alice","text":"Hey everyone ready for the trip"},
    {"type":"message","date":"2021-03-28T09:46:10","from":"Bob","text":["Yes ",{"type":"bold","text":"so"}," excited 🎉"]},
    {"type":"message","date":"2021-03-28T09:47:00","from":"Bob","text":"","photo":"photos/photo_1.jpg"}
  ]
}

Output (both mode):

Chat: Weekend Trip (private group)
Messages: 3
Participants: 2
Words: 9
Media messages: 1
Date range: 2021-03-27 to 2021-03-28

Messages per sender:
      2   66.67%  Bob    (3 words)
      1   33.33%  Alice  (6 words)

Top words (min length 3):
      1  everyone
      1  excited
      1  hey
      1  ready
      1  the
      1  trip
      1  yes

Top emoji:
      1  🎉

=== Transcript ===

[2021-03-27 14:45:00] Alice: Hey everyone ready for the trip
[2021-03-28 09:46:10] Bob: Yes so excited 🎉
[2021-03-28 09:47:00] Bob: [photo]

Options and limits

FAQ

How do I get result.json from Telegram?

In Telegram Desktop, open the chat menu, choose Export chat history, and set Format to Machine-readable JSON. Telegram writes a folder containing result.json; open that file in a text editor, copy all of it, and paste it here. For a full account export, use Settings → Advanced → Export Telegram data.

Does this upload my private messages?

No. The parser is pure WebAssembly running in the browser tab. Your pasted JSON is not sent to a server, and the output is computed locally.

Why do I see [photo] or [sticker] instead of the media?

Telegram's result.json references exported files by path; it does not contain the image, sticker, audio or document bytes. This tool reads the JSON only, so it keeps a clear placeholder in the transcript instead of trying to load files that were not pasted.

Can I analyze just one person?

Yes. Put their Telegram display name in Sender filter. Matching is case-insensitive and exact after trimming, so Bob matches bob but not Bobby. The filter applies before the message cap.

What does the word count include?

Words are split on whitespace for per-sender totals, while the "Top words" list uses alphanumeric tokens of at least three characters. Emoji are counted separately in the "Top emoji" list.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool telegram-export-reader "{"name":"Weekend Trip","type":"private_group","messages":[{"type":"message","date":"2021-03-27T14:45:00","from":"Alice","text":"Hey everyone ready for the trip"}]}"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/telegram-export-reader/?export=%7B%22name%22%3A%22Weekend%20Trip%22%2C%22type%22%3A%22private_group%22%2C%22messages%22%3A%5B%7B%22type%22%3A%22message%22%2C%22date%22%3A%222021-03-27T14%3A45%3A00%22%2C%22from%22%3A%22Alice%22%2C%22text%22%3A%22Hey%20everyone%20ready%20for%20the%20trip%22%7D%5D%7D&output=both&include_service_messages=true&sender_filter=Alice&max_messages=0

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.