TikTok Creator API avatar

TikTok Creator API

Pricing

from $4.90 / 1,000 videos

Go to Apify Store
TikTok Creator API

TikTok Creator API

TikTok creator API that collects Videos or Reposts from one public profile into normalized 61-field rows, with optional comments and no TikTok OAuth.

Pricing

from $4.90 / 1,000 videos

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

3

Bookmarked

18

Total users

0

Monthly active users

10 days ago

Last modified

Share

TikTok Creator API is a tiktok creator api that collects public Videos or Reposts from one creator profile and returns normalized 61-field post rows. Use it for repeatable creator-content research without supplying TikTok OAuth credentials; source privacy, availability, and regional behavior still apply.

Apify Users Apify Runs $0.00200 / video Videos + Reposts API + MCP ready

  • Two profile tabs: choose Videos or Reposts with a two-value enum.
  • 61 documented fields: every Dataset row has one stable top-level shape, including the Duet and Stitch settings, TikTok's AI-content label, and any on-screen sticker text.
  • Bounded discussion sample: set max_comments to 0 to skip comments or request comments and replies per post.
  • Source-linked output: each row includes the TikTok post URL, timestamps, engagement, media, music, and creator context.

A smallest useful run requests one video with max_comments: 0; its FREE-tier ceiling is $0.01200 including the $0.01000 Actor Start event.

Why Choose TikTok Creator API

Creator-tab coverage turns one public username or profile URL into post rows from either Videos or Reposts. Decision-ready engagement keeps plays, likes, comments, shares, and collections beside the source URL, with the creator's follower and like totals read at the moment each post was fetched. Media and music context includes covers, dimensions, codec, audio, hashtags, mentions with rename-proof account ids, tagged places, on-screen sticker text, TikTok's own search terms, and music metadata when TikTok exposes them. Explicit missing values remain null or empty instead of being replaced with invented zeros. Optional comments let a workflow choose post-only collection or a bounded discussion sample.

Quick Start Guide

1. Configure

Open the input form and keep the working @openai Videos example, or provide another public creator profile. Set max_videos to the requested row ceiling and max_comments to the per-post comment-and-reply ceiling.

2. Run

Start the Actor and watch the status message. A private profile, unavailable Reposts tab, removed post, consent response, or temporary source block can legitimately produce fewer rows than requested.

3. Collect

Read the default Dataset as JSON, JSONL, CSV, Excel, XML, RSS, or through the Dataset API. Use id for post identity, url for citation, and processed_at for observation time.

Input Parameters

Sort order. sort_by accepts Latest, Popular or Oldest. TikTok's own API has no sort parameter — measured 2026-08-16, every candidate (sort_type, sortType, sort, orderBy, order_type) returns an identical newest-first page — so Popular and Oldest are produced by reading the whole profile and then ordering it. There is no page cap: two profiles were paginated to the source's own end, 342 of a claimed 343 videos in 19 seconds and 1,314 of a claimed 1,348 in 74 seconds, at roughly 15 videos per request. Latest stops as soon as max_videos is met and stays cheap.

The Actor accepts five required inputs in this exact schema order.

ParameterTypeRequiredDescriptionExample
tiktok_urlstringYesTikTok username or profile URL; a trailing post path is reduced to its creator usernamehttps://www.tiktok.com/@openai
content_typestring enumYesProfile tab: Videos or RepostsVideos
sort_bystring enumYesLatest, Popular or OldestLatest
max_videosinteger, min 1YesRequested row ceiling; fewer may exist, and non-paying users are limited by runtime to 101
max_commentsinteger, 0-10,000YesTotal comments plus replies nested in each row; 0 skips the comment endpoints0
{
"tiktok_url": "https://www.tiktok.com/@openai",
"content_type": "Videos",
"max_videos": 1,
"max_comments": 0
}

The result ceilings are requests, not guarantees. TikTok controls profile privacy, tab availability, and which posts remain public.

Output Data Schema

Each written item is one resolved TikTok post with exactly 61 top-level fields, every one of them a fact about the post.

