TikTok Scraper - Hashtags, Profiles & Video Data avatar

TikTok Scraper - Hashtags, Profiles & Video Data

Pricing

from $2.00 / 1,000 results

Go to Apify Store
TikTok Scraper - Hashtags, Profiles & Video Data

TikTok Scraper - Hashtags, Profiles & Video Data

Scrape TikTok videos, profiles, hashtags, and search results. Get video URLs, play counts, likes, comments, shares, and channel signals for research and monitoring.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

50

Total users

2

Monthly active users

3 days ago

Last modified

Share

TikTok Scraper

Pull videos, profiles, and hashtag trends from TikTok — with full engagement data and optional video download.

Architecture: this Apify Actor is a thin client. Scraping runs on the tiktok-com Cloud Run worker (Patchright + XHR + CapSolver) over HTTPS + API key. Existing input/output fields and Store pricing are unchanged; the ten lead fields documented below were added without renaming or removing earlier fields.

Worker URL is config, not code: the Actor reads WORKER_BASE_URL from Actor environment variables (plus optional per-run workerBaseUrl). If you migrate the worker to a new host, update WORKER_BASE_URL (and WORKER_AUTH if the API key changes) in Apify Console — no Actor code change required. Set WORKER_PROVIDES_PROXY=1 when the worker supplies its own PROXY_URL instead of Apify RESIDENTIAL.

Current guest-web availability (2026-09-09): Public Profile identity and single Video Detail are opened and lead-enriched. TikTok currently puts Search, Hashtag, and Profile post grids behind a slider challenge. Those surfaces fail honestly instead of returning an empty success or rows from a different surface. HTTP 200 platform shells are not treated as data.

  • ✅ Accept hashtag, username, keyword-search, or specific-video inputs; current guest availability is surface-specific
  • ✅ Get play counts, likes, comments, shares, saves, author info, music, hashtags — 20+ fields per video
  • Optional video download — save TikTok video files to cloud storage for archival or analysis
  • ✅ Download successful rows as Excel, CSV, or JSON — no TikTok account is supplied by the user
  • ✅ Pay only for what you use: $0.002 per video, no subscription
  • ✅ At the listed result price, $5 of Apify credit can cover up to ~2,500 successfully emitted videos

When the requested public surface is available, successful rows cost pennies and provide raw engagement data plus optional video downloads. A slider-gated Search or Hashtag request can fail without a table or result charge.


Need a dedicated scraper for one website?

This Actor is the general tool for protected public pages. If you already have one specific site and a field list, a dedicated scraper is faster and more stable: listing + detail, your export format, delivered to your Apify account or as a standalone runnable client.

I confirm the tier before you pay. The clock starts after that confirmation.

Start here: Submit a custom scraper request

Starter $50Dedicated $100Hard target $200–999
Site1 simple anti-bot public site1 medium anti-bot public siteCloudflare / aggressive anti-bot / custom parser
ScopeFull listing + detail fieldsListing + detail + pagination, your field listAgreed fields, repeatable runs
DeliveryCSV/JSON · Apify Actor or standalone runnable client (script/CLI)Same, plus a sample run and short instructionsFeasibility first, then build
Time24 hours after we confirm the URL is in scope48 hours after confirmationQuoted after feasibility
Fixes30 days for small public-layout changes30 daysScoped in the quote

Hard-target sites are not a 100% uptime promise. You get a dedicated parser that can be re-run on the agreed fields. If the URL is not feasible, you get a refund or pay an assessment fee only — you will know before the build starts.

Not in Starter/Dedicated: login-walled data, native APK / Windows installer / full web apps, or two-year maintenance. Those are a separate quote.


What you can do with it

Hashtag mode is designed to return tagged videos with play counts, likes, and the full engagement breakdown when TikTok exposes the feed to the guest session. As of 2026-09-09, the measured Hashtag surface is slider-gated, so a run can fail without result rows rather than bypassing the challenge or claiming a complete feed.

