How I deleted all my old tweets using Python
By Flavio Copes
How I used Python and the delete-tweets tool to bulk-delete old tweets, from requesting my Twitter archive to setting API keys and clearing my history.
I don’t like the idea of leaving around too many “historical” tweets with all the dumb things I tweet about.
So I decided to delete them all.
To do so I requested an archive of all my tweets from the Twitter (now X) account settings.
The archive can take days to generate. My archive dated back to 2015, although I’ve been on Twitter since 2007. Maybe I already removed my past tweets in 2015, I don’t remember.
I got the archive, I downloaded it, then I unpacked the folder and I ran
python -m venv .venv
source .venv/bin/activate.fish
python -m pip install delete-tweets
Then I created the environment variables to set the keys of an X (Twitter) app, required to run the whole process, as described on https://github.com/koenrh/delete-tweets:
export TWITTER_CONSUMER_KEY="your_consumer_key"
export TWITTER_CONSUMER_SECRET="your_consumer_secret"
export TWITTER_ACCESS_TOKEN="your_access_token"
export TWITTER_ACCESS_TOKEN_SECRET="your_access_token_secret"
I used the consumer and access keys of a Twitter app I already had. Today you create apps in the X developer portal, and the API is not free anymore: as of September 2026 you buy credits up front and every call, deletes included, is billed against them. Check the current pricing before you start.
Tip: when you define environment variables in this way, they are recorded by default in the shell history. To avoid that with the Fish shell, run a new shell with
fish --privateto start the shell in private mode.
Then I ran:
delete-tweets --until 2021-01-01 tweet.js
to delete all the tweets I tweeted before 2021. It took a little while, but it worked.

It took way more to get the archive from Twitter than to delete the tweets, but in the end I got a clean slate.
Note on the tool (2026)
The koenrh/delete-tweets repo on GitHub is archived. The PyPI package still installs, but its last release is from 2020 and it talks to the old v1.1 API, so don’t expect it to work today. Treat this post as a record of what worked for me in 2021.
If you need to clear your history now, look for a maintained tool built on the v2 API, or write a small Python script against the v2 delete endpoint yourself. Either way, you pay per API call.
Want me to talk about your product? You can sponsor this site.
Related posts about python: