{"name":"tiktok-user-videos","id":"sfoln/tiktok-user-videos","title":"TikTok User Videos Scraper","description":"Scrape the videos of public TikTok profiles, latest or most popular first: caption, date, duration, plays, likes, comments, shares, saves, music and hashtags, one JSON record per video. $0.40 per 1,000 videos + $0.003 per page. Up to 300 videos per profile; no login needed.","version":"0.1","status":"ready","family":{"id":"social-media-data","name":"Social media data","description":"Profiles, posts, comments, followers and account audits from X, Instagram, TikTok, YouTube, Reddit, Threads, LinkedIn, Facebook, Bluesky, Telegram, Hacker News and Substack.","actors":31},"categories":["SOCIAL_MEDIA","VIDEOS","AUTOMATION"],"availability":"on_request","seoTitle":"TikTok User Videos Scraper API – $0.40 per 1,000 videos","seoDescription":"TikTok user videos scraper API: export the videos of any public profile with plays, likes, comments, shares and hashtags. $0.40 per 1,000 videos. No login.","summary":"TikTok User Videos Scraper lists the videos of public TikTok profiles with one normalized record per video: video ID, URL, caption, creation date, duration, plays, likes, comments, shares, saves, cover image, music, hashtags, mentions and pinned / ad flags. Sort by latest or most popular. It's built for creator analytics, influencer vetting, campaign tracking, trend research and AI agents.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"tiktok-video","title":"TikTok video","description":"Charged once per TikTok video delivered as a dataset record. User summary records are never charged.","priceUsd":0.0004},{"name":"tiktok-videos-query","title":"TikTok videos page","description":"Charged once per page of a user's videos that delivered at least one video, or that the provider billed although it had no new videos (e.g. a private or empty profile). Covers the per-request upstream fee.","priceUsd":0.003}]},"input":{"description":"Paste TikTok handles or profile URLs. Each profile produces one dataset record per video plus one summary record per profile.","required":["handles"],"fields":[{"name":"handles","title":"TikTok profiles","type":"array","required":true,"description":"Handles (with or without @) or profile URLs such as https://www.tiktok.com/@khaby.lame. Duplicates are removed. Accounts on the Apify free plan can process up to 10 profiles per run.","prefill":["khaby.lame"],"editor":"stringList"},{"name":"maxVideosPerUser","title":"Max videos per profile","type":"integer","required":false,"description":"How many videos to return per profile (1–300). Each delivered video is one charged event, plus one page event per page fetched.","default":30,"prefill":10,"minimum":1,"maximum":300},{"name":"sortBy","title":"Sort order","type":"string","required":false,"description":"latest = newest videos first; popular = most played first.","default":"latest","enum":["latest","popular"],"editor":"select"},{"name":"region","title":"Region","type":"string","required":false,"description":"Optional 2-letter country code used to read the feed (default US). Try the creator's country if a profile that should have videos returns none.","editor":"textfield"},{"name":"maxUsers","title":"Max profiles","type":"integer","required":false,"description":"Safety cap on the number of profiles processed in this run.","default":100,"minimum":1,"maximum":1000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"How many profiles are fetched in parallel (1–8).","default":4,"minimum":1,"maximum":8},{"name":"itemTimeoutSecs","title":"Time limit per input (seconds)","type":"integer","required":false,"description":"Pagination for one profile stops cleanly shortly before this limit (60–3600). Raise it for very large per-input limits.","default":900,"minimum":60,"maximum":3600},{"name":"includeRaw","title":"Include raw upstream response","type":"boolean","required":false,"description":"Attach the unmodified provider video object to each video record (very large output).","default":false}]},"exampleInput":{"handles":["khaby.lame"],"maxVideosPerUser":10},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The handle or profile URL as provided."},{"name":"recordType","type":"string","title":"Record type","description":"video (one per delivered video, charged) | user (one summary per profile, never charged)","example":"video"},{"name":"handle","type":"string | null","title":"Handle"},{"name":"position","type":"integer","title":"Position"},{"name":"videoId","type":"string | null","title":"Video ID"},{"name":"url","type":"string | null","title":"URL"},{"name":"description","type":"string | null","title":"Caption"},{"name":"createdAt","type":"string | null","title":"Created at","description":"ISO 8601 UTC"},{"name":"durationSecs","type":"number | null","title":"Duration (s)"},{"name":"plays","type":"number | null","title":"Plays"},{"name":"likes","type":"number | null","title":"Likes"},{"name":"comments","type":"number | null","title":"Comments"},{"name":"shares","type":"number | null","title":"Shares"},{"name":"saves","type":"number | null","title":"Saves"},{"name":"coverUrl","type":"string | null","title":"Cover URL"},{"name":"musicTitle","type":"string | null","title":"Music title"},{"name":"musicAuthor","type":"string | null","title":"Music author"},{"name":"hashtags","type":"array","title":"Hashtags"},{"name":"mentions","type":"array","title":"Mentions"},{"name":"isPinned","type":"boolean | null","title":"Pinned"},{"name":"isAd","type":"boolean | null","title":"Ad"},{"name":"isPaidPartnership","type":"boolean | null","title":"Paid partnership"},{"name":"region","type":"string | null","title":"Region"},{"name":"authorHandle","type":"string | null","title":"Author handle"},{"name":"authorId","type":"string | null","title":"Author ID"},{"name":"profileUrl","type":"string","title":"Profile URL","description":"user records only."},{"name":"sortBy","type":"string","title":"Sort","description":"user records only."},{"name":"videosDelivered","type":"integer","title":"Videos delivered","description":"user records only."},{"name":"pagesFetched","type":"integer","title":"Pages fetched","description":"user records only."},{"name":"pagesCharged","type":"integer","title":"Pages charged","description":"user records only."},{"name":"reachedEnd","type":"boolean","title":"Reached end","description":"user records only."},{"name":"stopReason","type":"string","title":"Stop reason","description":"user records only."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan","example":"ok"},{"name":"charged","type":"boolean","title":"Charged","description":"Video records: charged tiktok-video. user summary records are never charged themselves: the tiktok-videos-query page fees charged for the input (including empty pages the provider billed) are counted in pagesCharged."},{"name":"chargedEvent","type":"string","title":"Charged event"},{"name":"error","type":"object","title":"Error"},{"name":"warnings","type":"array","title":"Warnings"},{"name":"source","type":"string","title":"Source"},{"name":"fetchedAt","type":"string","title":"Fetched at"}],"outputExample":{"input":"stoolpresidente","recordType":"video","handle":"stoolpresidente","position":1,"videoId":"7517114944362499342","url":"https://www.tiktok.com/@stoolpresidente/video/7517114944362499342","description":"You can say whatever you want about the WNBA is but it's never boring","createdAt":"2025-06-18T02:45:25.000Z","durationSecs":174,"plays":559925,"likes":59605,"comments":587,"shares":3424,"saves":1565,"coverUrl":"https://p19-sign.tiktokcdn-us.com/…heic","musicTitle":"original sound - stoolpresidente","musicAuthor":"Dave Portnoy","hashtags":[],"mentions":[],"isPinned":false,"isAd":false,"isPaidPartnership":false,"region":"US","authorHandle":"stoolpresidente","authorId":"6659752019493208069","status":"ok","charged":true,"chargedEvent":"tiktok-video","source":"scrapecreators","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[],"mcpExamplePrompt":"List the 30 most popular TikTok videos of @khaby.lame with their plays, likes and posting dates.","related":["tiktok-video-comments","tiktok-account-audit","tiktok-search","instagram-user-posts"],"urls":{"site":"https://www.sfoln.com/actors/tiktok-user-videos/","siteJson":"https://www.sfoln.com/actors/tiktok-user-videos.json","siteMarkdown":"https://www.sfoln.com/actors/tiktok-user-videos.md","runSync":"https://api.apify.com/v2/actors/sfoln~tiktok-user-videos/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~tiktok-user-videos/runs","mcp":"https://mcp.apify.com?tools=sfoln/tiktok-user-videos","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20TikTok%20User%20Videos%20Scraper%20(sfoln%2Ftiktok-user-videos)&body=Please%20publish%20tiktok-user-videos.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}