Connect Threads to Fondoo

Live6 min readUpdated

Connecting Threads lets Fondoo post to your business's Threads profile for you. Your AI agent can write drafts, plan them into time slots and publish them once approved. Fondoo then collects basic post stats.

You don't create API keys for Threads. Fondoo posts through its own account with Upload-Post, a social posting service. You sign in to Threads once on a secure page and approve access.

What Fondoo can do with it

  • Draft posts. draft_social_posts writes a caption from your idea, a site page or release notes. save_social_draft saves text you wrote yourself. Drafts are never sent.
  • Schedule and publish. schedule_social_posts puts a post into a free time slot within your posting windows. A background job, publish_due_social_posts, checks every minute and sends posts that are due.
  • Post types: text, a single image, an image carousel, or a single video. Multi-post Threads chains are not supported through Upload-Post. Fondoo rejects them with "Hosted threads".
  • Links. Fondoo turns every link into a tracked link so you can see visits in Fondoo analytics.
  • Stats. sync_social_stats saves post metrics every hour. You read them with get_social_stats. If Threads doesn't report a metric, Fondoo leaves it empty instead of guessing.
  • Calendar. get_social_calendar and get_post show what is drafted, waiting or scheduled.

What needs your approval:

  • approve_social_posts is marked destructive whenever the network's approval setting is review (the default) or manual. When your agent schedules a post, it waits under Needs your OK on Home until you click Approve. The approval runs through decide_approval.
  • If you set Threads to approval: "auto", agent posts are scheduled without asking you. Automated batches of more than 20 posts a day still need your OK.
  • cancel_post is destructive, so the agent needs your approval to cancel.
  • Only the owner can change posting rules (update_distribution_rules) or account settings (configure_social_account).

Before you start

  • A Threads profile. Meta says anyone with an Instagram or Facebook account can create one (Threads FAQ). Make sure you can sign in to the profile you want to post to.
  • Public or private. If your profile is private, only your followers can see your posts (Threads FAQ).
  • Costs. You don't need your own Upload-Post plan, because Fondoo's account is used. The current code adds no per-post charge for Threads. The only per-post social charge in the code is for X posts that contain links. AI drafts from draft_social_posts use one AI post unit per idea from your plan's allowance. Scheduling text you wrote yourself uses none.
  • Social sets. Each Fondoo site has one or more "social sets". A set holds one account per network. How many sets you get depends on your Fondoo plan.

Step by step: authorize your account

  1. In Fondoo, ask your agent to connect Threads, or call connect_social yourself (see the next section). You get back a url and a connectionId.
  2. Open the url. It is an Upload-Post connection page titled "Connect ". Upload-Post documents these links as valid for 48 hours (Upload-Post: user profile integration).
  3. The page lists the networks you can connect. Choose Threads.
  4. Meta asks you to sign in and approve access. Check that the profile shown is the business profile you mean to post as. The app name on that screen may be Upload-Post rather than Fondoo. It asks to read your basic profile and to publish content for you. The exact wording may differ for your account.
  5. Approve, then go back to Fondoo. You never paste a password or token into Fondoo or into chat. Upload-Post stores the authorization.
  6. Ask your agent to run refresh_social_accounts with the connectionId so Fondoo picks up the new account.

Connect it in Fondoo

To get the setup steps as a link, your agent can call connect_service({provider:"threads", siteId}) (REST: POST /v1/ops/connect_service). It returns a signed link, valid for 15 minutes, plus a QR code and these setup steps. That link only shows instructions. The page where you actually sign in to Threads comes from connect_social, below.

(a) In the dashboard. Go to Connections. Under Available, look in the Social group (or type "Threads" in Find a tool) and click Connect Threads. Fondoo shows Continue connecting with a Connect securely button. That button opens a signed setup link with these steps, which expires after 15 minutes. The actual Threads sign-in page comes from connect_social, so the quickest route is to ask your agent. Once connected, Threads appears under Connected with a Reconnect button.

(b) Ask your agent. Example prompt:

Connect our Threads profile to this site. Give me the authorization link, and after I approve, refresh the social accounts and show me what's connected.