GroupFields
Identity and timeid, url, created_at, description, language, text_translatable, processed_at, processor
State and engagementquality_score, comment_enabled, is_advertisement, play_count, like_count, comment_count, share_count, collect_count, duet_enabled, stitch_enabled, is_aigc, category, recommend_type, diversification_id
Mediasize, format, bitrate, codec, cover, duration, height, width, quality, original_audio, caption_reason, image_post
Caption entities and placehashtags, mentions, anchors, text_extra, location_created, poi, stickers
Musicmusic_id, music_url, music_author, music_cover, music_title, music_duration, music_original, music_copyrighted, music_commerce, music_unlimited
Creator countsauthor_followers, author_following, author_likes, author_likes_given, author_videos
Search and discussionseo_title, seo_description, seo_keywords, suggest_words, comments

The creator's own identity — id, handle, nickname, avatar, bio, verification, account settings — is not repeated on every row. One run scrapes one creator, so those values would be identical on all of them and say nothing the input did not; the handle is in url. The five counts above do ship per row, because they are read at the moment each video is fetched and move during a long run.

Abbreviated example; a real row contains all 61 fields and arrays are shortened here:

{
"id": "7672796487218121997",
"url": "https://www.tiktok.com/@openai/photo/7672796487218121997",
"created_at": "2026-08-11T15:22:07+00:00",
"description": "Example public post caption #example",
"play_count": 13100,
"like_count": 491,
"diversification_id": 10041,
"hashtags": ["example"],
"text_extra": [{"type": 1, "hashtag": "example", "username": null, "sec_uid": null, "start": 29, "end": 37, "is_commerce": false}],
"poi": null,
"stickers": [{"type": 9, "texts": ["Peak girl grip"]}],
"suggest_words": ["moose running on water"],
"author_followers": 1210000,
"comments": [],
"processor": "https://apify.com/agentx/tiktok-creator-api",
"processed_at": "2026-08-13T06:04:18+00:00"
}

Unavailable source fields remain null or empty. Media URLs may be source URLs when a cloud KVS upload is unavailable.

Integration Examples

Use Actor ID p5WWQg8bwnUMT9SJw for HTTP, SDK, automation, and MCP calls; agentx/tiktok-creator-api is the equivalent name form.

Actor ID

p5WWQg8bwnUMT9SJw

HTTP

