Connect TikTok to Fondoo
Connecting TikTok lets Fondoo post your real videos and photo posts to your business's TikTok account. Your AI agent can write captions, plan posts into time slots and publish them once approved. Fondoo then collects basic post stats.
You don't create a TikTok developer app or API keys. Fondoo posts through its own account with Upload-Post, a social posting service whose TikTok app is already approved. You sign in to TikTok once on a secure page and approve access.
What Fondoo can do with it
- Draft captions.
draft_social_postswrites a caption from your idea, a site page or release notes.save_social_draftsaves text you wrote yourself. Drafts are never sent. - Schedule and publish.
schedule_social_postsplaces a post in a free slot within your posting windows. The background jobpublish_due_social_postssends posts when they are due. - Post types: a video, a single photo or a photo carousel. TikTok has no text-only posts. On photo posts, Fondoo uses the first 90 characters as the title and the full text as the description.
- Privacy level. The owner can choose who sees posts with
configure_social_account. See step 7 below. - Stats.
sync_social_statssaves metrics every hour, and you read them withget_social_stats. If TikTok doesn't report a metric, Fondoo leaves it empty. - Not supported from Fondoo: turning duets, stitches or comments off, TikTok's commercial content disclosure (paid partnership or brand promotion), and the AI-generated label. Fondoo doesn't send these settings. Post branded content from the TikTok app instead.
What needs your approval:
approve_social_postsis marked destructive when TikTok's approval setting isreview(the default) ormanual. Agent posts wait under Needs your OK on Home until you click Approve (this runsdecide_approval).- With
approval: "auto", agent posts are scheduled without asking. Automated batches of more than 20 posts a day still need your OK. cancel_postis destructive, so the agent needs your approval to cancel.- Only the owner can change posting rules (
update_distribution_rules) or the privacy setting (configure_social_account).
Before you start
- A TikTok account you can sign in to. Upload-Post's docs don't limit this to a particular account type. This may differ for your account.
- Private accounts can't post publicly. TikTok decides which privacy levels each account may use (Upload-Post TikTok guide).
- Real media. Fondoo only accepts real screenshots and videos, never generated media. Upload files with
register_social_media: PNG, JPEG, WebP, MP4 or WebM, up to 20 MiB per file. Upload-Post lists JPG, JPEG and WebP for TikTok photos, so PNG photos may be rejected. TikTok videos must run 3 to 600 seconds, be at least 360 px on the shortest side and play at 23 to 60 fps (Upload-Post upload video). - Costs. You don't need your own Upload-Post plan. The current code adds no per-post charge for TikTok. AI drafts use one AI post unit per idea from your plan's allowance. Scheduling text you wrote yourself uses none. How many social sets you get (one account per network each) depends on your plan.
- About TikTok's review rule. TikTok makes posts from apps it hasn't reviewed private-only (TikTok Content Posting API). Upload-Post says its app is already approved, so this shouldn't affect you.
Step by step: authorize your account
- Ask your agent to connect TikTok, or call
connect_socialyourself (see below). You get aurland aconnectionId. - Open the
url. It is an Upload-Post page titled "Connect". Upload-Post documents these links as valid for 48 hours (Upload-Post: user profile integration). - Choose TikTok. You'll see TikTok's normal login and permission screen. It may name Upload-Post rather than Fondoo.
- Sign in to the TikTok account you want Fondoo to post to, and check it's the right one. Approve the permissions it lists, including posting content for you. The exact wording may differ.
- Go back to Fondoo. You never paste a password or token into Fondoo or chat. Upload-Post stores the authorization.
- Ask your agent to run
refresh_social_accountswith theconnectionId. - Optional, owner only: set the privacy level with
configure_social_account{ "siteId": "<site-id>", "accountId": "<account-id>", "settings": { "privacy_level": "SELF_ONLY" } }. The values arePUBLIC_TO_EVERYONE,MUTUAL_FOLLOW_FRIENDS,FOLLOWER_OF_CREATORandSELF_ONLY. If you leave it out, TikTok uses the account's default. Note thatsettingsreplaces any settings already stored for that account.
Connect it in Fondoo
To get the setup steps as a link, your agent can call connect_service({provider:"tiktok", 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 TikTok comes from connect_social, below.
(a) In the dashboard. Go to Connections. Under Available, find Connect TikTok in the Social group, or search in Find a tool. Fondoo shows Continue connecting and a Connect securely button. That opens a signed setup link with these steps, which expires after 15 minutes. The TikTok sign-in page itself comes from connect_social, so asking your agent is quickest. Once connected, TikTok appears under Connected with a Reconnect button. The Social page's composer only sends text, so use your agent to post TikTok videos and photos.
(b) Ask your agent. Example prompt:
Connect our TikTok account and send me the link. After I approve, refresh accounts. Then upload this real product video and schedule it for TikTok tomorrow with a short caption.
The agent calls:
connect_socialwith{ "siteId": "<site-id>", "provider": "upload_post", "network": "tiktok", "redirectUrl": "https://example.com/connected", "set": 1 }. Don't send anidempotencyKey, because it is rejected.refresh_social_accountswith{ "siteId": "<site-id>", "connectionId": "<connectionId>" }.register_social_mediawithtype: "video/mp4",filename,alt,provenance: "real_video"andconfirmedReal: true. The file goes inbase64or a sitestorageKey.schedule_social_postswith{ "siteId": "<site-id>", "variants": [{ "accountId": "<account-id>", "text": "<caption>", "format": "video", "mediaIds": ["<media-id>"] }] }.
Turn TikTok on for posting (human owner only). Read the current rules with get_distribution_rules, then call update_distribution_rules, which replaces the whole set. Example rule: { "network": "tiktok", "cadence": 1, "windows": [{ "days": [0,1,2,3,4,5,6], "start": 960, "end": 1200 }], "formats": ["video", "carousel", "image"], "approval": "review" }. Put a media format first: AI drafts use the first format listed, and the rule's default is text, which TikTok rejects.
REST equivalent:
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":"tiktok","redirectUrl":"https://example.com/connected"}'MCP agents (https://api.getfondoo.com/mcp) use find_tools and call_tool.
Test that it works
list_social_accountsshows TikTok as active.- For a safe first post, set
privacy_leveltoSELF_ONLY(step 7) so only you can see it. - Schedule one short real video. Agents can add
"dryRun": truetoschedule_social_poststo preview first. - Watch
get_social_calendarorget_post. TikTok publishes in the background, and the post link can take about 3 minutes to appear (Upload-Post upload video). Then check the post in the TikTok app. When you're done testing, changeprivacy_levelback withconfigure_social_account.
Troubleshooting
- "Format not supported by this adapter/network": TikTok needs media. Use
video,imageorcarouseland attach media. A carousel needs at least two images. - "Enable tiktok in distribution rules first" or "Format disabled by distribution rules": the owner adds or edits the TikTok rule.
- Post marked failed, but a draft appears in your TikTok inbox: when TikTok's daily active-user cap is hit, Upload-Post may save the post as a draft instead ("fallback to inbox"). Fondoo treats that as a failure and alerts you, so publish the draft from the TikTok app. Paste the caption in yourself, because captions don't carry over to video drafts. Upload-Post says reconnecting the account moves it to its newer publishing route, which this doesn't affect (Upload-Post: reached active user cap).
- Privacy errors (
tiktok_privacy_unavailable): the account can't use that level, for example a private account asking forPUBLIC_TO_EVERYONE. Choose another level or removeprivacy_level. - Media rejected: TikTok refused the file because of its format, length, frame rate, resolution or size. Fix the file, since resending the same one will fail again (Upload-Post TikTok guide).
- "Social account is disconnected" or the account vanished: reconnect through a new
connect_sociallink, then runrefresh_social_accounts. Upload-Post says TikTok sessions last about 60 days and refresh when used regularly (Upload-Post FAQ).
Limits, data and security
- Caption: up to 2,200 characters. Links in captions are not clickable on TikTok, even though Fondoo still tracks them.
- Photos: up to 35 images, 20 MB each, within Fondoo's 20 MiB upload limit.
- Daily cap: Fondoo's default is 15 TikTok posts per account per UTC day. Upload-Post also limits each account to 15 posts per rolling 24 hours and 6 per minute (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_capacityshows what's left today. - Failures: Fondoo retries with growing waits. If a post keeps failing or stays unconfirmed for 24 hours, Fondoo marks it failed and alerts you. It never resends blindly.
- What Fondoo stores: account ID, name and settings, post text and media, tracked links and hourly metric snapshots. Fondoo never sees your TikTok password or access token, because Upload-Post holds the authorization.
- Deleting posts: Fondoo can't delete a published TikTok post. Delete it in the app.
cancel_postworks only before a post goes out. - Disconnect: in the TikTok app, open Settings and privacy and look under Security or Security & permissions for the app permissions list. Remove the connected app there. Labels vary by app version. Then run
refresh_social_accounts, after cancelling any scheduled TikTok posts. There are no keys to rotate.
Official links
- TikTok Content Posting API: https://developers.tiktok.com/doc/content-posting-api-get-started
- Upload-Post TikTok guide: https://docs.upload-post.com/guides/post-to-tiktok-api
- Upload-Post upload parameters and media limits: https://docs.upload-post.com/api/upload-video
- Upload-Post active user cap: https://docs.upload-post.com/guides/reached-active-user-cap-error
- Upload-Post upload limits: https://docs.upload-post.com/guides/limit-of-uploads
- Upload-Post FAQ: https://docs.upload-post.com/resources/faq
