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 deep-dive — pass any @username or profile URL and pull up to 10,000 of their original videos or reposts (newest first), each with view, like, comment, share, and bookmark counts, audio metadata, hashtags, the full SEO description, and optional comment threads up to 10,000 per video.

Pricing

from $4.90 / 1,000 videos

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

2

Bookmarked

11

Total users

1

Monthly active users

4 days ago

Last modified

Share

TikTok Creator API collects source-available posts from one TikTok creator's Videos or Reposts tab. Each resolved post becomes a fixed 83-field Dataset row with engagement snapshots, media and music metadata, creator context, optional comments, and stored image copies. It is not a direct single-video lookup or a complete account archive.

  • Request one username/profile and one content tab per run.
  • Receive up to max_videos rows; source conditions can return fewer or none.
  • Bound comments and replies with one total max_comments ceiling per row.
  • Treat counts, flags, labels, URLs, comments, and availability as changing source observations.

Run one profile collection or connect through the Apify API and MCP integration. Review sensitive comments and rights-related fields before reuse.

Why Choose This API

This Actor turns a creator tab into consistent post-level records. Instead of maintaining a visual-page parser, a workflow receives the same 83 top-level keys for every written row. The envelope includes observation time, post identity, engagement counters, media properties, audio details, creator profile values, source labels, SEO fields, and a bounded comments array.

The contract preserves important limits. max_videos is a request ceiling rather than a guaranteed result count. The Videos and Reposts routes can have different availability, private profiles can return nothing, and individual post enrichment can fail without creating a row. Non-paying users are limited by the runtime to 10 videos and 10 comments even though the public schema permits requests up to 10,000.

The output is suitable for reviewable snapshots, not certainty. quality_score, category, and recommendation labels originate from source fields or local label mappings. Verification, official, copyright, and commerce flags do not independently prove identity, ownership, licensing, ranking, or commercial-use permission.

Quick Start Guide

Enter a username such as @tiktok or a profile URL, select Videos or Reposts, and set both ceilings. All four inputs are required.

{
"tiktok_url": "https://www.tiktok.com/@tiktok",
"content_type": "Videos",
"max_videos": 1,
"max_comments": 1
}

Start the run and wait for a terminal status. A successful one-item Dataset means one post was resolved and written. A successful zero-item Dataset can mean the profile is private, the requested tab is unavailable, the source blocked collection, the profile returned no usable entries, or every candidate failed post-level processing. Do not infer that the creator has no content from a zero-row run alone.

Use a creator profile rather than a video-specific URL. The input is normalized to its username; a trailing /video/{id} or /photo/{id} path is reduced to the creator profile, and content_type still controls the requested tab. Use a dedicated video lookup or downloader when one exact post is the intended target.

For production, retain the run ID, normalized creator, selected tab, requested ceilings, Dataset ID, processed_at, and actual row/comment counts. Apply bounded retries to transient source failures and avoid repeatedly polling the same creator without a justified cadence.

Begin with one video and zero comments when onboarding a profile. That isolates tab discovery and post enrichment from the additional comment route, keeps the first result bounded, and reveals whether stored images are available. Then raise limits gradually while watching elapsed time, row count, comment-array length, KVS keys, and charged events. If a larger request returns fewer rows, compare it with the smaller successful run before assuming pagination or account content has disappeared. Keep Videos and Reposts as distinct observations because their routes and availability are not equivalent.

Input Parameters

FieldTypeRequiredAccepted valuesRuntime meaning
tiktok_urlstringYesUsername, @username, or TikTok profile URLReduced to one creator username; not a direct post lookup
content_typestringYesVideos, RepostsProfile tab to request; availability differs by account and route
max_videosintegerYes1–10,000 in schemaMaximum attempted rows; non-paying runtime cap is 10
max_commentsintegerYes0–10,000 in schemaTotal comments plus replies retained per row; non-paying cap is 10

The order follows what the selected source route returns and should not be treated as a permanent chronological guarantee. Pinned posts, changing source ordering, deleted posts, pagination limits, or temporary responses can alter which rows appear within a ceiling.