curl -X POST "https://api.apify.com/v2/acts/p5WWQg8bwnUMT9SJw/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tiktok_url":"https://www.tiktok.com/@openai","content_type":"Videos","max_videos":1,"max_comments":0}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("p5WWQg8bwnUMT9SJw").call(run_input={
"tiktok_url": "https://www.tiktok.com/@openai",
"content_type": "Videos",
"max_videos": 1,
"max_comments": 0,
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('p5WWQg8bwnUMT9SJw').call({
tiktok_url: 'https://www.tiktok.com/@openai', content_type: 'Videos', max_videos: 1, max_comments: 0
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

For Make.com or n8n, use the Apify Run Actor action with ID p5WWQg8bwnUMT9SJw, paste the same four-field JSON, wait for success, then read the default Dataset. For MCP, connect the official Apify MCP integration and expose agentx/tiktok-creator-api as the tool.

Pricing

The FREE-tier video price is $0.00200, the Actor Start event is $0.01000 per run, and a one-video run without returned comments costs at most $0.01200.

TierVideo rowVideo row with non-empty commentsActor Start
FREE$0.00200+$0.00080$0.01000
BRONZE$0.00180+$0.00072$0.01000
SILVER$0.00160+$0.00064$0.01000
GOLD$0.00150+$0.00060$0.01000
PLATINUM$0.00150+$0.00060$0.01000
DIAMOND$0.00150+$0.00060$0.01000

The comment event is charged once per written video row only when its comments array is non-empty, regardless of array length. At 256 MB the platform's minimum Actor Start count is one. A five-video FREE run with no returned comments is $0.02000: $0.01000 + 5 × $0.00200. Prices can change; confirm the live pricing page before production use.

Use Cases

  • Creator content review: sort play_count, like_count, share_count, and collect_count while retaining url for source review.
  • Repost research: select Reposts and compare the returned authors, captions, hashtags, and music context.
  • Editorial discovery: use description, hashtags, mentions, anchors, and seo_keywords to organize public posts.
  • Media inventory: distinguish video rows from image_post rows and retain covers, dimensions, duration, codec, and music URLs.
  • Scheduled snapshots: save processed_at with engagement counts to build your own longitudinal table.

Alternatives

Manual browsing is suitable for checking a few posts once, but it does not provide a repeatable 61-field Dataset or API delivery. TikTok's official Display API is the right choice when a creator authorizes your application and you need TikTok-supported access to that user's profile and recent videos. This Actor instead reads public profile surfaces without creator OAuth. Choose another path if you need private profiles, follower lists, inbox data, publishing, authentication on a user's behalf, guaranteed historical completeness, or legal advice.

Limits and Troubleshooting

  • No rows → the profile may be private, unavailable, removed, regionally gated, or temporarily blocked. Verify the public profile URL and retry later with max_videos: 1.
  • Fewer rows than requested → the selected tab may contain fewer public posts or some detail pages may fail. Treat max_videos as a ceiling.
  • Empty Reposts → the account may not expose a Reposts tab. Test Videos to isolate tab availability.
  • Empty comments → comments may be disabled, unavailable, or not returned during the run. The row is still useful and no comment event is charged when the array is empty.
  • Null fields → TikTok did not expose those values for the post. Do not reinterpret null as zero or false.
  • Source media URL retained → local download or cloud storage was unavailable, so the original non-empty URL was preserved.

For a reproducible defect, open an Actor issue with the run ID, redacted profile, exact four-field input, terminal status, returned row count, and affected field names. Never include tokens or private credentials.

Trust and Reliability

Runs use Apify's Actor infrastructure, default Dataset, Key-Value Store support, API, schedules, and integrations. Billing follows registered events: Actor Start, each successfully written video row, and each written row with a non-empty comments array. The 61-field schema is explicit, and source-absent values remain empty rather than being fabricated. Each row keeps both the source url and the observation timestamp processed_at.

Public data only. Configure public creator profiles and collect only the data TikTok exposes on public pages.

Purpose and retention. Use the smallest data scope needed, review comments for personal data, and apply appropriate retention, access, and deletion controls.

Independent service. This Actor is not affiliated with TikTok. You are responsible for TikTok's terms, applicable privacy and intellectual-property law, and the legality of your use case.

Frequently Asked Questions

Can I fetch tiktok creator videos without oauth?

Yes. The Actor accepts one public username or profile URL and does not require a TikTok OAuth token, but it cannot access private or creator-authorized data.

Can I collect tiktok creator reposts by username?

Yes. Set content_type to Reposts; the profile must expose that tab and source availability can reduce the result count.

Is there a free TikTok creator API?

Apify accounts include platform credits that may cover small tests; this Actor still uses the registered Actor Start, video, and optional comment events.

Can I schedule runs to monitor TikTok creators over time?

Yes. Use Apify Schedules and store processed_at with engagement fields to build your own snapshots; the Actor does not maintain history itself.

Does max_comments charge once per comment?

No. A Comment event is charged once per written video row when the returned comments array is non-empty, not once per nested comment.

Why are some fields null?

Null means TikTok did not expose the value for that post during the run. It is not converted to zero, false, or an inferred value.

Can the Actor return photo posts?

Yes. Photo posts carry source image URLs in image_post, while video-oriented fields may be null.

The AgentX catalog contains purpose-specific Actors; these three are closest to TikTok creator-content workflows, followed by the complete catalog by category.

Closest to this Actor:

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask about creator tabs, Dataset fields, comments, or billing in the AgentX community on Telegram; for a reproducible bug, open an Actor issue with the run ID and exact input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 12, 2026