ThreadsBackup setup guide

Connect ThreadsBackup to the Threads API

Create a Meta developer app, retrieve its credentials, configure a Quick or fixed Cloudflare Tunnel, and authorize your Threads account as a tester.

  1. Step 1 of 5

    Create a Meta app

  2. Step 2 of 5

    Get app credentials

  3. Step 3 of 5

    Set up callback URLs

  4. Optional alternative

    Create a fixed tunnel

  5. Step 4 of 5

    Add a Threads tester

  6. Step 5 of 5

    Authorize and back up

1

Start a new app

On the My Apps page, select Create App.

Meta for Developers My Apps page with the Create App button highlighted
2

Enter the app details

Set the app name to ThreadsBackup, or choose any name you like. Confirm that the contact email is correct, then select Next.

Create an app form with ThreadsBackup entered as the app name and Next highlighted
3

Select the Threads API use case

Choose Access the Threads API, then continue.

Meta app use case list with Access the Threads API selected
4

Skip the business portfolio

Select I don’t want to connect a business portfolio yet, then select Next.

Business portfolio step with the option to not connect a portfolio highlighted
5

Review the requirements

If no publishing requirements are listed, select Next.

Publishing requirements step showing no requirements and the Next button highlighted
6

Review and create the app

Check the app name, Threads API use case, business choice, and requirements. Then select Create app.

Meta app overview with the Create app button highlighted
7

Confirm your password

Re-enter your Facebook password and select Submit. Your Meta app is now created.

Facebook password confirmation dialog with Submit highlighted

Step 1 complete

Your Meta app is ready

Continue below to find the credentials that ThreadsBackup will use.

Step 2 of 5

Get the Threads app ID and app secret

Open the Threads API settings in your new Meta app, then copy the two credentials you will need in Step 3.

1

Open the Threads API settings

In your app dashboard, select Use cases in the sidebar. Find Access the Threads API, then select Customize.

Meta app dashboard with Use cases and the Threads API Customize button highlighted
2

Copy the app ID and app secret

On the Settings page, copy the Threads app ID. Select Show beside the Threads app secret, confirm your password if prompted, then copy the secret.

Keep the app secret private

Treat it like a password. Do not post it publicly or commit it to Git.

Threads API settings with the Threads app ID, app secret, and Show button highlighted

Step 2 complete

Keep both credentials ready

You will enter the Threads app ID and app secret when you configure ThreadsBackup in Step 3.

Step 3 of 5

Set up callback URLs with a Cloudflare Quick Tunnel

ThreadsBackup starts a temporary HTTPS tunnel so Meta can securely return you to the local app after authorization. A Cloudflare account is not required for a Quick Tunnel.

1

Start ThreadsBackup and copy the callback URL

From the directory containing your .env file, run threads-backup. The CLI starts the local callback server and Cloudflare Quick Tunnel automatically. Copy the complete Callback URL, including /oauth/callback, and leave the terminal running.

ThreadsBackup terminal output showing a Cloudflare Quick Tunnel callback URL and a prompt to register it in Meta
2

Register the callback URL in Meta

Return to Use cases → Access the Threads API → Customize → Settings. Paste the exact URL into Redirect Callback URLs and press Enter so it becomes a saved entry. Paste the same URL into Uninstall Callback URL and Delete Callback URL, then select Save.

Threads API settings with the Quick Tunnel URL entered in all three callback URL fields and Save highlighted
3

Leave the terminal open

Do not press Enter yet. Keep ThreadsBackup and the Quick Tunnel running while you add and accept your Threads tester invitation in Step 4.

Optional alternative

Create a fixed CLOUDFLARED_TUNNEL

Use a fixed tunnel if you want a stable callback URL that only needs to be registered in Meta once. This replaces the Quick Tunnel flow above and requires a Cloudflare account plus a domain managed by Cloudflare.

1

Create a Cloudflare Tunnel

In the Cloudflare dashboard, open Networking → Tunnels, then select Create Tunnel.

Cloudflare Tunnels page with Tunnels and Create Tunnel highlighted
2

Name the tunnel

Enter threadsbackup, or another memorable name, then select Create Tunnel. Keep the exact name—you will add it to .env later.

Cloudflare Create a Tunnel form named threadsbackup with Create Tunnel highlighted
3

Connect cloudflared

Choose your operating system and run the installation or service command provided by Cloudflare on the ThreadsBackup computer. Wait for Tunnel connected successfully, then select Continue.

Keep the tunnel token private

The command contains a secret token that can run your tunnel. Do not share it or save it in Git.

