Telegram Desktop's export is free and thorough, and it is also one chat at a time, HTML or JSON only, and desktop-app only. The alternatives below each fix one of those: Mastros for a CSV with columns from Telegram Web in your browser, the Telegram API libraries for scripts, and the command-line archivers for public channels. The table first, then what each one is for.
| Mastros | TG Desktop | tdl | Telethon | tg-archive | Telepathy | TG Member Extractor | |
|---|---|---|---|---|---|---|---|
| Form factor | Chrome extension | Desktop app | Go CLI | Python library | Python CLI | Python CLI | Chrome extension |
| Setup | Install, nothing to connect | Built in | Terminal + login | Code + API keys | Python + API keys | Python + API keys | Install |
| CSV output | Yes | No | No (JSON) | You write it | No (HTML site) | Yes | Yes |
| JSON output | Yes | Yes | Yes | Yes | SQLite | Yes | Yes |
| Member export | Yes | Limited | Yes | Yes | No | Yes | Yes (only feature) |
| Messages | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Bulk media | Yes (one ZIP) | Yes | Yes | You write it | Embedded | Yes | No |
| Mutual groups | Yes | No | No | You write it | No | No | No |
| Incremental sync | No | No | No | You write it | Yes | You write it | No |
| Runs headless on a schedule | No | No | Yes | Yes | Yes | Yes | No |
Needs api_id/api_hash |
No | No | No (logs in) | Yes | Yes | Yes | No |
| Cost | Free tier + paid | Free | Free, open source | Free, open source | Free, open source | Free, open source | Free tier + paid |
By Elias Mahdavi, founder of Mastros. Builds the extensions and answers the support inbox.
We make one of these tools; the sections below also say where it is the wrong pick.
Mastros: CSV from Telegram Web, no code
The Mastros Telegram extension adds a sidebar to Telegram Web and reads the session you are already signed into. There is one engine and nothing to set up: no api_id or api_hash, no second login. It saves recent contacts, the open chat's messages with sender and time, the members of one group, many groups or pasted t.me links (repeats removed), the groups you share with someone, and media as one ZIP. Files come out as CSV, JSON or JSONL, and nothing goes to Mastros servers. Free covers 250 profiles and 300 messages a month; Pro is $9 and Scale is $18.
Skip it if you need a job that runs without a browser tab, or you already write Python.
Telegram Desktop: the baseline
Settings, Advanced, Export Telegram data. Pick HTML to read or JSON to process, choose a folder, and Telegram writes the history with media in subfolders. For a personal backup of your own chats it is the right answer: first-party, free, and you trust nobody but Telegram.
Its limits are why this list exists: no CSV, thin member lists unless you run the group, no incremental export, and nothing outside the desktop app.
Skip it if you need CSV, members or repeat runs.
tdl: speed from the terminal
tdl is a single Go binary that talks to Telegram directly. It downloads messages and media, exports members and messages to JSON, and forwards and uploads files. It is built for speed and is scriptable, a common pick for very large channels and media-heavy chats. The cost is the terminal: no interface, and JSON you convert yourself.
Skip it if you do not want to work in a terminal, or you want a spreadsheet at the end without a conversion step.
Telethon: the library for builders
Telethon is the Python library much of the open-source Telegram ecosystem is built on, tg-archive and Telepathy included. It is a foundation, not a finished tool: you write the code, and Telethon handles the protocol, sessions and caching. For a custom pipeline it is the right base, and you own everything around it: credentials from my.telegram.org, rate limits, retries and the output format.
Skip it if you do not write Python, or you need a file today rather than a project.
tg-archive: archives of public channels
tg-archive syncs a group or channel into a local SQLite database, then builds a static website from it, with date indexes, reply links, embedded media and an RSS feed. Its headline feature is incremental sync: each run pulls only what is new, which suits long-running watches on public channels. It needs Python and API credentials, and its output is a website, not a spreadsheet. It does not export members.
Skip it if you want CSV, or you need member data.
Telepathy: investigation toolkit
Telepathy is an open-source toolkit for open-source investigations on Telegram, listed in Bellingcat's online investigation toolkit. Beyond archiving chats, it gathers member lists, finds a chat's top posters, and maps where forwarded messages came from. It can archive a batch of chats from a CSV list and writes CSV and JSON. Setup is Python plus API credentials, which is a lot to carry if all you need is one member list.
Skip it if you are not doing investigative work.
TG Member Extractor: members only
A Chrome extension that does one job: it pulls a group's member list into a CSV, JSON or Excel file. It is easy to learn, works in the browser, and suits someone who only ever needs member lists. It does nothing else: no messages, media or shared groups, and the free tier is small enough that real volume means a paid plan.
Skip it if you need anything beyond a single member list, such as messages or media from the same group.
How to pick
- One personal backup of your own chats: Telegram Desktop.
- A spreadsheet of members, messages or contacts, without code: Mastros. Members only: TG Member Extractor also works.
- A pipeline or scheduled job: Telethon in Python, or tdl from the terminal.
- A long-running archive of a public channel: tg-archive.
- Investigative work with forward maps and top posters: Telepathy.
For the wider field, cloud services included, see Best Telegram scrapers 2026, and for the members job step by step, export Telegram group members to CSV.
Every tool here reads only what your own account can see. None of them opens private groups you are not in, recovers deleted messages or reveals phone numbers people have hidden. Usernames and IDs are personal data under GDPR, so export from chats you take part in and keep only what you need.
FAQ
Will any of these get my Telegram account banned?
Telegram limits accounts that hammer its servers: fast loops over member lists, rapid joins, many requests per second. Telegram Desktop's export is first-party. With the other tools, the risk rises when you push speed, run several tools on one account at once, or ignore Telegram's wait responses. For sensitive work, use an account you are prepared to lose.
Can I export from a channel or group I am not a member of?
Public channels, the ones with a t.me handle, can be read without joining, so tg-archive, tdl and Telepathy can ingest them. Private groups and channels need an invite or membership, and no legitimate tool gets around that.
Does Mastros need Telegram API keys?
No. An earlier version had a "Power Mode" that asked for an api_id and api_hash; it was removed in version 5.0. The extension now reads through the Telegram Web session you are signed into, so there is nothing to register and no credentials for us to store. If you set keys up under the old version, the extension no longer uses them.
Does the built-in Telegram export work on a phone?
No. The export lives only in Telegram Desktop; the Android and iPhone apps have no chat export. From a phone, the options are forwarding messages or saving media one at a time, or signing into Telegram Web on a computer and exporting from there.