The agent calls:

  1. connect_social with { "siteId": "<site-id>", "provider": "upload_post", "network": "threads", "redirectUrl": "https://example.com/connected", "set": 1 }. redirectUrl is where you land after approving. Don't send an idempotencyKey: this operation rejects one.
  2. refresh_social_accounts with { "siteId": "<site-id>", "connectionId": "<connectionId>" }.
  3. list_social_accounts with { "siteId": "<site-id>" } to confirm.

Turn Threads on for posting. Networks stay off until they appear in your posting rules. A human owner must do this. Read the current rules with get_distribution_rules first, because update_distribution_rules replaces the whole set. Example rule: { "network": "threads", "cadence": 2, "windows": [{ "days": [1,2,3,4,5], "start": 540, "end": 1020 }], "formats": ["text", "image", "carousel", "video"], "approval": "review" }. Times are UTC minutes after midnight, and days run 0 (Sunday) to 6.

REST equivalent. Every operation is POST https://api.getfondoo.com/v1/ops/<operation>:

curl -X POST https://api.getfondoo.com/v1/ops/connect_social \
  -H "Authorization: Bearer $FONDOO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"siteId":"<site-id>","provider":"upload_post","network":"threads","redirectUrl":"https://example.com/connected"}'

Agents on MCP (https://api.getfondoo.com/mcp) reach the same operations with find_tools and call_tool.

Test that it works

  1. Run list_social_accounts. Threads should be listed and active.
  2. Open Social in the dashboard, pick your Threads account under Post to, write a short text post and click Schedule. Agents can call schedule_social_posts with "dryRun": true first to preview without saving anything.
  3. Check This week on the Social page, or call get_social_calendar or get_post. The post's status moves from scheduled to published. Then check your Threads profile to see the live post.
  4. An hour or so later, get_social_stats should show a metrics snapshot.

Troubleshooting

  • "Enable threads in distribution rules first": add a Threads rule with update_distribution_rules (human owner only).
  • "threads character limit (500) exceeded after link tracking": Threads counts bytes, not letters. An emoji takes 4 bytes, and many accented or non-Latin characters take 2 to 3. Tracked links also add length. Shorten the text.
  • "Format disabled by distribution rules" or "Media/thread do not match the selected format": add the format to your Threads rule. An image post needs exactly one image, a carousel needs at least two, and a video needs exactly one video.
  • The account doesn't appear after you authorize: run refresh_social_accounts. If it says "A social set supports one account per network", that set already has a Threads profile. Use "set": 2 for a second profile.
  • "Social account is disconnected" or the account vanished: the authorization expired or was removed. Get a fresh connect_social link, reconnect Threads, then refresh.
  • "Daily cadence reached" or "Requested slot violates the UTC window…": you hit your daily post count or picked a time outside your windows. Pick another time, or ask the owner to raise cadence.

Limits, data and security

  • Character limit: 500 bytes per post (Upload-Post character limits).
  • Media: up to 20 images, 8 MB each. Media is uploaded with register_social_media: PNG, JPEG, WebP, MP4 or WebM, up to 20 MiB per file. It must be a real screenshot or video, not AI-generated.
  • Daily cap: Fondoo's default is 50 Threads posts per account per UTC day, the same as Upload-Post's cap (Upload-Post upload limits). Unless the owner changes the rules, the default is one post a day between 09:00 and 17:00 UTC. get_publishing_capacity shows what's left today.
  • Failures: Fondoo retries with growing waits. If a post keeps failing, or Upload-Post hasn't confirmed it after 24 hours, Fondoo marks it failed and sends you an alert. It never resends blindly.
  • What Fondoo stores: your account's ID, name and settings, your post text and media, tracked links and metric snapshots. Fondoo never sees your Meta password or the Threads access token, because Upload-Post holds the authorization.
  • Deleting posts: Fondoo can't delete a Threads post once it's published. Delete it in Threads. cancel_post works for drafts and posts that haven't gone out yet.
  • Disconnect: in Threads, go to More > Settings > Account > Website permissions and remove the app under Active (Meta help). Then run refresh_social_accounts so Fondoo marks the account inactive. Cancel any scheduled Threads posts first. There are no keys to rotate.