Automate TikTok Posting with Make & TokPortal API
Use Make (formerly Integromat) to connect TokPortal to your existing tools — Google Sheets, Airtable, Dropbox, webhooks — and automate TikTok account creation and video posting. No code required. Real devices, real geo-targeting, 16+ countries.
What you'll build
A Make scenario that:
- Triggers on a new row (e.g. Google Sheets), webhook, or schedule
- Creates a TokPortal bundle (account + video slots) via HTTP
- Configures video metadata and publish dates
- Publishes the bundle so TokPortal handles account setup and posting on real devices
Time to set up: ~20 minutes.
Prerequisites
- A TokPortal account with credits
- An API key — see Authentication
- A Make account (make.com)
Step 1: Create the scenario and trigger
Create a new scenario in Make. Add a trigger module:
- Google Sheets → Watch Rows (new row added)
- Webhook → Custom webhook (for external systems)
- Schedule → Every day/week at a set time
Map your data: e.g. video_url, description, country, publish_date from the sheet or webhook payload.
Step 2: Add HTTP module — Create bundle
Add an HTTP module (Make → Tools → HTTP). Configure:
| Setting | Value |
|---|---|
| URL | https://api.tokportal.com/v1/bundles |
| Method | POST |
| Headers | See below |
| Body type | Raw |
| Request content | JSON |
Headers:
| Name | Value |
|---|---|
Authorization | Bearer {{your_api_key}} |
Content-Type | application/json |
Store your API key in Make's Data Store or a Variable — never hardcode it in the scenario.
Request body (JSON):
{
"bundle_type": "account_and_videos",
"platform": "tiktok",
"country": "{{1.country}}",
"videos_quantity": 1,
"title": "Make automation {{1.row_id}}"
}
Use Make's mapping panel to replace {{1.country}} with your trigger output. The response returns data.bundle_id — you'll need it for the next steps.
Step 3: Configure the video
Add another HTTP module. Configure:
| Setting | Value |
|---|---|
| URL | https://api.tokportal.com/v1/bundles/{{2.data.bundle_id}}/videos/1 |
| Method | PUT |
| Headers | Authorization: Bearer {{your_api_key}}, Content-Type: application/json |
| Body type | Raw (JSON) |
Request body:
{
"video_type": "video",
"description": "{{1.description}}",
"target_publish_date": "{{1.publish_date}}",
"video_url": "{{1.video_url}}"
}
TokPortal accepts any public URL for video_url — Google Drive, Dropbox, direct links. The API downloads and stores the file automatically. See Configure Videos for full options (hashtags, sounds, carousels).
Step 4: Publish the bundle
Add a final HTTP module:
| Setting | Value |
|---|---|
| URL | https://api.tokportal.com/v1/bundles/{{2.data.bundle_id}}/publish |
| Method | POST |
| Headers | Authorization: Bearer {{your_api_key}} |
No body required. Once published, TokPortal assigns an account manager in the target country to create the account on a real device and post your video on the scheduled date.
Scheduling considerations
- Minimum lead time: New accounts need at least 3 days before
target_publish_date. Existing accounts: 1 day. - Make execution limits: Free plan runs scenarios on a schedule (e.g. every 15 min). Paid plans support instant triggers and higher throughput.
- Rate limits: TokPortal has rate limits — see Rate Limits. For bulk campaigns, space out bundle creation or use the bulk endpoint.
Monitoring and error handling
Add an Error handler route to your scenario to catch HTTP errors (401, 402, 400). Log failed runs to a sheet or send a Slack notification.
Check bundle status via GET https://api.tokportal.com/v1/bundles/{{bundle_id}} — response includes status, videos, and account info once delivered.
Common patterns
| Pattern | How |
|---|---|
| Multi-country from one sheet | Use an Iterator after the trigger, create one bundle per row with country from the row |
| Recurring content drops | Schedule trigger (e.g. Mondays 9am) → read from a "queue" sheet → create bundle → remove/mark row |
| Webhook from CMS | Webhook trigger → parse JSON → create bundle with video_url from CMS |
| Airtable → TikTok | Airtable "Watch records" → filter by status "Ready" → HTTP modules as above |
What's next
- Authentication — API keys and security
- Create Bundle — Full endpoint reference
- Configure Videos — Hashtags, sounds, carousels, batch config
Ready to scale? Open the Developer Portal to manage API keys and credits, or schedule a call with our team to discuss your use case.