# Threads setup for PopMCP

You end up with one long-lived Threads access token, generated in your own Meta app, or the app's Threads app ID and secret if you prefer to sign in.

- Auth: OAuth authorization
- Setup time: 5 min (App Review only if people with no role on your app will connect)
- API base URL: https://graph.threads.com/v1.0
- Credentials screen: https://developers.facebook.com/apps
- Provider docs: https://developers.facebook.com/documentation/threads/get-started

## Approval required before this works

Connecting your own Threads account needs no approval: add it as a Threads Tester. Only an app serving people with no role on it, or reaching public posts and profiles, needs Meta's App Review and Business Verification.

- Typical wait: Meta publishes no timing. Allow a few weeks end to end, as rejected rounds restart the clock and business verification can add over a week.
- Cost: Free (Meta charges nothing for App Review or Business Verification, though verification may require official company documents)
- Blocked until approved: Until a permission is approved, the app only works for accounts with a role on it, Threads Testers included. Keyword search covers only the account's own posts, location search only answers for Menlo Park, mentions come only from the app's testers, and profile discovery reaches only @meta, @threads, @instagram and @facebook.
- Works meanwhile: Everything else works the same day. Create the app with the Access the Threads API use case, add your Threads account as a Threads Tester, accept the invitation, generate a token and connect. Publishing, replies, your own posts, mentions by testers and insights all work on that account.

## Before you begin

- A Threads account, public or private. It does not need a linked Instagram account, though follower counts and demographics are richer with one
- A Facebook account registered as a developer at developers.facebook.com
- Your own Threads account added as a Threads Tester on the app, which needs no App Review

## Get your credentials

### 1. Create a Meta app with the Threads use case

At My Apps click Create app, name the app and click Next. Select the Access the Threads API use case, click through the business portfolio and publishing requirement pages, and click Go to dashboard. You can skip connecting a business for your own account.

Screen: https://developers.facebook.com/apps/creation/

### 2. Add every Threads permission

On the dashboard click Customize the Access the Threads API use case, or open Use cases in the left nav and then Access the Threads API. On Permissions, click Add next to each permission: `threads_content_publish`, `threads_delete`, `threads_keyword_search`, `threads_location_tagging`, `threads_manage_insights`, `threads_manage_mentions`, `threads_manage_replies`, `threads_profile_discovery` and `threads_read_replies`. `threads_basic` is already there.

Screen: https://developers.facebook.com/apps

### 3. Add your Threads account as a Threads Tester

Open App roles and then Roles. Click Add People, select Threads Tester, type your Threads username and click Add. It shows as pending for a moment.

Screen: https://developers.facebook.com/apps

### 4. Accept the invitation in Threads

Signed in to the same account at threads.com or in the app, open Settings, then Account, then Website permissions. Under Invites, click Accept next to your app. If it is not there yet, wait a minute and refresh.

Screen: https://www.threads.com/settings/account

### 5. Generate the access token and add it to PopMCP

Back in the dashboard open Use cases, Access the Threads API, then Settings. At the bottom click Generate access token, approve in the window that opens, and copy the token, which starts with `TH`. Put it in the Threads access token field in PopMCP. PopMCP keeps it renewed while the connection is in use.

Screen: https://developers.facebook.com/apps

### 6. Optional: sign in through your app instead

To connect accounts you do not log in to, such as clients you have added as Threads Testers, skip the token. On the same Settings page add PopMCP's callback URL to Redirect Callback URLs, and to the Deauthorize Callback URLs and Data Deletion Request URLs fields. Copy the Threads app ID and Threads app secret into More options in PopMCP, leave the token empty and click Connect Threads. Each client signs in and approves.

Screen: https://developers.facebook.com/apps

### 7. Optional: App Review, to serve people with no role on your app

Only needed if people who are not on your app will connect, or to reach public data beyond your testers. Complete Verification, request each permission under App review with a screen recording of it in use, then Publish the app.

Screen: https://developers.facebook.com/apps

## Fields PopMCP asks for

- Threads access token (accessToken): In your Meta app (Threads use case) open Use cases, Access the Threads API, Settings, and generate an access token at the bottom. Your Threads account must be a Threads Tester on the app and have accepted the invitation. Stored encrypted, and renewed for you while the connection is in use.
- Threads app ID (your own Meta app) (clientId): To sign in through your own app instead of pasting a token, for example to connect client accounts you added as Threads Testers. Use cases, Access the Threads API, Settings. This is the Threads app ID, not the Meta app ID under App settings. Fill both app fields, and leave the token empty.
- Threads app secret (clientSecret): From the same Settings page. Stored encrypted and used only on our server.
- Permissions to ask for (scopes): Only with your own app: each must be added on the app under Use cases, Access the Threads API, Permissions. Threads refuses a sign-in that asks for one the app lacks.

## Callback URL to register

https://app.popmcp.com/api/providers/threads/callback

## Scopes requested

- threads_basic
- threads_read_replies
- threads_manage_insights
- threads_keyword_search
- threads_manage_mentions
- threads_profile_discovery
- threads_location_tagging
- threads_content_publish
- threads_manage_replies
- threads_delete

## Verify

PopMCP calls /me with the token right away, and shows your @username. It also reads when the token expires and which permissions it holds, and names any that are missing. Ask your AI client to call threads_get_profile to confirm, or threads_get_token_info to see the permissions.

## Troubleshooting

### "The user has not accepted the invite to test the app" when generating a token

Cause: The Threads Tester invitation is still pending.

Fix: In Threads open Settings, Account, Website permissions, Invites, and accept it. Then generate the token again.

### "Threads did not accept this token"

Cause: The token expired, was revoked, or was copied incompletely.

Fix: Generate a new one under Use cases, Access the Threads API, Settings, and paste the whole value.

### "This token lasts only an hour"

Cause: The token came from a tool that issues short-lived tokens, such as Graph API Explorer.

Fix: Use the Generate access token button on the use case's Settings page, or add your Threads app secret under More options so PopMCP can extend it to 60 days.

### "Invalid Scopes" on the Threads sign-in page

Cause: An own-app sign-in asked for a permission the app has not added.

Fix: Add it under Use cases, Access the Threads API, Permissions, or untick it in the connect form.

### The sign-in fails or the secret is refused

Cause: The Meta app ID and secret under App settings were used. Threads has its own pair.

Fix: Copy the Threads app ID and Threads app secret from Use cases, Access the Threads API, Settings.

### Redirect error on the Threads sign-in page

Cause: The callback URL is missing or differs. The dashboard may add a trailing slash.

Fix: Paste PopMCP's callback URL exactly under Redirect Callback URLs and check the saved value.

### Keyword search only finds your own posts, or profile lookup finds nobody

Cause: Those permissions are limited until Meta approves them through App Review.

Fix: This is expected for an app in development. Request the permission under App review to reach public posts.

### A tool reports a missing permission

Cause: The token was generated before that permission was added to the app.

Fix: Add it on the app, generate a new token and reconnect. threads_get_token_info lists what the connection holds.

---

Source: https://www.docs.popmcp.com/docs/integrations/threads/