# TikTok Profile Videos API Scraper (`scrapier/tiktok-profile-videos-api-scraper`)

Scrape all videos from TikTok profiles with the TikTok Profile Videos API Scraper. Extract video URLs, captions, hashtags, likes, shares, comments, and upload dates. Perfect for content analysis, trend tracking, and influencer research. Fast, reliable, and scalable for bulk profile scraping.

- **URL**: https://apify.com/scrapier/tiktok-profile-videos-api-scraper.md
- **Developed by:** [Scrapier](https://apify.com/scrapier) (community)
- **Categories:** Social media, Videos, Lead generation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$24.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

# README

If you’re looking for a powerful, fast, and reliable TikTok scraper that can fetch TikTok profile videos automatically — the TikTok Profile Videos API Scraper is your perfect solution.

Whether you're a data analyst, marketer, or researcher, this scraper gives you full access to TikTok user video data including video URLs, captions, hashtags, and engagement metrics — without any watermark. 💡

It’s an Apify-based TikTok scraper designed for speed, accuracy, and compliance with TikTok scraping policy — making it ideal for businesses, developers, and content creators.

***

### 🤖 What Does TikTok Profile Videos API Scraper Do?

The TikTok Profile Videos API Scraper is an unofficial yet robust API tool that retrieves videos from TikTok profiles at scale. It collects public video data such as:

- Video URLs (no watermark)

- Captions and hashtags

- View counts, likes, comments, and shares

- Author bio, profile info, and video metadata

By using this scraper, you can:\
✨ Automate TikTok video collection for analysis or marketing\
✨ Integrate with your Python, Apify, or Node.js workflows\
✨ Extract content data for research, sentiment analysis, or trend tracking

From an SEO perspective, the scraper helps brands analyze competitor TikTok performance and optimize their own content strategies.

***

### 📊 What TikTok Profile Videos API Scraper Can Extract

| Data Type | Description | Example Output |
| --- | --- | --- |
| Video URL | Direct link to video (no watermark) | https://tiktok.com/@user/video/1234 |
| Description | Video caption and text | “Best travel vlog 🌍” |
| Hashtags | Extracted tags from videos | #travel #fun #vlog |
| Video Stats | Likes, comments, shares, views | { likes: 1200, comments: 50 } |
| Music Info | Song title, artist, ID | “original sound – @creator” |
| User Data | Username, bio, followers | @username, 120k followers |
| Comment Data | Top-level comments (optional) | “This is amazing!” |
| Creation Date | Video post timestamp | 2025-03-01 |

This scraper can handle thousands of profiles — perfect for enterprise-level TikTok data extraction 🔥.

***

#### 🌟 Key Features of TikTok Profile Videos API Scraper

- ⚡ Fast & Scalable: Collects hundreds of videos in seconds using Apify cloud performance.

- 🔍 Multiple Input Methods: Use username, profile URL, or user ID — just like tiktok-scraper github or apidojo tiktok scraper.

- 💬 Comprehensive Data Fields: Fetch likes, comments, hashtags, captions, video URLs, and more.

- 🧠 AI-Ready Format: Exports clean JSON data — ready for ML or NLP pipelines.

- 🔒 Policy-Aware & Safe: Respects TikTok scraping policy and avoids private data.

- 🧩 Integrations: Works seamlessly with tiktok scraper Python scripts, Clockworks TikTok Scraper, and Apify TikTok Scraper tools.

- 🌐 Online or Free Options: Try the TikTok Profile Videos API Scraper online or through Apify’s free tier to test functionality.

This scraper is your all-in-one TikTok data extractor for automation, research, and social analytics.

***

### 🧩 How to Use TikTok Profile Videos API Scraper?

Follow this simple step-by-step guide 👇

1️⃣ Log in to Apify — Create a free account or sign in.\
2️⃣ Select the Actor — Search for “TikTok Profile Videos API Scraper” in the Apify Store.\
3️⃣ Enter Input Data — Paste your TikTok username(s) or profile URLs into the startUrls field.\
4️⃣ Choose Output Options — Decide if you want comments, hashtags, or timestamps.\
5️⃣ Run the Actor — Hit Start, and the scraper will automatically collect TikTok video data.\
6️⃣ Download Results — Export your dataset in JSON, CSV, or Excel format.

💡 You can also run it with Python, just like popular tiktok-scraper GitHub tools.

***

### 🎯 Use Cases

✅ Social Media Analytics: Track competitors’ content strategies and engagement.\
✅ Marketing Automation: Collect trending videos and hashtags to plan campaigns.\
✅ Data Science Projects: Use TikTok video metadata for NLP, AI, or trend analysis.\
✅ Influencer Research: Identify top-performing creators by views, likes, and shares.\
✅ Content Curation: Download TikTok profile videos without watermark for repurposing.\
✅ Academic Research: Gather anonymized TikTok data for public studies or sentiment evaluation.

With TikTok Profile Videos API Scraper, you gain insights that fuel data-driven decisions 📈.

***

### 💎 Why Choose Us?

✨ Comprehensive & Accurate: Collects all public TikTok profile video data.\
✨ Flexible Inputs: Supports usernames, URLs, or user IDs for easy targeting.\
✨ Developer-Friendly: Built to integrate with Python TikTok scraper libraries and Apify workflows.\
✨ Transparent & Ethical: Complies with TikTok scraping policy and GDPR-friendly principles.\
✨ Regularly Updated: Maintained actively like Clockworks TikTok Scraper and Apidojo TikTok Scraper alternatives.

You’ll love its simplicity, speed, and reliability — perfect for both individual developers and large data teams. 💼

***

### ⚙️ How Many Results Can You Scrape with TikTok Profile Videos API Scraper?

The scraper is built for massive scalability 💪

- You can scrape hundreds or thousands of TikTok videos per profile.

- Limit control ensures optimal performance — define your own limit parameter.

- Thanks to Apify’s infrastructure, it runs efficiently using minimal compute units.

On average:

| Data Volume | Approx. Time | Compute Usage |
| --- | --- | --- |
| 100 Videos | ~30 seconds | 0.05 CU |
| 1,000 Videos | ~3–4 minutes | 0.25 CU |
| 10,000 Videos | ~15–20 minutes | 1–2 CU |

That’s fast, cost-effective, and reliable — ideal for enterprise analytics and real-time monitoring. 🚀

### ⚖️ Is It Legal to Scrape TikTok?

Yes — when done responsibly ✅

The TikTok Profile Videos API Scraper only extracts publicly available data, without login or bypassing access controls.

It’s fully aligned with:

- 🌍 TikTok scraping policy (public data only)

- 🧑‍⚖️ GDPR principles for data protection

- ⚙️ Apify’s legal and ethical standards

This scraper does not collect personal, private, or sensitive user information — making it safe for research and business intelligence use.

### 🧾 Input Parameters

#### Example Input (JSON):

```json
{
  "proxyConfiguration": {
      "useApifyProxy": false
  },
  "urls": [
      "https://www.tiktok.com/@microsoft"
  ]
}
```

### 📤 Output Format

#### Example Output (JSON):

```json
{
    "added_sound_music_info": {
      "album": "",
      "artists": [],
      "audition_duration": 56,
      "author": "Microsoft",
      "author_deleted": false,
      "author_position": null,
      "avatar_medium": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=3d28ef29&x-expires=1762509600&x-signature=l5J4c9KBEv4WrhkOuE0coWsQMOM%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "avatar_thumb": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:100:100.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:100:100.jpeg?dr=14579&refresh_token=34f21d20&x-expires=1762509600&x-signature=RGe8bDeEL94aD9mEzfS2RxbZIms%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "binded_challenge_id": 0,
      "can_not_reuse": false,
      "collect_stat": 0,
      "commercial_right_type": 0,
      "cover_large": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:1080:1080.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=14579&refresh_token=2349b1bc&x-expires=1762509600&x-signature=Fpl67ZLdwPEpTemuY4EqUu0DTJ8%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "cover_medium": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=3d28ef29&x-expires=1762509600&x-signature=l5J4c9KBEv4WrhkOuE0coWsQMOM%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "cover_thumb": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:100:100.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:100:100.jpeg?dr=14579&refresh_token=34f21d20&x-expires=1762509600&x-signature=RGe8bDeEL94aD9mEzfS2RxbZIms%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "dmv_auto_show": false,
      "duration": 56,
      "duration_high_precision": {
        "audition_duration_precision": 56,
        "duration_precision": 56,
        "shoot_duration_precision": 56,
        "video_duration_precision": 56
      },
      "external_song_info": [],
      "extra": "{}",
      "id": 7568983324052458000,
      "id_str": "7568983324052458295",
      "is_audio_url_with_cookie": false,
      "is_author_artist": false,
      "is_commerce_music": false,
      "is_matched_metadata": false,
      "is_original": true,
      "is_original_sound": true,
      "is_pgc": false,
      "is_play_music": false,
      "is_shooting_allow": true,
      "lyric_short_position": null,
      "mid": "7568983324052458295",
      "multi_bit_rate_play_info": null,
      "mute_share": false,
      "offline_desc": "",
      "owner_handle": "microsoft",
      "owner_id": "6712247097901532165",
      "owner_nickname": "Microsoft",
      "play_url": {
        "height": 720,
        "uri": "tos-maliva-ve-27dcd7c799-us/oIgKvnwhfBIJAZYmNBE05OAJbiBpiKFZkTyMyx/",
        "url_list": [
          "https://v77.tiktokcdn.com/51a3f8bbb7fecc60ba346881fd7e6f79/690c76e3/video/tos/maliva/tos-maliva-ve-27dcd7c799-us/oIgKvnwhfBIJAZYmNBE05OAJbiBpiKFZkTyMyx/?a=1233&bti=ODszNWYuMDE6&ch=0&cr=0&dr=0&er=0&lr=default&cd=0%7C0%7C0%7C0&br=250&bt=125&ft=.NpOcInz7Th23i6PXq8Zmo&mime_type=audio_mpeg&qs=6&rc=O2ZnPDo8aGloZTc6OGc3Z0Bpajo0aGs5cnE5NzMzZzU8NEA2MDEzXi5iXzYxMGJiNTQ1YSMxZ2BmMmRzbTJhLS1kMS9zcw%3D%3D&vvpl=1&l=2025110518213105CE1EBD97603402FDD7&btag=e00088000&cc=13"
        ],
        "width": 720
      },
      "position": null,
      "prevent_download": false,
      "preview_end_time": 0,
      "preview_start_time": 0,
      "recommend_status": 100,
      "search_highlight": null,
      "sec_uid": "MS4wLjABAAAAb1DEUoc1hdFnFtkIaaU7yGG1AEzJ_fOj4w8OnJdCKUhah9CNfvCQtoAiQWIk1cp7",
      "shoot_duration": 56,
      "source_platform": 24,
      "status": 1,
      "tag_list": null,
      "title": "original sound",
      "tt_to_dsp_song_infos": null,
      "user_count": 0,
      "video_duration": 56
    },
    "anchors": null,
    "anchors_extras": "",
    "author": {
      "accept_private_policy": false,
      "account_labels": null,
      "account_region": "",
      "ad_cover_url": null,
      "avatar_168x168": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=3d28ef29&x-expires=1762509600&x-signature=l5J4c9KBEv4WrhkOuE0coWsQMOM%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "avatar_300x300": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=3d28ef29&x-expires=1762509600&x-signature=l5J4c9KBEv4WrhkOuE0coWsQMOM%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "avatar_larger": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:1080:1080.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=14579&refresh_token=2349b1bc&x-expires=1762509600&x-signature=Fpl67ZLdwPEpTemuY4EqUu0DTJ8%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "avatar_medium": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=3d28ef29&x-expires=1762509600&x-signature=l5J4c9KBEv4WrhkOuE0coWsQMOM%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "avatar_thumb": {
        "height": 720,
        "uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:100:100.jpeg",
        "url_list": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:100:100.jpeg?dr=14579&refresh_token=34f21d20&x-expires=1762509600&x-signature=RGe8bDeEL94aD9mEzfS2RxbZIms%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=maliva"
        ],
        "width": 720
      },
      "avatar_uri": "tos-maliva-avt-0068/5f76bc9c8e1d63c63e2846a3b8b91f1b~tplv-tiktokx-cropcenter:1080:1080.jpeg",
      "aweme_count": 485,
      "bind_phone": "",
      "bold_fields": null,
      "can_message_follow_status_list": null,
      "can_set_geofencing": null,
      "cha_list": null,
      "comment_filter_status": 0,
      "comment_setting": 0,
      "commerce_user_level": 0,
      "cover_url": [],
      "create_time": 0,
      "custom_verify": "Verified account",
      "cv_level": "",
      "download_prompt_ts": 0,
      "download_setting": 0,
      "duet_setting": 0,
      "enterprise_verify_reason": "",
      "events": null,
      "favoriting_count": 0,
      "fb_expire_time": 0,
      "follow_status": 0,
      "follower_count": 861600,
      "follower_status": 0,
      "followers_detail": null,
      "following_count": 59,
      "friends_status": 0,
      "gender": 0,
      "geofencing": null,
      "google_account": "",
      "has_email": false,
      "has_facebook_token": false,
      "has_insights": false,
      "has_orders": false,
      "has_twitter_token": false,
      "has_youtube_token": false,
      "hide_search": false,
      "homepage_bottom_toast": null,
      "ins_id": "",
      "is_ad_fake": false,
      "is_block": false,
      "is_discipline_member": false,
      "is_phone_binded": false,
      "is_star": false,
      "item_list": null,
      "language": "en",
      "live_agreement": 0,
      "live_commerce": false,
      "live_verify": 0,
      "mention_status": 1,
      "mutual_relation_avatars": null,
      "need_points": null,
      "need_recommend": 0,
      "nickname": "Microsoft",
      "platform_sync_info": null,
      "prevent_download": false,
      "react_setting": 0,
      "region": "",
      "relative_users": null,
      "room_id": 0,
      "search_highlight": null,
      "sec_uid": "MS4wLjABAAAAb1DEUoc1hdFnFtkIaaU7yGG1AEzJ_fOj4w8OnJdCKUhah9CNfvCQtoAiQWIk1cp7",
      "secret": false,
      "share_info": {
        "now_invitation_card_image_urls": null,
        "share_desc": "Microsoft on TikTok",
        "share_desc_info": "TikTok: Microsoft on TikTok",
        "share_qrcode_url": {
          "height": 720,
          "uri": "",
          "url_list": [],
          "width": 720
        },
        "share_title": "Microsoft's TikTok Profile",
        "share_title_myself": "My TikTok Profile",
        "share_title_other": "Microsoft's TikTok Profile",
        "share_url": "https://www.tiktok.com/@microsoft"
      },
      "share_qrcode_uri": "",
      "shield_comment_notice": 0,
      "shield_digg_notice": 0,
      "shield_edit_field_info": null,
      "shield_follow_notice": 0,
      "short_id": "0",
      "show_image_bubble": false,
      "signature": "find us at the House of Black TechXcellence @ AFROTECH",
      "special_account": {
        "special_account_list": null
      },
      "special_lock": 1,
      "status": 1,
      "stitch_setting": 0,
      "total_favorited": 4000000,
      "tw_expire_time": 0,
      "twitter_id": "",
      "twitter_name": "",
      "type_label": null,
      "uid": "6712247097901532165",
      "unique_id": "microsoft",
      "unique_id_modify_time": 0,
      "user_canceled": false,
      "user_mode": 1,
      "user_period": 0,
      "user_profile_guide": null,
      "user_rate": 1,
      "user_tags": null,
      "verification_type": 1,
      "verify_info": "Verified account",
      "video_icon": {
        "height": 720,
        "uri": "",
        "url_list": [],
        "width": 720
      },
      "white_cover_url": null,
      "with_commerce_entry": false,
      "with_shop_entry": false,
      "youtube_channel_id": "",
      "youtube_channel_title": "",
      "youtube_expire_time": 0
    },
    "author_user_id": 6712247097901532000,
    "aweme_acl": {
      "download_general": {
        "code": 1,
        "extra": "101",
        "mute": false,
        "show_type": 0,
        "transcode": 1
      },
      "download_mask_panel": {
        "code": 1,
        "extra": "101",
        "mute": false,
        "show_type": 0,
        "transcode": 1
      },
      "platform_list": null,
      "share_general": {
        "code": 1,
        "extra": "101",
        "mute": false,
        "show_type": 1,
        "toast_msg": "",
        "transcode": 1
      },
      "share_list_status": 0
    },
    "aweme_id": "7568981619894275383",
    "aweme_type": 0,
    "behind_the_song_music_ids": null,
    "behind_the_song_video_music_ids": null,
    "bodydance_score": 0,
    "branded_content_accounts": null,
    "cc_template_info": {
      "author_name": "",
      "clip_count": 0,
      "desc": "",
      "duration_milliseconds": 0,
      "related_music_id": "",
      "template_id": ""
    },
    "cha_list": [],
    "challenge_position": null,
    "cmt_swt": false,
    "collect_stat": 0,
    "commerce_config_data": null,
    "commerce_info": {
      "adv_promotable": false,
      "auction_ad_invited": false,
      "with_comment_filter_words": false
    },
    "content_desc": "",
    "content_desc_extra": [],
    "cover_labels": null,
    "create_time": 1762290908,
    "desc": "when your sneaker loyalty never wavers #AFROTECH25 #HouseOfBlackTechXcellence @afro.tech",
    "desc_language": "en",
    "disable_search_trending_bar": false,
    "distance": "",
    "distribute_type": 1,
    "follow_up_publish_from_id": 0,
    "geofencing": null,
    "geofencing_regions": null,
    "green_screen_materials": null,
    "group_id": "",
    "group_id_list": {
      "GroupdIdList0": null,
      "GroupdIdList1": null
    },
    "has_vs_entry": false,
    "have_dashboard": false,
    "hybrid_label": null,
    "image_infos": null,
    "interact_permission": {
      "allow_adding_to_story": 1,
      "allow_create_sticker": {
        "status": 0
      },
      "duet": 0,
      "duet_privacy_setting": 0,
      "stitch": 0,
      "stitch_privacy_setting": 0,
      "upvote": 0
    },
    "interaction_stickers": null,
    "is_ads": true,
    "is_description_translatable": true,
    "is_hash_tag": 1,
    "is_on_this_day": 0,
    "is_pgcshow": false,
    "is_preview": 0,
    "is_relieve": false,
    "is_text_sticker_translatable": false,
    "is_top": 0,
    "is_vr": false,
    "item_comment_settings": 0,
    "item_duet": 0,
    "item_react": 0,
    "item_stitch": 0,
    "label_top": {
      "height": 720,
      "uri": "",
      "url_list": [],
      "width": 720
    },

```

### ❓ FAQ

#### 1️⃣ Is the TikTok Profile Videos API Scraper free to use?

Yes, there’s a free online version via Apify where you can test limited scrapes.

#### 2️⃣ Can I use this TikTok scraper in Python?

Absolutely — it integrates easily with tiktok scraper Python scripts or Apify SDK.

#### 3️⃣ Is this different from Apify TikTok Scraper?

Yes — it’s optimized specifically for profile videos, offering cleaner, watermark-free URLs.

#### 4️⃣ What about TikTok scraping policy compliance?

It respects public data access rules and avoids login-based or private endpoints.

#### 5️⃣ Can I run it from GitHub?

Yes, similar to tiktok-scraper GitHub tools, you can deploy it programmatically.

#### 6️⃣ Is it safe for business use?

Totally — it’s GDPR-aligned and suitable for compliant research and analytics.

#### 7️⃣ How often is it updated?

The scraper is maintained regularly — just like Apidojo and Clockworks TikTok Scraper.

***

### ✨ Final Thought:

The TikTok Profile Videos API Scraper is your one-stop TikTok data extractor for collecting high-quality, structured video insights.\
Whether you’re a marketer, developer, or data scientist, this tool delivers the speed, precision, and scalability you need. 🚀

# Actor input Schema

## `urls` (type: `array`):

List of TikTok usernames or profile URLs to scrape. Supports multiple formats: 'microsoft', '@microsoft', or 'https://www.tiktok.com/@microsoft'

## `keyword` (type: `string`):

Optional keyword to filter videos by content or hashtags.

## `sortOrder` (type: `string`):

Order to sort the scraped videos

## `maxComments` (type: `integer`):

Maximum number of comments to scrape per video (0 = no comments)

## `maxVideos` (type: `integer`):

Maximum number of videos to scrape per profile

## `proxyConfiguration` (type: `object`):

Proxy settings with automatic fallback: no proxy → datacenter → residential (with 3 retries)

## Actor input object example

```json
{
  "urls": [
    "microsoft",
    "@mrbeast",
    "https://www.tiktok.com/@openai"
  ],
  "keyword": "",
  "sortOrder": "newest",
  "maxComments": 0,
  "maxVideos": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapier/tiktok-profile-videos-api-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("scrapier/tiktok-profile-videos-api-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapier/tiktok-profile-videos-api-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapier/tiktok-profile-videos-api-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Profile Videos API Scraper",
        "description": "Scrape all videos from TikTok profiles with the TikTok Profile Videos API Scraper. Extract video URLs, captions, hashtags, likes, shares, comments, and upload dates. Perfect for content analysis, trend tracking, and influencer research. Fast, reliable, and scalable for bulk profile scraping.",
        "version": "0.1",
        "x-build-id": "NPsLEbS2wWKchFgTb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapier~tiktok-profile-videos-api-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapier-tiktok-profile-videos-api-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapier~tiktok-profile-videos-api-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapier-tiktok-profile-videos-api-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapier~tiktok-profile-videos-api-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapier-tiktok-profile-videos-api-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "TikTok Profile URLs or Usernames",
                        "minItems": 1,
                        "type": "array",
                        "description": "List of TikTok usernames or profile URLs to scrape. Supports multiple formats: 'microsoft', '@microsoft', or 'https://www.tiktok.com/@microsoft'",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "keyword": {
                        "title": "Search Keyword (Optional)",
                        "type": "string",
                        "description": "Optional keyword to filter videos by content or hashtags.",
                        "default": ""
                    },
                    "sortOrder": {
                        "title": "Sort Order",
                        "enum": [
                            "newest",
                            "oldest",
                            "most_liked",
                            "most_viewed"
                        ],
                        "type": "string",
                        "description": "Order to sort the scraped videos",
                        "default": "newest"
                    },
                    "maxComments": {
                        "title": "Maximum Comments to Scrape",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of comments to scrape per video (0 = no comments)",
                        "default": 0
                    },
                    "maxVideos": {
                        "title": "Maximum Videos per Profile",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of videos to scrape per profile",
                        "default": 50
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings with automatic fallback: no proxy → datacenter → residential (with 3 retries)"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