max_comments=0 skips comment collection. A positive value bounds the combined, deduplicated top-level comments and replies for each video row. It does not guarantee that many records and does not represent the post's complete discussion. comment_count is the source's post-level counter and can be much larger than comments.length.

Output Data Schema

Every written row contains exactly 83 top-level keys. They fall into these groups:

GroupRepresentative fieldsBoundary
Provenance and identityprocessor, processed_at, id, url, created_time, created_atObservation and resolved post references
Post text and flagsdescription, language, ai_topic, under_review, permission and content flagsSource-derived values; not independent verification
Engagementplay_count, like_count, comment_count, share_count, collect_count, repost_countDynamic snapshots at collection time
Mediasize, format, bitrate, codec, cover, duration, dimensions, image_postMay be empty, transient, or replaced by stored copies
Classificationquality_score, category, recommend_type, caption_reasonRaw or mapped labels, not ranking guarantees
MusicID, playback URL, author, cover, title, duration, source flagsURLs can expire; flags do not grant reuse rights
CreatorID, username, nickname, avatar, bio, settings, flags, countersCreator snapshot attached to each post row
Discoveryhashtags, mentions, anchors, SEO title/description/tags/keywordsEmpty arrays/strings are valid
CommentscommentsBounded user-generated sample with 12 possible keys per object
{
"processor": "https://apify.com/agentx/tiktok-creator-api?fpr=aiagentapi",
"processed_at": "2026-07-24T01:47:38+00:00",
"id": "7665823355194363167",
"url": "https://www.tiktok.com/@tiktok/video/7665823355194363167",
"description": "Source post caption",
"play_count": 313200,
"like_count": 2205,
"comment_count": 185,
"author_name": "tiktok",
"quality_score": "71.77",
"recommend_type": "gaming",
"comments": [
{
"id": "example-comment-id",
"father_id": "0",
"name": "viewer",
"text": "Source comment text",
"language": "en",
"created_at": "2026-07-23T21:40:37+00:00",
"like_count": 13,
"reply_count": 1,
"score": "0",
"is_pinned": false,
"is_author_liked": false,
"status": "visible"
}
]
}

The fixed top-level shape does not mean every field is populated. Empty strings, zero-like source defaults, empty arrays, null stored-image URLs, and unavailable SEO values are valid. Consumers should retain source values and document any transformation that converts them to null or another semantic state.

Several similarly named values require care. comment_count is the post's displayed total while comments is the fetched sample. author_videos is a creator counter repeated on each row, not the number returned by this run. quality_score remains text because the source representation is not a documented public scoring contract. category and recommend_type are labels derived from numeric source values and can fall back to other or unknown. Stored image URLs point to run storage when downloads succeed; their presence does not transfer ownership or make the original source permanent.

Integration Examples

Use public name agentx/tiktok-creator-api or Actor ID p5WWQg8bwnUMT9SJw. Retrieve the current input schema, start a run, and fetch the default Dataset after completion.

{
"actor": "agentx/tiktok-creator-api",
"input": {
"tiktok_url": "@tiktok",
"content_type": "Videos",
"max_videos": 1,
"max_comments": 0
},
"runOptions": {
"memoryMbytes": 256,
"timeoutSecs": 180,
"maxTotalChargeUsd": 0.1
}
}

For API clients, keep tokens in a secret manager and paginate Dataset reads for larger runs. For MCP, inspect both terminal state and storage counts before retrieving rows. A KVS can contain INPUT and successfully downloaded {post_id}_cover.jpg, {post_id}_music.jpg, {post_id}_author.jpg, or photo-post files. These files are best-effort operational artifacts, not guaranteed deliverables for every row.

Downstream systems should key posts by TikTok post ID plus source URL, not caption text. Store the creator username and observation time with changing counters. Keep comments in a controlled surface because they can contain personal, offensive, disputed, or otherwise sensitive user-generated text.

Pricing & Cost Calculator

The local pay-per-event configuration includes Actor Usage at $0.00001, Actor Start at $0.02, a Video event for every Dataset row, and a Comment event once for each written row whose returned comments array is non-empty.

