Skip to content

TikTok

Your agents send each clip to your TikTok with its caption, post it publicly as you, and read which clips earn views worth promoting.

Connect
Sign in once, 4 grants
First run
See what is trending in your category, about 0.1¢
Sites
TikTok
Post.schedule
You, to your agent

Send my late-rent clip to my TikTok with its caption for Thursday, and show me how it will post.

curl -X POST "https://api.sb/leaseline.app/posts/schedule?mode=try" \
  -H "Authorization: Bearer $SB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"handle":"tiktok:leaseline","format":"shortVideo","file":"files/clip-late-rent","body":"3 texts that end late rent #propertymanagement #landlord","at":"2026-10-29T23:00:00Z"}'
npx startup-builder do Post.schedule --try --data '{"handle":"tiktok:leaseline","format":"shortVideo","file":"files/clip-late-rent","body":"3 texts that end late rent #propertymanagement #landlord","at":"2026-10-29T23:00:00Z"}'
{
  "name": "do",
  "arguments": {
    "mode": "try",
    "code": "return await $.Post.schedule({ handle: 'tiktok:leaseline', format: 'shortVideo', file: 'files/clip-late-rent', body: '3 texts that end late rent #propertymanagement #landlord', at: '2026-10-29T23:00:00Z' })"
  }
}
import { $ } from 'startup-builder'

const result = await $.try.Post.schedule({ handle: 'tiktok:leaseline', format: 'shortVideo', file: 'files/clip-late-rent', body: '3 texts that end late rent #propertymanagement #landlord', at: '2026-10-29T23:00:00Z' })
Response
{
  "$type": "Post",
  "mode": "try",
  "stored": false,
  "venue": "tiktok",
  "status": "scheduled",
  "at": "2026-10-29T23:00:00Z",
  "captionLength": 56,
  "steps": [
    "sent to your TikTok inbox by API",
    "posted publicly by the browser agent, signed in as you"
  ],
  "inboxWaiting": 1
}
Try mode reads, stores nothing and spends nothingAPI referenceIts Nouns

Connect once

  1. Call Integration.connect with system: 'social' and venue: 'tiktok', then open the connectUrl it returns and sign in as the TikTok account you post from.
  2. Sign in once more in the browser window the platform opens; that saved session presses Post on the clips your agents send.
  3. Call Handle.connect to bind the account as your account.
GrantWhat it unlocksScope
Your profile and its numbersYour handle, follower count and likes, for the readoutuser.info.basic user.info.stats
Your videosEach clip’s views, likes, comments and sharesvideo.list
UploadClips sent to your TikTok inbox with their caption, ready to postvideo.upload
Your saved sessionThe Post button on each clip, pressed as youbrowser session: tiktok.com
ToDo this
PauseIntegration.pause stops every call through TikTok at once and keeps the token; Integration.resume picks up from the same cursor.
ReconnectIntegration.reconnect returns a fresh connectUrl that lasts one hour, and keeps the Integration's id and cursor, so nothing imports twice.
DisconnectIntegration.revoke revokes the token with TikTok; every record it brought in stays in your records.

What your agents do

AskVerbRuns throughPrice
Send this clip to my TikTok with the caption, ready for Thursday.Post.scheduleYour accountFree
Post it publicly on Thursday at 18:00, signed in as me.Post.publishA browser agentAbout 1.6¢ a step
Which of my clips beat my median views this month?Metric.queryYour accountFree

Calls on your own account are free.

Reading this site’s public data needs no account: Keyword.find, Keyword.search are Data calls (the three ways a call runs).

What it holds

NounThe account’s objectWhenWhich side leads
PostvideoYour agent sends a clip, then posts itYour records
MessagecommentSomeone comments on a clipThe account

Events and webhooks

DirectionEvent
EmitsPost.scheduled, Post.published, Message.created
Hears post.publish.publicly_availableBecomes Post.published

Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed (Events and webhooks).

Limits

WhatLimitCall
Public postsEach clip reaches your TikTok inbox by API, and the browser agent presses Post as you, so it goes public on your accountPost.publish
Clips waiting in your inboxAt most 5 in any 24 hours; a sixth waits with quota-reached until one is postedPost.schedule
Upload calls6 a minute for your account; the platform queues the restPost.schedule
Posts a dayTikTok caps posts a day per creator; past it a post refuses with quota-reached and runs the next dayPost.publish

Start here

MoveThe rule
StructureOne account posting 3 clips a week in one repeatable format: the problem in the first 2 seconds, the fix on screen, the result last.
BudgetNo spend until a clip earns 3 times your median views; that clip becomes a Spark Ad in TikTok Ads.
CreativeVertical, captions burned in, one problem per clip in the words property managers use; hashtags from this week’s trending list, not from memory.
Kill ruleIf 9 clips in one format stay under your median, change the opening, not the topic; drop the format after 2 rewrites.
BenchmarkSource
At most 5 clips waiting in your inbox in any 24 hoursTikTok Content Posting API
Judge a format at 9 clipsOur planning number
Promote a clip only at 3 times your median viewsOur planning number

Field map

Our fieldTikTok’s fieldNotesCalls
Post.bodypost_info.titleThe caption: 2,200 characters, hashtags includedPost.schedule, Post.publish
Post.mediasource_info.sourceFILE_UPLOAD or PULL_FROM_URLPost.schedule
Post.statusprivacy_levelOne of the options your account reports; PUBLIC_TO_EVERYONE when the browser agent postsPost.publish

What try does here

Checks the clip and caption against what your account reports it allows, and returns the post as it will show; nothing reaches your inbox.

How long a connection lasts

A connection lasts 365 days from your first sign-in, the life of TikTok’s refresh token; the platform renews the 24-hour access token on its own.

The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with needs-reauth.

Formats

SiteFormatSizeLimits
TikTokVideoNone.Caption 2,200 characters, hashtags included; length up to what your account reports
TikTokSpark AdNone.A post already on your account, promoted with its likes and comments kept

Plays and strategies

Used by

No Workflow, agent task or Service acts through it yet: your agents call it directly.

Reference

3 calls, each with its path and price
CallPathPrice
Post.schedulePOST /posts/scheduleFree
Post.publishPOST /posts/publishAbout 1.6¢ a step
Metric.queryPOST /metrics/queryFree

Contents