Connect Upload-Post to Fondoo
Upload-Post is the service Fondoo uses by default to post to your social accounts. Fondoo already has the Upload-Post account, so you don't sign up or copy an API key. You link each social account you want to use, and then your AI agent can draft, schedule and publish posts. Every post still goes through your approval rules.
What Fondoo can do with it
- Link your accounts.
connect_socialcreates a "social set" for your business. A set is one Upload-Post profile that holds up to one account per network. It returns a secure linking page where you sign in to each network. - Draft posts.
draft_social_postswrites one AI caption per account from an idea, a page on your site or release notes.save_social_draftsaves text you wrote yourself, with no AI. Drafts never publish on their own. - Schedule and approve.
schedule_social_postspicks a time slot inside your posting windows and asks for approval.approve_social_postsconfirms the exact saved posts. - Publish. Fondoo's background publisher (
publish_due_social_posts, internal only) sends approved posts when they are due. It checks the result and retries with backoff, up to 5 attempts. If a post fails it raises an alert and does not resend blindly. - Use real media.
register_social_mediastores a real screenshot or video (PNG, JPEG, WebP, MP4 or WebM, up to 20 MiB). Fondoo never generates images. - Track results.
get_social_calendarshows drafts and scheduled posts. An hourly worker (sync_social_stats, internal only) saves post metrics, and you read them withget_social_stats. Metrics a network doesn't provide stay empty. They are never set to zero. - Cancel.
cancel_postcancels a post that hasn't gone out yet. Upload-Post can't delete a post that is already live, so remove it on the network itself.
What needs your approval: posts on networks set to review (the default) or manual, and all Reddit and Lemmy posts. Agent batches over 20 posts per day also need it, and so does cancel_post. Only the workspace owner can link manual-credential platforms (configure_upload_post_platform) or change posting rules (update_distribution_rules). Only a signed-in human owner can switch on automatic publishing.
Upload-Post doesn't support threads (multi-part posts). X posts sent through Upload-Post can't contain links. For links on X, see x.md.
Before you start
- A Fondoo workspace and a site. Each social set counts against your plan's social-set allowance. Builder and Launch include 1, Growth 3 and Agency 10, and you can buy extra sets. This may differ for your account.
- Owner access to each social account you want to link. For example: an Instagram Business or Creator account, a Facebook Page you manage, or admin rights on a LinkedIn company page.
- No Upload-Post account or payment. Fondoo pays for Upload-Post.
- Upload-Post is not available on self-hosted Fondoo. Self-hosters should use Postiz.
Step by step: authorize your accounts
- Ask your agent to run
connect_socialfor your site (see below). You get back aconnectionIdand aurl. - Open the
url. It is Upload-Post's hosted linking page, headed "Connect". Upload-Post says the link is valid for 48 hours (user profiles, integration guide). If it expires, run connect_socialagain for a fresh one. - Click each network you want and sign in on that network's own consent screen. Grant the publishing permissions it asks for. Some networks then ask you to choose a destination, such as a Facebook Page or a YouTube channel. The per-network guides list what each consent screen asks for (for example instagram.md, tiktok.md and linkedin.md).
- When you're done, Upload-Post sends you to the
redirectUrlyou gave. - Ask your agent to run
refresh_social_accountswith theconnectionId. Fondoo stores only the account name and ID, never your network passwords or tokens.
Platforms that use credentials instead of a sign-in
Some networks have no sign-in page. For these, the owner runs configure_upload_post_platform with connectionId, network and a credential object, then runs refresh_social_accounts. Fondoo sends the values straight to Upload-Post and never returns them. Every network also accepts an optional name.
| Network | Required credential fields | Where to get them |
|---|---|---|
| discord | webhook_url | Server Settings → Integrations → Webhooks |
| telegram | bot_token, chat_id | Create a bot with BotFather and make it an admin of your channel |
| slack | webhook_url | A Slack app with Incoming Webhooks turned on |
| mastodon | instance_url, access_token | An application you create on your instance |
| nostr | private_key (optional relays) | A dedicated signing key |
| lemmy | instance_url, username, password, community | Your Lemmy account |
| devto | api_key | DEV Settings → Extensions |
| hashnode | pat, publication_id | Hashnode personal access token |
| wordpress | site_url, username, application_password | Users → Profile → Application Passwords |
| whop | api_key, experience_id | A key with forum:post:create |
| listmonk | instance_url, username, password, list_id | Your listmonk instance |
Upload-Post checks Discord webhooks and Telegram bots before saving them. For Telegram, the bot must be an admin of the chat (user profiles). Field names for the other networks come from Fondoo's code. See each network's guide for details.
Connect it in Fondoo
To get the setup steps as a link, your agent can call connect_service({provider:"upload_post", 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 link your networks comes from connect_social, below.
(a) Dashboard. Open Connections. While your site has no social set, the Available card lists Social and ten networks (LinkedIn, Instagram, Facebook, X, TikTok, YouTube, Reddit, Bluesky, Pinterest, Threads). Upload-Post is not listed by name. Connect followed by the network name shows Continue connecting with a Connect securely button that opens the setup steps. The linking itself is done with connect_social, so the agent route below is the main way. Linked accounts then appear in the Connected card with a Reconnect button.
(b) Ask your agent. Example prompt:
"Connect my social accounts for site YOUR-SITE-ID using Upload-Post, set 1. Send me back to https://example.com/connected afterwards. Then refresh the accounts and show me what's linked."
The agent calls:
connect_social({ siteId, provider: "upload_post", network: "linkedin", set: 1,
redirectUrl: "https://example.com/connected", logoUrl? })
refresh_social_accounts({ siteId, connectionId })
list_social_accounts({ siteId })network is required by the schema, but the Upload-Post page offers every network. set picks the social set (1 to 100). connect_social doesn't accept an idempotencyKey. Before the first post, the owner turns on each network in the posting rules with update_distribution_rules. Networks stay off until they're listed there.
REST equivalent: POST https://api.getfondoo.com/v1/ops/connect_social with header Authorization: Bearer <Fondoo API key> and the same JSON body. Every operation above works the same way at /v1/ops/<operation>.
Test that it works
- Run
list_social_accounts({siteId}). Each linked network should appear underaccounts, with your connection listed asupload_post. - Run
get_connection_health({siteId}). It asks Upload-Post for the set's accounts and reports the status. - Run
schedule_social_postswith"dryRun": trueand a short text post to check limits and rules without saving anything. - Schedule one real post, approve it, and look for it in
get_social_calendarand then on the network.
Troubleshooting
- "Upload-Post profile limit reached". Fondoo's Upload-Post plan has no free profiles. Reuse an existing set, or contact Fondoo support.
- "Social account set allowance reached" (RATE_LIMITED). You asked for a set number above your plan's allowance. Use set 1 or buy an extra set.
- An account disappears after refresh. Upload-Post marked it as needing re-authorization. Open a fresh
connect_sociallink, sign in to that network again, and refresh. - "A social set supports one account per network". Two accounts on the same network are linked to one set. Unlink one on the linking page, or put it in a second set.
- "Enable NETWORK in distribution rules first". The owner needs to add that network with
update_distribution_rules. - Reddit posts never publish. Upload-Post currently returns
reddit_unavailable. Reddit stays draft-only, see reddit.md.
Limits, data and security
- Fondoo checks Upload-Post's daily caps and image limits before sending, using a snapshot of Upload-Post's docs from 2026-10-21. Posts per day: Instagram 50, TikTok 15, Facebook 25, LinkedIn 150, YouTube 10, Threads 50, Pinterest 20, X 10. Upload-Post counts these per connected account over a rolling 24 hours (limit of uploads, pricing and limits). Upload-Post's X cap depends on its plan, so these numbers may differ for your account. Your own posting rules (default: 1 post a day per account, 09:00 to 17:00 UTC) usually apply first. Check what's left with
get_publishing_capacity. - What Fondoo stores: your connection ID, the set's profile name (your business ID plus the set number), account names and IDs, your posts and their metrics. Manual-platform credentials are sent to Upload-Post and not kept by Fondoo. Upload-Post holds the network tokens.
- Rotate: run
configure_upload_post_platformagain with new values, thenrefresh_social_accounts. For sign-in networks, reconnect through a newconnect_sociallink. - Disconnect: remove the account on the Upload-Post linking page, or revoke the app in that network's own security settings. Then run
refresh_social_accountsso Fondoo marks it inactive.
Official links
- Upload-Post documentation: https://docs.upload-post.com/
- User profiles and linking URLs: https://docs.upload-post.com/api/user-profiles.md
- Hosted linking page guide: https://docs.upload-post.com/guides/user-profile-integration.md
- Upload limits: https://docs.upload-post.com/guides/limit-of-uploads
- Pricing and limits: https://docs.upload-post.com/resources/pricing-and-limits
- Choosing a social provider in Fondoo: social.md