TierVideoComment
Free$0.00550$0.00150
Bronze$0.00532$0.00145
Silver$0.00513$0.00140
Gold$0.00495$0.00135
Platinum$0.00495$0.00135
Diamond$0.00495$0.00135

At Free-tier event prices, one written row with at least one returned comment has $0.02700 in Start, Video, and Comment events before usage. One row with max_comments=0 has $0.02550 before usage. Requesting ten comments in one row does not create ten Comment events; a non-empty array creates one Comment event for that video row. A run can still incur Start and usage when no row is written.

Always check the live pricing shown by Apify. Repository metadata and the public pricing surface can synchronize at different times, and resource usage varies with source latency, requested limits, and media downloads.

Use Cases & Applications

Social analysts can capture post-level engagement snapshots for a known creator. Editorial teams can review captions, hashtags, mentions, and source-visible audio context. Data engineers can normalize Videos and Reposts into a repeatable 83-column envelope. Researchers can compare repeated observations while keeping collection timestamps. AI agents can request a small, bounded creator sample and ground a response in source URLs.

Monitoring workflows should compare like with like: the same creator, tab, ceilings, and interpretation rules. A changing play count can be meaningful, while a missing row can reflect blocking rather than deletion. Analysts should retain both observations and mark availability separately from metric movement. Editorial research can use captions and comments to locate themes for human review, but sentiment, language, category, or creator intent should not be inferred from one sampled post. Media teams can use KVS images as temporary workflow artifacts while preserving source URLs and applying independent rights checks.

This Actor is not a complete historical archive, follower roster, contact finder, trend ranking, music-license service, or identity-verification product. It does not prove that a source flag is legally or factually correct. It should not be used alone for employment, credit, eligibility, safety, moderation, or other consequential decisions about a person.

FAQ

Can I submit one TikTok video URL?

The validator extracts its username and runs a creator-profile tab request. Use another Actor when the exact post alone is required.

Are Videos always original posts and newest first?

No permanent guarantee is made. The Actor requests the Videos tab and follows source-returned entries; pinned items, page changes, and route behavior can affect order and composition.

Why did I receive fewer rows or no rows?

The ceiling is not a promise. Private accounts, unavailable Reposts, blocks, empty responses, deleted posts, pagination behavior, and per-post failures can reduce output.

Does max_comments=10 guarantee ten comments?

No. It is a combined ceiling for comments and replies within each row. The source may return fewer.

No. They are source fields, not legal advice, ownership proof, or a license. Verify rights independently.

Trust & Certifications

The Actor does not claim official TikTok partnership, complete coverage, external security certification, identity verification, recommendation-system insight, or licensing authority. Trust comes from bounded required inputs, explicit source provenance, a fixed top-level schema, actual run/storage identifiers, and disclosure of null, zero-row, sampling, and dynamic-data behavior.

A live baseline returned one 83-key row, one comment object with 12 keys, and three stored image files. That verifies one execution path only. It does not guarantee future availability, identical counters, non-empty comments, or stored media for every creator.

Use public data for a lawful purpose and respect TikTok terms, applicable privacy and intellectual-property rules, contractual restrictions, and organizational retention policies. Avoid aggressive collection and do not attempt to access private content or bypass access controls.

Minimize stored comments and profile data, restrict access, establish retention periods, and support deletion or review requests where required. Do not republish source media, music, avatars, or comments merely because a URL or KVS copy is available. Obtain appropriate rights and review potentially sensitive material before external use.

Related TikTok and live-media workflows:

Optional transcription and broader video workflows:

Each Actor has a separate input, output, pricing, and source contract. Do not infer matching identities or rights merely from shared usernames or media.

Support & Community

For a reproducible issue, share the run ID, redacted username, selected tab, requested and returned video/comment counts, terminal status, Dataset ID, KVS key count, and affected field names. Do not share Apify tokens or unnecessary personal data.

Contact AgentX API support or the Actor community. Last contract review: July 24, 2026. Reconfirm source availability, schema, and live pricing before production use.