To run this, pick "Hashtag videos" mode and type the hashtags you want to track (without the #):

What you enter:

WhatExample
ModeHashtag videos
Hashtagsai, machinelearning (without #)
How many videos100

When TikTok makes the Hashtag feed available, successful rows use this table shape. The current measured guest surface does not guarantee availability or a complete set of every tagged video:

What you get back:

DescriptionAuthorPlaysLikesCommentsSharesDurationMusic
This AI tool changed everything 🤯@techbro2.4M180K3.2K12K42soriginal sound
How I automated my business with AI@sarahcodes890K65K1.1K8.5K58sAesthetic

Sort by plays to find the top performers. Sort by likes-to-plays ratio to find the most engaging content. Download as Excel, CSV, or JSON, or pipe into Google Sheets to track hashtag trends over time.


2. Monitor competitor or influencer accounts

Point this Actor at a public username to collect the visible profile identity, bio, statistics, organization/person clue, and profile links. Profile video rows are included only when TikTok exposes the posts grid. On 2026-09-09, the measured @openai profile identity was opened but its posts grid was slider-gated, so the Actor does not promise a complete video library.

Pick "User profile & videos" mode and type the username (without @):

What you enter:

WhatExample
ModeUser profile & videos
Usernamesopenai, nike, charlidamelio (without @)
How many videos200

What you get back (profile info, plus video rows when the posts grid is available):

The opened profile surface returns a profile summary with followers, following, total likes, video count, bio, verified status, and lead fields. A video table is returned only when the separate posts surface is available:

DescriptionPlaysLikesCommentsSharesSavesDurationPosted
trying the viral cloud bread 🍞24.5M3.2M48K125K890K47sApr 2
dance challenge with Mom18.1M2.1M32K95K650K32sMar 28

You can schedule profile checks, but treat a slider-gated posts grid as a failed acquisition rather than a week with zero posts.


Search mode is designed to collect public keyword results when TikTok exposes the result feed. The measured Search surface was slider-gated on 2026-09-09, so requesting 200 results does not guarantee 200 rows; a blocked run fails honestly instead of substituting Hashtag or Profile data.

Pick "Search results" mode and type your keywords:

What you enter:

WhatExample
ModeSearch results
Keywordscooking tips or fitness motivation or SaaS demo
How many videos200

What you get back:

Description (first 60 chars)AuthorPlaysLikesMusicDuration
3 meals under $5 that actually...@joshuaweissman9.4M1.1Moriginal sound58s
This morning routine changed my...@drjulie5.2M620KMetamorphosis45s

When Search is available, you can sort returned rows by plays, music, and duration. Current slider-gated sessions do not produce this table.


4. Download and archive TikTok videos

Need the actual video files — not just the metadata? Turn on video download and the Actor saves each video to Apify's cloud storage. You get a persistent download URL for every video that doesn't expire (unlike TikTok's own playUrl which is time-limited).

This is useful for content archival, creative reference libraries, or compliance documentation.

What you enter:

WhatExample
ModeHashtag videos or Specific video URLs
Hashtags or URLsrecipe or paste TikTok video links
Download videos?Yes
How many videos20

What you get back (each row now includes a download link):

DescriptionAuthorPlaysVideo file
60-second pasta hack 🍝@tasty5.1Mdownload
The perfect fried egg@gordonramsay12Mdownload

Each download link points to a permanent copy of the video file stored in Apify's Key-Value Store. Video download adds a few seconds per video to the run time and uses more storage, but the files are yours to keep.


5. Use it from ChatGPT, Claude, or no-code automation

Ask your AI assistant (ChatGPT, Claude, Cursor) to run this Actor with a public profile or video target. When TikTok exposes the requested surface, the assistant can return current rows in the conversation. A slider-gated Search or Hashtag request fails without inventing a result table. The Actor also works as a "Run Actor" step in Make, n8n, and Zapier.

Connect the Apify MCP server once (configuration in the developer section below), and from then on just ask in plain English:

What your assistant can get back from a successful surface:

DescriptionAuthorPlaysLikesDuration
10-min full body, no equipment@blogilates8.3M920K60s
Morning stretch routine@doctormike4.1M510K45s

Follow up naturally — "which ones have over 5M plays?" or "show me just the authors and likes".


More Actors like this

Need YouTube, Reddit, TikTok Ads, or another vertical? Use a dedicated Actor below for structured fields. Stay on TikTok Scraper for hashtags, profiles, search, and video URLs.

Social & Content (closest matches)

Prefer a dedicated site scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic URL scrape.

Jobs & Freelance

E-commerce

Real Estate

Travel & Stays

Ads Intelligence

Local & Maps

General tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to use (no code required)

  1. Click "Try for Free" at the top of this page
  2. Pick a scrape mode — Hashtag, User profile, Search, or specific Video URLs
  3. Enter the hashtags, usernames, keywords, or video links you want
  4. Set how many results you want (safe default 1, up to 1,000)
  5. (Optional) Turn on "Download videos" if you want the actual video files
  6. Click Start. Opened Profile identity and single Video Detail targets produce Dataset rows ready for Excel, CSV, or JSON. A slider-gated Hashtag, Search, or Profile posts target can fail without rows.

Pick a mode, enter your targets, and download successful rows. Availability is surface-specific: a visible profile identity or single video can work while the same session's Search, Hashtag, or profile posts grid is blocked.

No TikTok account is used on the currently opened guest Profile identity and single Video Detail surfaces. TikTok can still present a slider challenge; the Actor does not log in, solve it, or use your account.

At the listed per-result price, $5 of Apify credit can pay for up to about 2,500 successfully emitted videos. Gated runs can finish without result rows.


What you get back

Each video comes back as one row in a table. Here's everything you'll see:

  • Video description with all hashtags and emojis as posted
  • Engagement metrics: play count, like count, comment count, share count, and save/bookmark count
  • Author info: username, display name, avatar URL, and verified status
  • Video details: duration (seconds), resolution (width × height), cover image URL, and direct video link
  • Music: song title and artist name
  • Metadata: creation timestamp, location tag (if set), and scrape timestamp
  • Video file (when download is enabled): a permanent download URL stored in Apify's cloud

For user profile scrapes, you also get the full profile: follower count, following count, total likes received, video count, bio, and verified status.

Lead and contact fields

Lead enrichment is on by default (enrichDetails: true). Every video, profile, or comment row keeps the existing TikTok fields and includes the complete lead shape below.

FieldTypeTikTok meaning and measured source
phones[{value, type, e164?}]Public phone values conservatively parsed from visible profile text when present. No valid phone was found on the opened OpenAI profile or video sample; TikTok IDs and slider/session numbers are rejected.
emails[{value, type}]Public email addresses from visible profile text. The opened @openai sample contained no email, so its row uses an empty array plus leadAbsences.emails.
address{street, unit, locality, region, postalCode, country, full}A public postal address when one is actually present. unit is the suite, apartment, or door number. The measured samples had no street address, and video locationCreated=US is not promoted to this object.
geo{lat, lng} or nullVerified coordinates that supplement an address. No coordinates were verified in the accepted sample. A country code or content region is not a coordinate.
person{name, role?} or nullThe public video or comment author identity, for example {name: "eriondedja12", role: "author"}. A handle is an entity clue, not a claim that a legal name or private contact is known.
org{name, id?} or nullA public profile organization and TikTok user ID when the profile represents an organization, for example OpenAI with user ID 7256178298626032683. Ordinary video rows can leave it null with an absence reason.
web{website, socials[]} or nullThe decoded profile bio website plus canonical TikTok profile URLs. Measured examples are https://github.com/openai/birdingpal, https://www.tiktok.com/@openai, and https://www.tiktok.com/@eriondedja12.
leadSourcesearch|detail|entity|contact|reveal-xhrThe surface that supplied the clue. The accepted video row uses detail; a profile identity row uses entity. Gated search/tag pages are not relabeled as a successful detail source.
leadRevealvisible|click|xhr|gated|image|absentHow the clue was obtained. Hydrated profile/video identity uses visible; a blocked surface is reported as gated or fails without emitting a fake empty row.
leadAbsencesobject/mapPer-field reason for an empty or null value. Reasons use the measured scope, such as 本站无(当前 video detail 样本), 闸门锁, or 未验证, instead of silently omitting the field.

The Dataset views expose all ten lead fields as top-level columns, while the schema also documents the nested address, person, organization, and web subfields.

Reveal and enrichment cost

  • Public Profile identity and single Video Detail are read from TikTok's hydrated guest pages. Each target can require one browser page acquisition, so more profiles or video URLs increase run time and anti-bot exposure.
  • No "show phone", "show email", or "show address" control was observed on the opened guest surfaces (revealControls=[]). The worker therefore makes no extra reveal click and no reveal-XHR request. It never invents a hidden contact endpoint.
  • Search, Hashtag, and Profile post grids currently hit a slider challenge. The worker does not retry that deterministic gate, solve the slider, or substitute rows from another surface. A gated request can therefore fail without billable result rows.
  • Video file download is separate from lead enrichment. Enabling downloadVideos adds media transfer and storage time, but it does not reveal additional phone, email, address, person, or organization data.

Honest limitations

  • The measured guest evidence covers the @openai profile and video 7653433309749382430. Phone, email, street/unit address, and coordinates were absent on those opened samples. This is not a promise that every TikTok profile permanently lacks those values.
  • person can be a public author handle rather than a legal name or direct outreach contact. org is only populated when the current profile evidence supports an organization identity.
  • Search, Hashtag, and Profile post grids were slider-gated on 2026-09-09. Public Profile identity, Profile playlists, Home hydration, and single Video Detail were separately opened. One gated sub-surface does not make a visible profile entity empty, and one visible profile does not prove all surfaces are available.
  • TikTok's locationCreated content label is not a street address, door number, or latitude/longitude. It remains an existing content field and is not copied into address or geo.
  • A secondary locale/market, click-only contact flow, and GraphQL lead schema were not verified. These gaps remain 未验证; HTTP 200 platform shells, footer links, Help pages, and challenge tokens are not treated as profile contacts.

Each result set comes back as a table you can download as Excel, CSV, or JSON, or pipe into Google Sheets, Airtable, or any downstream tool through Zapier or Make.


Data sources

Data comes from TikTok's public guest web interface when the requested surface exposes a valid profile or video business entity. Every run is live, so TikTok can show data, a platform shell, or a slider challenge at that moment.

The Actor accepts public profile, video, hashtag, and search inputs, but current validation covered a CA-en guest context and one US-labeled video entity. Secondary locales and markets remain unverified. Public Profile identity and single Video Detail were opened; Search, Hashtag, and Profile posts were slider-gated on 2026-09-09.


Free Apify plan limits (set by this Actor's developer)

If your Apify account is on the free plan, this Actor applies the following limits so you can evaluate it without unlimited usage:

LimitFree Apify planPaid Apify plan
Runs of this Actor10 runs totalUnlimited
Results per run (maxResults)Up to 1,000Up to 1,000

These caps are enforced by the Actor developer (not Apify platform errors). When you hit the 10-run limit, the run finishes gracefully with a clear status message asking you to upgrade. Paying Apify users are not subject to the run cap.


Pricing

Pay per video. No subscription.

What triggers a chargeCost
Actor start (each run)$0.00005 (effectively free)
Each video scraped$0.002
Video file download (optional)Uses Apify storage — typically pennies per video

To give you a feel for real-world costs:

Real-world cost examples:

ScenarioVideosTotal cost
Quick hashtag check50$0.10
Competitor account audit200$0.40
Niche content research500$1.00
Hashtag trend analysis, when the surface is available1,000$2.00

The cost scales linearly. No tier thresholds, no surprise jumps.

$5 free Apify credit can pay for up to ~2,500 successfully emitted videos at the listed result price. Actual coverage depends on the requested surface; blocked Search or Hashtag runs can fail without rows.


How this compares:

ToolPriceWhat you getWhat you don't get
Pipiads$77–$263/moTikTok ad intelligence dashboardMonthly subscription, no raw data export, focused on ads only
EnsembleData$100–$1,400/moTikTok API with daily unit limitsMonthly subscription, unit-based quota
Bright Data TikTok$2.50/1K records ($250 minimum)Raw dataset$250 minimum buy-in, static snapshot
Other Apify TikTok scrapers$0.30–$2.00/1KTikTok search/hashtag dataSome lack video download, profile data, or 4-mode flexibility
This Actor$0.002/video4 modes + video download + full engagement + profile data, pay-per-use

No subscription. No daily quota. $0.002 per video. Start there.


Connect to your tools

Use this Actor from any of the major no-code and automation tools:

PlatformHow to connect
Make.comSearch "Apify" → "Run Actor" → use Actor ID lentic_clockss/tiktok-scraper
n8nAdd Apify node → "Run Actor" → same Actor ID
ZapierApify integration → "Run Actor" trigger
ChatGPT / Claude / CursorConnect via Apify's MCP endpoint — your AI assistant calls this Actor directly
LangChain, Python, custom codeVia Apify SDK or direct API call

The most common setups:

  • With ChatGPT or Claude: connect once via MCP, then request a public profile or direct video. Search requests return a table only when TikTok exposes that surface to the guest session.
  • With Make or Zapier: schedule runs and pipe only successful rows into Google Sheets or Slack. Monitor failed/gated status so it is not mistaken for a genuine zero-result period.

When to use something else

If you need…Use this instead
TikTok ad creatives specifically (not organic content)Pipiads — it's built for TikTok advertising intelligence
YouTube videos or ShortsYouTube Research Scraper or YouTube Shorts Scraper
Facebook / Instagram ad creativesFacebook Ad Library Scraper
Local business dataGoogle Maps Scraper
Scraping arbitrary websites behind anti-bot protectionStealth Web Scraper

FAQ

Q: Do I need a TikTok account? A: No. This Actor uses TikTok's public web interface — no login, no session cookie, no account risk.

Q: How fresh is the data? A: Every successful row comes from a live scrape. A current slider challenge can block the requested surface, so freshness does not guarantee availability.

Q: Can I download the actual video files? A: Yes. Turn on "Download videos" and the Actor saves each video to Apify's Key-Value Store with a persistent download URL. TikTok's own video URLs (playUrl) expire after a few hours — the downloaded copy doesn't.

Q: What engagement metrics do I get? A: Play count, like count, comment count, share count, and save/bookmark count — five engagement signals per video, all in one row.

Q: Can I get 1,000+ videos in one run? A: The schema max is 1,000 per run. Free Apify plan users are also limited to 10 total runs of this Actor. maxResults=1,000 is a cap, not a guarantee: slider-gated Hashtag, Search, or Profile posts surfaces can fail without rows.

Q: Why did my free-plan run stop with a free-tier message? A: Free Apify plan users get 10 runs of this Actor and up to 1,000 results per run. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.

Q: Can I get profile data (followers, bio) without scraping videos? A: Yes, when the public Profile identity is available. The profile summary (followers, following, total likes, video count, bio, verified status) is a separate record. Its posts grid is a separate surface and can be slider-gated.

Q: Can I run this on a schedule? A: Yes. Use Apify's built-in scheduler or trigger from Make, Zapier, or n8n. Monitor run status as well as row counts, because a blocked surface is an acquisition failure, not a genuine zero-result period.



All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss


Also Available

  • Direct API: https://opendata.best/api/v1/data — use with any HTTP client and your API key
  • Postman Collection: Fork and test — pre-built requests with example responses
  • GitHub: Collection source files — import JSON into any API client