Cloudflare tunnel setup showing a successful connection and Continue highlighted
4

Add a route

Open the tunnel’s Routes tab and select Add route.

Cloudflare tunnel Routes tab with Add route highlighted
5

Choose Published application

Select Published application so Meta can reach the local OAuth callback through a public hostname.

Cloudflare Add a route dialog with Published application selected
6

Configure the hostname and service

Choose a subdomain and one of your Cloudflare-managed domains. Leave Path empty. Set Service URL to http://127.0.0.1:8787, then select Add route or Save changes.

Use HTTP for the local service

ThreadsBackup’s callback server uses plain HTTP on localhost. If you changed PORT, use that same port here.

Cloudflare published application form with a threadsbackup hostname, http://127.0.0.1:8787 service URL, and Save changes highlighted
7

Confirm the public hostname

Cloudflare creates the DNS record automatically. Copy the confirmed hostname and append /oauth/callback. For example: https://threadsbackup.example.com/oauth/callback.

Cloudflare confirmation that the published application route and DNS record were created
8

Configure ThreadsBackup

Add the full callback URL and exact tunnel name to your .env file. Register the same callback URL in all three Meta fields described above.

THREADS_REDIRECT_URI=https://threadsbackup.example.com/oauth/callback
CLOUDFLARED_TUNNEL=threadsbackup

When you run threads-backup, the CLI reuses an active connector or temporarily starts the named tunnel for authorization.

Environment file with THREADS_REDIRECT_URI and CLOUDFLARED_TUNNEL configured

Step 3 complete

Your callback URLs are saved

Keep the terminal open and continue to Step 4 before starting authorization.

Step 4 of 5

Add your Threads account as an app tester

Your Meta app is unpublished and in development mode, so only people with an app role can use its Threads API integration. Invite the Threads account you want to back up and accept the invitation from that account.

1

Open App roles

In the Meta app dashboard, expand App roles in the sidebar, select Roles, then select Add People.

Meta App roles page with Roles and Add People highlighted
2

Invite the Threads account

Under Additional roles for this app, choose Threads Tester. Search for the Threads username you want to back up, select the matching account, then select Add.

Add people dialog with Threads Tester selected, a Threads username entered, and Add highlighted
3

Confirm the invitation is pending

The account appears in App roles as a Threads Tester with a Pending status. The invitation is not active until it is accepted from Threads.

Meta App roles page showing the invited Threads Tester with Pending status
4

Open Threads settings

Sign in to the invited account on the Threads website. Open More, then select Settings. The labels may appear in your Threads display language.

Threads website menu with More and Settings highlighted in Traditional Chinese
5

Open Website permissions

Open More settings, then select Website permissions.

Threads More settings page with Website permissions highlighted in Traditional Chinese
6

Accept the tester invitation

Open the Invitations tab, find your Meta app, and select Accept. Confirm any terms shown by Threads.

Threads Website permissions invitation for ThreadsBackup with Accept highlighted in Traditional Chinese
7

Verify the tester is active

Return to Meta App roles and refresh the page. The Threads Tester should remain listed without the Pending badge.

Meta App roles page showing the Threads Tester without Pending status

Step 4 complete

Your Threads tester is ready

Continue to Step 5 to authorize that account and start the first backup.

Step 5 of 5

Authorize your Threads account and start the backup

Complete the OAuth login using the tester account you accepted in Step 4. ThreadsBackup then stores the access credentials locally and begins downloading your Threads posts and media.

1

Open the OAuth authorization URL

For a Quick Tunnel, return to the waiting terminal and press Enter. For a fixed tunnel, run threads-backup. When the CLI prints Open this URL, copy and open the complete URL in your browser.

ThreadsBackup terminal output with the Threads OAuth authorization URL highlighted
2

Approve access with the tester account

Review the requested permission to access and display your Threads information and posts. Confirm that the displayed username is the tester account you added, then select Continue as your username.

Threads OAuth consent page requesting access to Threads information and posts with Continue highlighted
3

Verify the saved credentials and backup

After Threads redirects to the callback URL, return to the terminal. ThreadsBackup saves the account token as .credentials/<username>.json and starts writing posts and media to backups/.

Keep credentials private

Do not share or commit the .credentials directory. It contains access tokens for your Threads account.

Project file tree showing a Threads account credential JSON file inside the .credentials directory

Setup complete

ThreadsBackup is backing up your account

Keep the terminal running until the backup summary appears. Future runs reuse the saved credentials and continue with an incremental backup.