Skip to main content

Introduction

To develop and host an X (Twitter) bot on Square Cloud, it’s essential to follow a structured sequence of configurations and prerequisites. This technical guide will cover the entire process, from initial setup to production deployment.

Prerequisites

  • Square Cloud Account: Register through the signup page using your email.
  • Active plan: Ensures dedicated resources and optimized performance for your application. Check our available plans and choose the most suitable for your needs.
This guide runs on the Node.js runtime.

Create the project

An active X (Twitter) account is required for authentication and bot operation. If you don’t have an account, sign up at the official X website.
An X Developer account is also required to access the APIs. Request access through the X Developer Portal.
The X API is paid per use: reading mentions and posting replies are billed to your X developer account, including the bot’s periodic mention checks. Check the current rates on the X API pricing page before deploying.

Bot application on X

1

Open the Developer Portal

  1. Go to the X Developer Portal.
  2. Log in with your X (Twitter) account.
  3. If this is your first time, complete the developer access request process.
2

Create a project

  1. In the dashboard, click “Create Project”.
  2. Choose a name for your project (e.g. “Square Cloud Bot”).
  3. Select the most appropriate use case (e.g. “Making a bot”).
  4. Provide a detailed description of your bot.
  5. Confirm project creation.
3

Create an app

  1. Within the created project, click “Create App”.
  2. Define a unique name for your application.
  3. Confirm application creation.
  4. Note down the generated App ID for future reference.
4

Generate the API keys

  1. Navigate to the “Keys and tokens” section of your application.
  2. In the “Consumer Keys” section, click “Regenerate” to generate:
    • API Key (Consumer Key)
    • API Secret Key (Consumer Secret)
  3. Important: Copy and save these keys immediately, as you won’t be able to view them again.
5

Set the app permissions

  1. Go to the “App permissions” section.
  2. Click “Edit” to modify permissions.
  3. Select “Read and write” to allow your bot to post tweets.
  4. If necessary, select “Read and write and Direct message” for DM functionality.
  5. Save the changes.
6

Generate the access tokens

  1. Return to the “Keys and tokens” section.
  2. In the “Access Token and Secret” section, click “Generate”.
  3. Confirm token generation.
  4. Copy and save:
    • Access Token
    • Access Token Secret
  5. Warning: These tokens cannot be viewed again after closing the page.
7

Check your credentials

  1. Confirm that you have all 4 required credentials:
    • API Key (Consumer Key)
    • API Secret Key (Consumer Secret)
    • Access Token
    • Access Token Secret
  2. Store these credentials in a secure location
  3. Important: Never share or expose these credentials publicly

Develop the bot

  1. Node.js check: Verify that Node.js is installed on your system. If not, download it from the official Node.js website.
  2. Project initialization: Create a new Node.js project by running:
Terminal
  1. Install dependencies: Install the libraries required for the bot:
Terminal
  1. Credentials: the code reads the four credentials from environment variables, so they never go into your code. To test the bot on your computer, put them in a .env file and start the bot with node --env-file=.env index.js:
.env
Square Cloud doesn’t read this file when the bot runs: you set the same variables on the platform in Set the credentials.
  1. Create the main file: Develop the index.js file with the bot’s base structure:
index.js

Configure Square Cloud

Create a squarecloud.app file at the root of your project, next to index.js. It tells Square Cloud how to run your bot:
squarecloud.app
  • MEMORY is the bot’s RAM in MB. Bots need at least 256 MB; 512 MB leaves room to grow.
  • AUTORESTART=true starts the bot again if it crashes. See how auto restart works.
  • There is no SUBDOMAIN: the bot calls the X API and doesn’t serve web pages.
See the configuration file reference for every field.

Set the credentials

Security: Never include your API credentials directly in code. Always use environment variables on Square Cloud.
The bot needs four environment variables:
  • API_KEY: Your X API key
  • API_SECRET_KEY: Your X API secret key
  • ACCESS_TOKEN: Your access token
  • ACCESS_TOKEN_SECRET: Your access token secret
Set them in one of these ways:
  • Dashboard: on the upload page, open Advanced configuration and add the four variables. For a bot that is already deployed, add them on the application’s Environment Variables page and restart the bot.
  • CLI: right after you upload the bot (see Deploy and verify), load them from your local .env file with squarecloud app env set and restart the bot:
