n8n + TikTok

Post to TikTok from n8n

n8n has no official TikTok node. Call ShortSync's API from the HTTP Request node instead: upload a video from a link, then post or schedule it to TikTok with privacy, duet and stitch settings, and send it to YouTube Shorts, Reels and 14 more platforms in the same request.

Get your API key free

n8n HTTP Request node · Free plan · Official TikTok API

Community TikTok nodes or ShortSync?

n8n on its own

  • n8n has no official TikTok node. Community packages exist, but they need your own TikTok developer app.
  • Until TikTok audits your app, TikTok's API only lets it post to private accounts.

n8n with ShortSync

  • Connect TikTok to ShortSync once and post through ShortSync's audited TikTok app.
  • Post videos or photo posts (up to 35 images), now or at a scheduled time.
  • Send the same video to YouTube Shorts, Instagram Reels and 14 more platforms in one request.
  • Get a webhook when the post is live or fails.

Set it up in n8n

Connect TikTok to ShortSync once, then two HTTP requests per post. Publish now, schedule it, or save a draft to check first.

  1. 1

    Create a ShortSync API key

    In ShortSync, connect the account once, then open Settings → API & MCP, click Create API key and pick the workspace. In n8n, add a Header Auth credential with the name Authorization and the value Bearer followed by your key.

  2. 2

    Find your TikTok connection id

    Run an HTTP Request node once with GET on the connections endpoint and copy the id of your TikTok account.

    GET https://api.shortsync.app/v1/connections
  3. 3

    Upload the video

    Add an HTTP Request node: method POST, the uploads URL, Header Auth credential. Send source_url as a public direct-download link, for example {{ $json.video_url }} from an earlier node. Add an Idempotency-Key header so a retry doesn't import the file twice. If the file is already binary data in n8n, call POST /uploads with an empty body and PUT the file to the returned presigned_url instead.

    POST https://api.shortsync.app/v1/uploads
    
    {
      "source_url": "https://example-bucket.s3.amazonaws.com/clips/recipe.mp4"
    }
  4. 4

    Create the TikTok post

    Add a second HTTP Request node with POST on the posts URL. Map the upload_id, write the caption (up to 2,200 characters, hashtags inline) and set TikTok's options in the target. Use publish_mode immediate, scheduled with scheduled_for, or draft.

    POST https://api.shortsync.app/v1/posts
    
    {
      "upload_id": "{{ $json.upload_id }}",
      "publish_mode": "scheduled",
      "scheduled_for": "2026-11-10T17:00:00Z",
      "caption": "5-minute miso soup #recipe #easyrecipes",
      "targets": [
        {
          "connection_id": "<TikTok connection id>",
          "platform_options": {
            "tiktok": {
              "privacy_level": "PUBLIC_TO_EVERYONE",
              "disable_duet": false,
              "is_aigc": false
            }
          }
        }
      ]
    }
  5. 5

    React when it's live

    Start a second workflow with a Webhook node (POST), add its Production URL as a webhook in Settings → API & MCP with post.published and post.failed, and click Send test event. Failed posts carry data.post.error with TikTok's reason, such as the account's daily posting cap.

TikTok settings you can send

Put these in platform_options.tiktok on the TikTok target.

FieldWhat it does
privacy_levelPUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR or SELF_ONLY; defaults to the first level your account allows.
post_modedirect (publish) or draft (send to the TikTok inbox to finish in the app).
disable_comment, disable_duet, disable_stitchTurn comments, duets or stitches off.
is_aigcLabel the post as AI-generated.
commercial_content_disclosure, is_branded_content, is_your_brandTikTok's branded content disclosure.
auto_add_musicPhoto posts only: TikTok picks background music.

TikTok workflows to build

Post new clips from a Google Drive folder

Google Drive trigger on a new file in a folder, then POST /uploads with an empty body, PUT the file to presigned_url, and post it to TikTok and YouTube Shorts together.

Schedule TikToks from a Google Sheet

Google Sheets trigger on a new row with a video link, caption and time, then the upload and post requests with publish_mode scheduled.

Write captions and hashtags with AI

Send the topic to an OpenAI or Anthropic node, use its answer as the caption, and create a draft to check in ShortSync first.

Alert on failed posts

Webhook node on post.failed, then a Slack, Discord or email node with data.post.error.message.

Good to know

  • TikTok limits how often one account can post through the API. ShortSync starts at most 5 TikTok uploads a minute per account and retries automatically when TikTok asks to slow down.
  • TikTok doesn't support a first comment through its API.
  • Photo posts take 2 to 35 images; group uploads with POST /uploads/carousel-group first.
  • Works the same on n8n Cloud and self-hosted n8n. Webhooks need n8n reachable over https.

Frequently asked questions

Not an official one. There are community TikTok nodes, but they need your own TikTok developer app, and until TikTok audits it, the app can only post to private accounts. With ShortSync you call its API from n8n's HTTP Request node and post through ShortSync's audited TikTok app.
Yes. Upload the images, group them with POST /uploads/carousel-group (2 to 35 images for TikTok), then post the group like a video.
Yes. Send publish_mode scheduled with scheduled_for as an ISO 8601 time, and ShortSync posts it then.
TikTok caps how many posts one account can publish through the API in 24 hours. The post.failed webhook includes TikTok's reason; ShortSync waits for the cooldown and retries.
No. The API and webhooks are on every plan, including Free with 5 uploads a month.

Post to TikTok from n8n

Free plan, API key in a minute, official platform APIs.

Official APIs and approved publishing partners

Prefer a walkthrough? Book a demo with Hilma