TikTok Creator API
Pricing
from $4.90 / 1,000 videos
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
Maintained by CommunityActor stats
2
Bookmarked
11
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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_videosrows; source conditions can return fewer or none. - Bound comments and replies with one total
max_commentsceiling 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
| Field | Type | Required | Accepted values | Runtime meaning |
|---|---|---|---|---|
tiktok_url | string | Yes | Username, @username, or TikTok profile URL | Reduced to one creator username; not a direct post lookup |
content_type | string | Yes | Videos, Reposts | Profile tab to request; availability differs by account and route |
max_videos | integer | Yes | 1–10,000 in schema | Maximum attempted rows; non-paying runtime cap is 10 |
max_comments | integer | Yes | 0–10,000 in schema | Total 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:
| Group | Representative fields | Boundary |
|---|---|---|
| Provenance and identity | processor, processed_at, id, url, created_time, created_at | Observation and resolved post references |
| Post text and flags | description, language, ai_topic, under_review, permission and content flags | Source-derived values; not independent verification |
| Engagement | play_count, like_count, comment_count, share_count, collect_count, repost_count | Dynamic snapshots at collection time |
| Media | size, format, bitrate, codec, cover, duration, dimensions, image_post | May be empty, transient, or replaced by stored copies |
| Classification | quality_score, category, recommend_type, caption_reason | Raw or mapped labels, not ranking guarantees |
| Music | ID, playback URL, author, cover, title, duration, source flags | URLs can expire; flags do not grant reuse rights |
| Creator | ID, username, nickname, avatar, bio, settings, flags, counters | Creator snapshot attached to each post row |
| Discovery | hashtags, mentions, anchors, SEO title/description/tags/keywords | Empty arrays/strings are valid |
| Comments | comments | Bounded 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.
| Tier | Video | Comment |
|---|---|---|
| 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.
Do music commerce or copyright flags grant permission?
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.
Legal & Compliance
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 Tools
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.
