---
title: "Free Twitter (X) Bot Hosting"
description: "Free Twitter (X) bot hosting on Node.js, Python, Bun or Ruby. 25% CPU, 256 MB RAM, 24/7 uptime. Read what the X API tiers allow before you build."
url: "https://sillydev.co.uk/twitter-bot-hosting"
updated: "2026-09-26"
---

Twitter (X)

# Free Twitter bot hosting.

Scheduled posts, feeds from elsewhere, daily stats and alerts. The hosting is free and always on; what the bot can do is up to X's API tier.

!

## Our hosting is free. X's API mostly is not.

Everything on this page is about running your bot here, which costs nothing. What your bot is allowed to do on X is set by X's API tiers, and the free one is small and mostly about posting. Reading mentions, timelines or search needs a paid tier bought from X, whatever host you use. Check the current tiers in X's developer portal before you build a bot that replies to people.

Tools that avoid the API by logging in as a normal user and scraping the site break whenever the site changes and get accounts suspended. We will not stop you running one within our acceptable use policy, and we do not recommend it: an account lost that way is lost, and we accept no responsibility for it.

Choose a runtime

## Pick your language

All three are installed and tested. Each page covers the libraries, the deployment and what fits in 256 MB for that runtime specifically.

- [Node.js Read the guide →](https://sillydev.co.uk/nodejs-twitter-bot-hosting)
- [Python Read the guide →](https://sillydev.co.uk/python-twitter-bot-hosting)
- [Bun Read the guide →](https://sillydev.co.uk/bun-twitter-bot-hosting)
- [Ruby Read the guide →](https://sillydev.co.uk/ruby-twitter-bot-hosting)

## Posting bots are the good fit

A bot that posts is the kind the free API tier is built around, and the kind that suits this allocation best. It wakes on a timer or when something happens elsewhere, such as a new release, a new article, a status change or a daily number, writes a post and goes back to sleep.

That uses a sliver of 25% of a core and needs no domain or open port. The panel's scheduled tasks can even restart it on a timetable if you would rather run it as a job than as a loop.

## Your own account needs no OAuth dance

For a bot that posts as one account you control, the developer portal will generate an access token and secret for that account directly. Those do not expire, so there is no refresh flow to store or get wrong.

The OAuth 2.0 user flow is for bots that act on behalf of other people. Its tokens do expire, and the refresh token has to be written to disk whenever it changes, or a restart means authorising again in a browser.

## Label the account as automated

X lets you mark an account as automated and link it to the account that runs it, and it expects bots to be identifiable. Do it: an unlabelled account that posts on a timer looks exactly like the spam accounts X is trying to remove.

Our acceptable use policy forbids unsolicited messaging, which rules out bots that mention or reply to people who never asked them to.

FAQ

## Questions

**Is this actually free if X charges for the API?**

The hosting is free: the same 25% of a core, 256 MB of memory and 512 MB of disk as every other bot here, with no renewals. What X charges is between you and X, and a posting-only bot may never need to pay them anything.

**Can my bot reply to mentions?**

Only if your API tier lets it read mentions, which the free tier does not. The bot itself runs here the same way either way; the limit is on what X will let it see.

**Do I need a domain or a public URL?**

No. Posting is an outbound request to X's API. Nothing needs to reach your bot from the internet.

**Where do the keys go?**

API key, API secret, access token and access token secret all go into environment variables on your server here, never into a file you might share or commit.

**Node.js, Python, Bun or Ruby for an X bot?**

Whichever you already write. Python has Tweepy and Node has twitter-api-v2, both long-established, and a posting bot is short in either. Bun runs the same npm package as Node.js, and Ruby has the x gem.

Hosting something else?

- [Discord bots→](https://sillydev.co.uk/discord-bot-hosting)
- [Minecraft bots→](https://sillydev.co.uk/minecraft-bot-hosting)
- [Telegram bots→](https://sillydev.co.uk/telegram-bot-hosting)
- [Twitch bots→](https://sillydev.co.uk/twitch-bot-hosting)
- [Reddit bots→](https://sillydev.co.uk/reddit-bot-hosting)
- [Bluesky bots→](https://sillydev.co.uk/bluesky-bot-hosting)
- [WhatsApp bots→](https://sillydev.co.uk/whatsapp-bot-hosting)

Control it from code

- [Bot hosting with an API→](https://sillydev.co.uk/guides/bot-hosting-with-an-api)
- [API docs→](https://sillydev.co.uk/docs/panel)
