Post 100 TikTok videos a day with Microsoft Copilot Studio
Post 100+ TikTok videos a day from Microsoft Copilot Studio: spread slots across ≥34 TokPortal bundles (3 videos/day/bundle cap), batch-configure, publi…
Posting 100 videos a day from Microsoft Copilot Studio is a scheduling problem, not an API problem: TokPortal caps each bundle at 3 videos per calendar day, so 100 posts/day means at least 34 accounts each carrying 3 dated slots, filled with batch_configure_bundle_videos or import_bundle_videos_csv and pushed with publish_bundle. Human managers post through the native app on real, geo-targeted accounts, so there is no per-account OAuth, no app review and no official 6-requests-per-minute token limit in the loop.
Connect TokPortal to Microsoft Copilot Studio
Microsoft Copilot Studio is a workflow / low-code platform: Microsoft's low-code agent builder; MCP servers are added as tools through the MCP onboarding wizard (Streamable transport).
In your agent: Tools → Add a tool → New tool → Model Context Protocol, then:
- Server name:
TokPortal - Server description:
Create, warm and operate TikTok/Instagram accounts; schedule videos; read analytics and ban status. - Server URL:
https://app.tokportal.com/api/ext/mcp - Authentication: OAuth 2.0 → Dynamic discovery (TokPortal supports discovery + dynamic client registration), or API key → Header named
X-API-Keywith yoursk_...key.
Select Create, create the connection, then Add to agent. Generative orchestration must be enabled.
Snippet status: verified against Microsoft Copilot Studio's documentation (source).
Once connected, sanity-check the setup with a read-only call — "What is my TokPortal credit balance?" should trigger tokportal_get_credit_balance. Every tool runs as your TokPortal account and spends your credits; read-only tools (get_*, list_*, export_*) never do.
How it works
Start from the cap: target_publish_date accepts at most 3 videos per day per bundle and rejects the 4th with VIDEOS_PER_DAY_EXCEEDED. So the agent first decides on a fleet size — 34 accounts for 100/day, 50 for 150/day — and either reuses delivered accounts (videos_only bundles pointing at an account_id) or orders new ones with create_bundles_bulk (accounts_count, videos_per_account). One bundle of 90 videos on one account is 30 days of posting; ten bundles of 90 spread over ten accounts is 30 posts a day.
Media comes first: upload_video returns a presigned URL you PUT the file to (or use upload_video_direct for a multipart upload from a script), and the resulting public_url goes into each slot's video_url. Then the agent fills slots. batch_configure_bundle_videos accepts up to 500 items in one call with position, video_type, description, target_publish_date, video_url and optional tiktok_sound_url, ai_content_disclaimer, disclose_as_ads. From a spreadsheet, import_bundle_videos_csv does the same with one file. When a bundle passes get_bundle_publish_readiness, publish_bundle sends it to the manager, and every video moves configured → published → in_review → finalized, with video.published / video.finalized webhooks if you register an endpoint. auto_finalize_videos (default true) closes the review loop after 72 hours without you.
Because managers post by hand, TokPortal does not offer minute-level timing; you schedule per day and the manager posts within that day. That is the trade for accounts that behave like local creators rather than API-flagged publishers.
Run it from Microsoft Copilot Studio
In Microsoft Copilot Studio the same sequence becomes nodes/steps: either an AI Agent step with the TokPortal tools and the prompt below as its instruction, or one deterministic step per tool in the order above (create → configure → publish → poll). Map data.id from each response into the next step.
Tool sequence
tokportal_get_credit_costs— 2 credits per video slot at the standard rate; multiply by the daily volume before committing.tokportal_list_accounts— Find delivered accounts to reuse (platform=tiktok,banned=false); each account = 3 slots/day.tokportal_create_bundles_bulk— Or order the fleet:platforms:["tiktok"],country,accounts_count,videos_per_account(≤500).tokportal_create_bundle— For existing accounts:bundle_type: videos_only,account_id,videos_quantity.tokportal_upload_video— Presigned upload per file →public_urlused asvideo_url(orupload_video_directfor multipart).tokportal_batch_configure_bundle_videos— Up to 500 slots in one call; the server enforces the 3/day cap per bundle and returns per-item errors.tokportal_import_bundle_videos_csv— Alternative: one CSV per bundle with position, description, target_publish_date, video_url…tokportal_get_bundle_publish_readiness— Ensures every slot has media and a date before publishing.tokportal_publish_bundle— Sends the bundle to the manager; repeat per bundle.tokportal_create_webhook_endpoint— Subscribe tovideo.published,video.finalized,video.pending_correctionsto track the 100 daily posts without polling.
Prompt to paste
Use the TokPortal MCP tools. Goal: 100 TikTok posts per day in the US for 30 days.
1) list_accounts (tiktok, US, banned=false) and count how many I can reuse.
2) Compute how many extra accounts are needed given 3 videos/day/bundle and quote it via get_credit_costs.
3) Draft the create_bundles_bulk and batch_configure_bundle_videos payloads for the first bundle
(dates 2026-09-01 → 2026-09-30, 3 per day) and stop before publishing.
Test in the Copilot Studio test pane; the orchestrator picks tokportal_* tools from the server description, so keep the description specific.
REST equivalent (same operations, X-API-Key header, base URL https://app.tokportal.com/api/ext)
# Fleet: 34 accounts × 90 slots (30 days × 3/day)
curl -X POST https://app.tokportal.com/api/ext/bundles/bulk \
-H "X-API-Key: sk_..." -H "Content-Type: application/json" -H "Idempotency-Key: $(uuidgen)" \
-d '{"platforms":["tiktok"],"country":"US","accounts_count":34,"videos_per_account":90}'
# Fill one bundle's slots (3 per day)
curl -X PUT https://app.tokportal.com/api/ext/bundles/BUNDLE_ID/videos/batch \
-H "X-API-Key: sk_..." -H "Content-Type: application/json" \
-d '{"videos":[
{"position":1,"video_type":"video","description":"Day 1 – hook A #fyp","target_publish_date":"2026-09-01","video_url":"https://.../a.mp4"},
{"position":2,"video_type":"video","description":"Day 1 – hook B","target_publish_date":"2026-09-01","video_url":"https://.../b.mp4"},
{"position":3,"video_type":"video","description":"Day 1 – hook C","target_publish_date":"2026-09-01","video_url":"https://.../c.mp4"}
]}'
curl -X POST https://app.tokportal.com/api/ext/bundles/BUNDLE_ID/publish -H "X-API-Key: sk_..."
Key parameters
| Parameter | Values | Notes |
|---|---|---|
target_publish_date | YYYY-MM-DD | Max 3 videos per day per bundle → VIDEOS_PER_DAY_EXCEEDED on the 4th. |
videos_quantity / videos_per_account | 0–500 | Slots per bundle; add more later with add_video_slots. |
accounts_count | 1–100 per bulk call | 100 posts/day needs ≥34 accounts. |
video_type | video · carousel · story | description required for video/carousel (≤2200 chars). |
video_url | URI | From upload_video / upload_video_direct public_url, or any public URL. |
tiktok_sound_url | URI | Manager uses this sound; volume fields cost 1 credit. |
auto_finalize_videos | boolean (default true) | Auto-closes review after 72 h in in_review. |
Full schemas: OpenAPI reference · openapi.json.
Example configurations
30-day schedule on an existing account
{"bundle_type":"videos_only","account_id":"ACCOUNT_UUID","videos_quantity":90,"title":"Sept schedule"}
Batch item with sound and AI label
{"position":7,"video_type":"video","description":"POV: first day at the gym #gymtok",
"target_publish_date":"2026-09-03","video_url":"https://pub-xxx.r2.dev/videos/b/7.mp4",
"tiktok_sound_url":"https://www.tiktok.com/music/original-sound-7300000000000000000",
"ai_content_disclaimer":true}
Webhook for tracking
{"url":"https://hooks.example.com/tokportal","events":["video.published","video.finalized","video.pending_corrections"]}
Credits
Video slots cost 2 credits each at the standard rate (100 posts/day ≈ 200 credits/day), plus 32 credits per new account if you order the fleet with create_bundles_bulk. Sound volume control adds 1 credit per video. Read the live rates with get_credit_costs; see Credits & Pricing.
Why not the official API
The official TikTok Content Posting API needs one OAuth grant per account with the video.publish scope, limits each user access token to 6 requests per minute, keeps every post private until your app passes TikTok's audit, and returns spam_risk_too_many_posts when a user hits the (unpublished) daily cap — commonly reported at roughly 15–25 posts per account per day. Running 100 posts a day that way means dozens of audited OAuth grants and constant cap handling. TokPortal moves the volume onto many human-operated accounts, three dated posts each per day.
As of August 2026 the first-party routes look like this. TikTok's Content Posting API (Direct Post) requires each account owner to authorize your app with the video.publish scope, limits every user access token to 6 requests per minute, keeps all posts from unaudited apps in private viewing mode until TikTok audits the app, and enforces an unpublished daily post cap per user (spam_risk_too_many_posts) that integrators commonly report at roughly 15–25 posts per account per day. Meta's Instagram Content Publishing API allows 100 API-published posts per professional account in a 24-hour moving window and only for accounts you own and connect via OAuth. Neither creates accounts, warms them, or reports third-party bans. TokPortal is human-operated infrastructure: accounts created and run by managers in the target country, one X-API-Key for all of them, dated slots (max 3 per day per bundle) instead of per-account tokens.
Sources: TikTok Content Posting API – Direct Post, TikTok Content Posting API – Get started, Instagram Platform – Content Publishing.
FAQ
Why exactly 3 videos per day per bundle?
It is the platform-safe cadence TokPortal enforces since 2026-08-16 to keep accounts healthy; the cap counts every non-cancelled slot with a date on that day. Scale horizontally with more accounts, not more posts per account.
Can the agent set the posting hour?
No — target_publish_date is a day. The manager posts within that day in local time; if you need a specific hour, say so in editing_instructions and it is best-effort.
What happens if a manager misses a day?
The slot stays configured/published and is carried over; you can unschedule_bundle_video and reconfigure the date, or request_bundle_video_corrections. Late posts never silently disappear.
Is there a request rate limit on my side?
Yes, 120 requests/minute per API key (X-RateLimit-* headers, 429 + Retry-After). Batch calls (500 items) and CSV import keep you far below it even at 100 posts/day.
Related
Also works with
- Post 100 TikTok videos a day with Zapier
- Post 100 TikTok videos a day with Pipedream
- Post 100 TikTok videos a day with Dify
- Post 100 TikTok videos a day with Flowise
- Post 100 TikTok videos a day with Langflow
- Post 100 TikTok videos a day with CrewAI
All 25 agents for "Post 100 TikTok videos a day"
Other jobs with Microsoft Copilot Studio
- Create TikTok accounts with Microsoft Copilot Studio
- Run US TikTok accounts from abroad with Microsoft Copilot Studio
- Warm TikTok & Instagram accounts with Microsoft Copilot Studio
- Run a faceless TikTok channel with Microsoft Copilot Studio
- Seed UGC across many accounts with Microsoft Copilot Studio
- Seed a music sound on TikTok with Microsoft Copilot Studio
- Launch an app with persona accounts with Microsoft Copilot Studio
- Run multi-client agency operations with Microsoft Copilot Studio
- Get ban alerts via webhooks with Microsoft Copilot Studio
- Pull analytics across all accounts with Microsoft Copilot Studio
- Create Instagram accounts with Microsoft Copilot Studio