The bot reads its environment variables when it starts, so restart it after every change. See Environment variables for the other ways to manage them.

What goes in the ZIP

  • index.js and your other source files.
  • package.json.
  • squarecloud.app.
Leave out node_modules: Square Cloud installs your dependencies when the bot starts. Also leave out your .env file: if you upload with the CLI, add a line with .env to your squarecloud.ignore file so the CLI skips it.

Deploy and verify

Create the ZIP described above, then upload it:

Via dashboard

1

Access the Upload Page

Access the upload page and upload your project zip file.
2

Configure Your Environment

After uploading your zip, you will need to configure the name, main file or runtime environment and other settings for your project.
If you are uploading a web project, make sure to select “Web Publication” and set a subdomain to your project.
3

Deploy Your Project

Finally, click on the “Deploy” button to host your project on Square Cloud.
After deployment, you can monitor your project’s status and logs from the dashboard.
Uploading application to Square Cloud
4

Confirm Your App Is Live

Your first deploy usually takes less than a minute. In the dashboard, wait for your application status to show as running and check the logs for any startup errors.
If you deployed a website or API, open https://<your-subdomain>.squareweb.app in your browser: you should see your application responding. If you deployed a bot, send it a command to confirm it is online.
App not starting? See the Troubleshooting guide for the most common causes and fixes.

Via CLI

To use this method, your project needs a configuration file named squarecloud.app at its root. It tells Square Cloud how to run your application.

Configuration file guide

Learn how to create the squarecloud.app configuration file that defines your application’s environment.
1

Install the CLI

Install the Square Cloud CLI. If you already have it, run the same command to update it:
2

Log In

Run the command below. It opens your browser: approve the login there and the CLI is ready. There is no API key to copy. For scripts and CI, see CLI authentication.
3

Upload Your Project

From your project folder, run the command below. The CLI zips the current folder, leaving out what squarecloud.ignore lists, and uploads it:
To upload a zip you created yourself, pass it with --file:
4

Confirm Your App Is Live

Your first deploy usually takes less than a minute. Check your application status and logs directly from the terminal:
If you deployed a website or API, open https://<your-subdomain>.squareweb.app in your browser: you should see your application responding. If you deployed a bot, send it a command to confirm it is online.
App not starting? See the Troubleshooting guide for the most common causes and fixes.

Test the bot

After deployment, check the application logs in the Square Cloud dashboard for the Bot successfully initialized! message to confirm the bot authenticated correctly. Then, from another account, post a tweet that mentions the bot with !ping (for example, @your_bot !ping) and confirm it replies with Pong! 🤖 X Bot working correctly! on X within a few minutes. Mentions posted before the bot started are skipped.

Common errors

Request failed with code 401

The logs show Error verifying bot: followed by this error. One of the four credentials is wrong or missing. Copy them again from the “Keys and tokens” section, set the four variables and restart the bot.

Request failed with code 403 when replying

The bot authenticates but can’t post. The access tokens were generated while the app had read-only permission. Set “Read and write” in the app permissions, regenerate the Access Token and Secret, update ACCESS_TOKEN and ACCESS_TOKEN_SECRET and restart the bot.

Request failed with code 429

The bot reached an X API rate limit. Wait before the next request, and space out your calls as in Rate limiting.

Going further

The snippets below extend index.js: add them to the file and call them where your bot needs them.

Hashtag monitoring

Scheduled posts

Rate limiting

X (Twitter) has strict rate limits. Implement controls to avoid exceeding these limits:

Error handling

Next steps

App won't start

Fix missing modules, memory errors and other startup failures.

Environment variables

Manage your bot’s credentials and other secrets.

Node.js runtime

How Square Cloud runs Node.js applications.
For more about twitter-api-v2 and the X API, see the official twitter-api-v2 documentation, the official X API documentation, the X API usage policies and the X API introduction.

Contact us

If you continue facing technical difficulties, our specialized support team is available to assist you. Contact us and we’ll be happy to help you resolve any issue: support quality is a big part of why developers rate Square Cloud 4.9/5 across 402 reviews on Google and Trustpilot.