TikTok Trending Sounds & Chart History API
Pricing
from $2.40 / 1,000 sound results
TikTok Trending Sounds & Chart History API
Find TikTok chart sounds gaining usage over three or seven days, with cached example videos. Export latest charts and available sound history for nine countries.
Pricing
from $2.40 / 1,000 sound results
Rating
0.0
(0)
Developer
Trending TikTok Data
Maintained by CommunityActor stats
0
Bookmarked
237
Total users
157
Monthly active users
11 days ago
Last modified
Categories
Features
Share
Find covered TikTok sounds gaining usage over three or seven days, export Popular and Viral Top 50 charts, or retrieve a sound's observed history. Get structured JSON or CSV for nine countries from a maintained, validated archive.
Each dataset item represents one sound on one country, chart, and UTC observation date. The Actor reads a maintained chart archive. It does not search arbitrary sounds or scrape videos on demand.
Get the latest TikTok trending sounds
{"mode": "latest","countries": ["US"],"chartTypes": ["popular"],"maxRows": 10}
This returns up to 10 sound rows from the latest validated US Popular chart. Each row states its actual observation_date.
Daily TikTok music charts for all nine countries
Use the daily bulk-export example to feed a dashboard, reporting job or music research database:
{"mode": "latest","countries": ["US", "DE", "BR", "JP", "KR", "CA", "FR", "MX", "TR"],"chartTypes": ["popular", "viral"],"maxRows": 900}
This returns up to 900 rows: nine countries × two charts × 50 sounds. At current pricing, 900 delivered rows cost $2.70 plus $0.00005 per start; one full export per day for 30 days costs $81.0015. The example uses a $2.71 maximum charge per run. Fewer available rows cost less. A lower spending limit can stop the export before all selected charts are delivered. The Actor's default Try input remains the small 10-row US sample.
To automate your own daily export:
- Open the example and save the configuration as your own Apify Task. Run it once and check its coverage and cost.
- In Apify Console, create a Schedule, select your Task and set it to once daily. For example, use
0 3 * * *with timezone UTC. Enable the Schedule after checking its next run time. - Download the completed run's dataset as JSON or CSV, or fetch it through the Apify API using the run's
defaultDatasetId. Check the Coverage and missing dates output before importing.
Each run creates a new dataset. Merge observations using observation_date + country + chart_type + sound_id. Repeated runs can return the same observed date, and selected charts can have different latest dates. Keep each row's actual date and collection timestamp.
TikTok sound and chart history backfill
{"mode": "history","countries": ["US"],"chartTypes": ["popular", "viral"],"fromDate": "2026-09-29","toDate": "2026-10-05","maxRows": 700}
The range is inclusive and limited to 30 calendar days per run. The Coverage and missing dates output lists available_dates and missing_dates for each country and chart.
This one-week US backfill returns up to 700 rows and costs up to $2.10 plus $0.00005 per start. Replace the example dates with the fixed dates you need. History dates do not advance automatically when a Task is scheduled; use latest for an ongoing daily export.
For a larger backfill, split the date range or countries into separate runs. maxRows is a global cap of at most 5,000. For all nine countries and both charts, use chunks of up to five dates: at most 4,500 rows per chunk. Check rows_written, truncated_by_max_rows, truncated_by_spending_limit and missing dates before treating a backfill as complete. Export each run's dataset and combine it using the row key above.
Add soundIds to any mode to filter up to 50 covered sound IDs. Keep IDs as strings. For example:
{"mode": "history","countries": ["US"],"chartTypes": ["viral"],"soundIds": ["7685822474004744200"],"fromDate": "2026-09-27","toDate": "2026-10-04","maxRows": 50}
This returns the archived observations in the selected range. An unknown sound returns no rows, and the coverage summary separates unknown IDs from known sounds outside the selected dates/charts.
Supported countries: United States (US), Germany (DE), Brazil (BR), Japan (JP), South Korea (KR), Canada (CA), France (FR), Mexico (MX), and Turkey (TR).
Track viral TikTok sounds gaining usage this week
{"mode": "insights","countries": ["US"],"chartTypes": ["viral"],"lookbackDays": 7,"sortBy": "usage_change","growthFilter": "rising","maxRows": 20}
This ranks sounds present in the selected end-date charts by their net change in source-reported sound-use count. Choose the Sound usage growth dataset view. Save this input as a Task and schedule it daily to refresh your shortlist; leave asOfDate blank for current results.
For percentage growth, set sortBy to usage_growth_pct and optionally minBaselineUsage to 1000 to exclude tiny baselines. growthFilter: "all" also returns declines, unchanged counts and sounds with an unknown baseline. maxRows is a global cap after filtering, not a separate limit per country.
Seven days compares the end date with exactly seven UTC calendar days earlier. Missing baselines give null growth. Negative count changes are preserved. Country identifies chart membership only; the sound-use count is not country-specific, so do not add the same sound's count across charts or countries.
Current queries use the latest common chart date with fresh collection for all selected series. If no recent common date exists, the run fails clearly. An explicit asOfDate requests historical insights and can return partial coverage.
Example TikTok videos for growing sounds
Add "includeExamples": true to an insights request to include up to three cached videos using each sound. Choose the Example videos dataset view for CSV links; JSON also includes caption, creator handle, publication time and available engagement counts.
{"mode": "insights","countries": ["US"],"chartTypes": ["viral"],"lookbackDays": 7,"includeExamples": true,"maxRows": 20}
Examples are collected centrally for the ten strongest positive seven-day changes in each country/chart, then deduplicated by sound and country. Other sounds return examples when they are already cached. The examples are source-selected: published_at shows each video's age, and examples_collected_at reports when its metrics were fetched. Missing engagement counts are null.
The examples_status field is available, stale, not_collected, source_empty or source_error. Samples expire after 36 hours. An explicit asOfDate returns an empty list with historical_examples_unavailable. Sounds without examples still return their growth result. With examples disabled, the existing growth row fields remain unchanged.
Three nested examples are included in the sound-result price: one row, one result charge. The coverage summary separates availability across all eligible rows from example_rows_written and examples_written, which count what was actually delivered. Example links can become unavailable on TikTok after collection.
TikTok sound data: usage counts, ranks and music links
Latest and history modes retain the following flat fields for JSON and CSV exports:
| Field | Meaning |
|---|---|
observation_date, country, chart_type, rank | UTC date and ranked chart position. |
sound_id, title, artist | TikTok sound ID, title, and artist. Sound IDs are strings. |
usage_count | Source-reported sound-use count, not video views. |
rank_change, usage_change | Change versus the previous adjacent UTC date, or null if that date or sound is unavailable. Positive rank change means the sound climbed. |
previous_observation_date | Prior validated chart date when the previous calendar day exists, otherwise null. |
is_original_sound, is_commerce_music | Source flags. The commerce flag does not grant or establish music licensing rights. |
duration_seconds, tiktok_url, cover_url | Sound length and source links where available. |
spotify_url, apple_music_url, youtube_music_url | Source-provided music service links when available; otherwise null. |
source_updated_at, collected_at | Source chart update time and collection time. |
Rank and usage count belong to the observation date. Title, artist, artwork, and music service links come from the current normalized sound record, not the observation date.
Insights retains the sound metadata but uses the requested period for rank_change and usage_change. It replaces previous_observation_date with explicit baseline fields:
| Field | Meaning |
|---|---|
record_type, calculation_version | sound_insight and calculation version 1. |
baseline_date, lookback_days | Exact baseline date and elapsed three- or seven-day period. |
baseline_rank, baseline_usage_count | Values observed at the exact baseline, or null. |
usage_growth_pct | Signed percentage change, rounded to four decimals; null for a missing or zero baseline. |
growth_status | growing, declining, flat or unknown. |
baseline_status | present, chart_missing or sound_absent. |
observed_days, expected_observations | Dates the sound was observed in the window, versus four or eight expected observations. |
coverage_status | complete, endpoints_only or missing_baseline. An endpoint comparison is valid despite gaps in between. |
baseline_collected_at | Collection time for the baseline observation, or null. |
One insight result is one sound in one country/chart for one date and period. The same sound in several selected chart contexts can produce several rows. Source chart rankings may update less often than the usage counts; compare source_updated_at with collected_at.
TikTok sound chart coverage and pricing
The run's Coverage and missing dates output reports selected countries/charts, actual available and missing dates, total available records, records written, and whether the run stopped at maxRows or the spending limit. A zero-result request writes no dataset items and still reports coverage.
The primary billable unit is one dataset row: one chart observation or one sound-growth result. Both cost $3 per 1,000 rows, plus the $0.00005 start event at the default memory. A 20-row shortlist costs $0.06 plus start; running it daily for 30 days costs $1.80 plus start events. Apify's displayed pricing is authoritative. Historical gaps, filters and spending limits can reduce the delivered count and bill. Summaries and errors are not written as paid dataset rows.
For insights, the coverage output also reports the resolved date, candidate and comparable counts, missing baselines, sequential filter exclusions and total eligible results. If maxRows is omitted, insights defaults to 20, latest to 50 per selected chart, and history to 5,000. The Try form starts with 10.
For reliable automation, save an Apify Task with your preferred countries, charts, and dates, or call the Actor through the Apify API. The Actor returns stored chart observations and does not need an Apify proxy.
More TikTok trend data: videos, hashtags, top ads and Instagram audio
We publish four related Actors. Each has its own country coverage, history dates and pricing:
- TikTok Trending Videos: up to 100 top videos per 7- or 30-day chart in the US, Japan, Vietnam, Thailand and Indonesia, with creators, views, links and stored history.
- TikTok Hashtag Trends: 100 trending hashtags per 7- or 30-day Creative Center chart in the US, UK, Germany, France, Brazil, Canada and Australia, with post and view counts, trend curves, top creators and history.
- TikTok Top Ads: daily top-20 Creative Center ad samples for the UK, US, Germany and Brazil, with creative links, likes, CTR percentile rankings and spend categories.
- Instagram Reels Audio Tracker: dated Reel usage counts with 1-day and 7-day growth for a tracked set of Instagram sounds.
Delivery monitoring
The chart service stores operational receipts containing the Apify run/build IDs, timestamps, export mode, growth period, example request/return counts, elapsed time, row counts, platform event counters, owner/paid/free classification, spending-limit flags, and error category. An ad-hoc Apify webhook confirms the final run status and event counters after the run ends. This lets us investigate incomplete exports. Receipts contain no API tokens, customer identity, raw input, or dataset contents.