TikTok Hashtag Stats — Public Counts & Metadata avatar

TikTok Hashtag Stats — Public Counts & Metadata

Pricing

from $0.50 / 1,000 results

Go to Apify Store
TikTok Hashtag Stats — Public Counts & Metadata

TikTok Hashtag Stats — Public Counts & Metadata

Look up public TikTok hashtag counters, challenge IDs, descriptions and commerce flags through lightweight HTTP. Up to 1,000 input entries; source values may be missing or approximate.

Pricing

from $0.50 / 1,000 results

Rating

5.0

(1)

Developer

Coor Yu

Coor Yu

Maintained by Community

Actor stats

2

Bookmarked

40

Total users

20

Monthly active users

5 days ago

Last modified

Share

TikTok Hashtag Stats collects public aggregate counters and metadata from TikWM's hashtag-info endpoint: challenge IDs, video/view counters, descriptions and commerce flags. Use it for hashtag research and repeated snapshots, not individual video exports.

Precision matters: integer output is not proof of exact or complete TikTok totals. The Actor converts upstream values to integers; it does not independently verify them. In particular, video_count is mapped from the provider's user_count field, so its underlying meaning and accuracy depend on that provider.

Limits: The input schema accepts at most 1,000 hashtag entries per run. Apify Free-plan runs process only the first 50 normalized unique hashtags, producing at most 50 result rows. A run with no successful lookup rows finishes as FAILED.

Quick start

Example input, not a guarantee that these tags currently return data:

{
"hashtags": ["roblox", "minecraft", "skincare"],
"maxConcurrency": 4,
"requestTimeoutSecs": 10,
"maxRequestRetries": 2
}

Supply an array of tag names, not hashtag URLs. Empty entries are ignored, leading # characters are stripped, and case-insensitive duplicates are removed. Use the schema's array format rather than the internal comma-separated-string compatibility path.

The Actor uses lightweight HTTP only: no Chromium, TikTok account login, user cookies or configured proxy is used. No user-supplied upstream API key is required. Running it on Apify requires an Apify account, and API access requires appropriate Apify authentication.

Input fields

FieldDefaultSupported behavior
hashtagsrequiredArray of names, schema maximum 1,000 entries. Normalized and deduplicated before lookup.
maxConcurrency41–12 in-flight workers. Request starts remain spaced by the shared gate.
requestTimeoutSecs103–30 seconds per HTTP attempt.
maxRequestRetries20–3 retries after the initial attempt; temporary failures rotate between the two TikWM host variants.
proxyConfigurationdisabledLegacy compatibility field, ignored even if proxy settings are supplied.

Paid plans have no developer-set 50-row restriction, but the 1,000-entry input limit and runtime/budget limits still apply. The runtime also rejects more than 1,000 normalized unique tags on paid runs. Free-plan truncation occurs before that runtime check; it does not remove the schema's input limit.

Output and numeric semantics

One default-dataset row represents a successful upstream response. Export results as JSON, CSV or Excel in Apify.

Output fieldActual mapping and interpretation
hashtagProvider cha_name, falling back to the requested tag.
platformAlways tiktok.
challenge_idProvider id, stringified; empty if missing.
video_countInteger conversion of upstream user_count. This is the Actor's field name, not independent confirmation of the metric's definition.
view_countInteger conversion of upstream view_count, intended as the provider's hashtag view total. Not independently verified.
descriptionProvider desc, or an empty string.
is_commerce_hashtagBoolean conversion of provider is_commerce; missing values become false, not confirmed non-commerce status.
share_meta_descCurrently always an empty string; no share description is extracted.
_sourceCurrently the fixed legacy text Lightweight public hashtag API (exact integers). This label is not an accuracy test.
errornull on dataset result rows. Lookup errors are stored separately.

The mapper does not expand K, M, B or T strings. Missing or unparseable counters become null; integer conversion may truncate a numeric non-integer value. A successful response can still be saved and billed when one or both counters are missing. There is no per-row scrape timestamp, so record the run time when comparing snapshots. These rows are third-party-source observations, not audited complete populations.

ERRORS in the run's Key-Value Store contains failed lookups with their requested tag and error text. They are not default-dataset result rows. RUN_SUMMARY records requested/completed/succeeded/failed counts and interruption status. A batch with at least one successful response can finish successfully while retaining errors for other tags; if every lookup fails, the run fails. Neither a successful run nor a non-null counter proves the statistic is current or complete.

Current pricing

Current effective event prices in USD:

Apify planPer saved result rowPer 1,000 result rows
FREE$0.00250$2.50
BRONZE, SILVER, GOLD, PLATINUM, DIAMOND$0.00050$0.50

The FREE plan is not a zero-priced event tier. Result billing uses apify-default-dataset-item, automatically attached to saved default-dataset rows. Duplicate inputs and failed lookups stored in ERRORS do not create result events. Successful rows with missing counters still count as results.

apify-actor-start costs $0.005 per GB of allocated memory, minimum one event per run. The current default allocation is 256 MB, so the minimum startup event applies; higher memory can require more startup events. Startup can be charged even if no results are produced.

Apify platform usage is billed separately to the running user, including compute, transfer and storage—even for empty or failed runs. Result-fee figures are not all-inclusive run totals. There is no downstream Apify Actor call in this implementation, but it depends on an independent HTTP service. Check the Pricing tab for your effective plan price and use a budget appropriate to your workload.

Reliability and batch size

  • There is one aggregate lookup per tag, not video pagination or a date/region-filtered history mode.
  • Request starts are spaced by about 3.1 seconds within a run. Default workers overlap latency; increasing concurrency does not remove the gate. Independent runs can share an outbound IP and still trigger rate limits.
  • The configured no-retry estimate for 1,000 tags is about 52 minutes before startup. Retries can extend it; use smaller batches and adequate timeout. This is not a performance guarantee.
  • Temporary failures use bounded retries/backoff; recognized permanent missing-tag responses stop retrying. Endpoint changes, access blocks, malformed responses and rate limits can still prevent delivery.
  • Saved partial results are billable even if the run is later interrupted or fails. Graceful abort handling attempts to flush buffered rows, but abrupt termination can leave a partial dataset.
  • Only public endpoint data is collected. No private-content access or access-control bypass is offered. Follow applicable laws and platform terms.

FAQs

Are these exact counts? They are integer-converted provider values, not independently verified totals. video_count specifically comes from user_count; inspect that provenance before treating it as a count of videos.

Does this return hashtag videos? No. It returns aggregate lookup rows. Use the TikTok Scraper for individual public videos and their metadata.

Why are some counters blank? Missing or unparseable upstream values become null, while the successful lookup can still produce a result row. Review both the dataset and ERRORS.