One Country Code, This Week: Social Media Trends API
Social media trends API, 30 credits: US breakout post, three sounds, three hashtags, three Google searches. Pinterest, Apple Music, Product Hunt are separate.
A social media trends api call with country_code=US returned one breakout TikTok post, three sounds, three hashtags, and three Google searches, and charged 30 credits. Pinterest Trends, Apple Music charts, and Product Hunt each need their own request.
If you are wiring a country check for what's trending on social media, start with that US board and add the other three calls yourself. The board was generated at 2026-10-04T15:49:30.941Z. "This week" is that generated_at. The breakout video's published_at is 2026-09-21T02:35:06.000Z, thirteen days earlier. The Pinterest rows carry as_of 2026-09-30, four days before the pull on 2026-10-04.
The method string on the US board says music charts and Pinterest are not included yet, so the later sections are separate GETs. The JSON below is trimmed from the live bodies, and request ids are left out.
Each social media trends api call in this pull used one API key.
| Call | Country? | Credits | Came back | Is not |
|---|---|---|---|---|
GET /v1/prism/trend-board?country_code=US&limit=3 | country_code | 30 | 1 post, 3 sounds, 3 hashtags, 3 searches | a time series; ZZ is HTTP 400 and 0 credits |
GET /v1/pinterest/trends?country=US&type=growing&limit=3 | country, not country_code | 10 | 3 growing terms, as_of 2026-09-30 | inside the trend board |
GET /v1/apple_music/charts?country=us&type=songs&limit=3 | country=us | 1 | Top Songs ranks 1-3 | the rest of the chart |
GET /v1/producthunt/launches?topic=developer-tools | no country param | 1 | 50 launches, feed order, first CoreSpeed | a country board, a vote rank; null engagement is not 0 |
What does one country code return this week?
The US request and the four counts
GET /v1/prism/trend-board?country_code=US&limit=3 returned one breakout post, three sounds, three hashtags, and three Google searches, and charged 30 credits. That payload is this call's board, not a stored series. GET /v1/prism/trend-board is the country board under Prism composites. Send Cache-Control: no-cache when you want this call computed again instead of the 15-minute cache. period was not sent. The body has period_days 7, cached false, and credits_used 30. Client curl time_total was 21.0 seconds. The response body has no latency field, so that number stays a client measurement.
curl -sS \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache" \
"https://www.socialcrawl.dev/v1/prism/trend-board?country_code=US&limit=3"{
"data": {
"country": "US",
"period_days": 7,
"generated_at": "2026-10-04T15:49:30.941Z",
"unavailable": [],
"counts": {
"feed_rows": 24,
"feed_rows_in_country": 23,
"too_young": 6,
"creators_checked": 5,
"creators_skipped": 4,
"below_cut": 0,
"sounds_checked": 3
}
},
"credits_used": 30,
"cached": false
}The arrays on that body hold 1 breakout post, 3 sounds, 3 hashtags, and 3 searches. unavailable is an empty array. limit=3 filled sounds, hashtags, and searches. Breakout stopped at one row, under the cap. creators_skipped_by_reason records all four skips as too_few_author_posts.
Every source on the payload is ok: true. local_feed returned 24 rows, hashtag_board 3, google_trending 3. creator_pages returned 50 rows across 5 calls and 0 failures. sound_videos returned 38 rows across 3 calls and 0 failures. sound_details returned 3 rows across 3 calls and 0 failures.
The TikTok developer welcome pages that rank for a tiktok trends api query describe login, sharing, and content posting. This board also carries three Google searches. The method string says the post list is TikTok's local For You feed for a phone in the US, the hashtags are TikTok's trending-hashtag board for the US over the last 7 days, and the searches are Google Trends Trending Now for the US over the last 7 days, which that string calls the longest window Google publishes.
One breakout post, and it has no title
The only breakout row is @natstardiaries.
{
"author": "natstardiaries",
"url": "https://www.tiktok.com/@natstardiaries/video/7687811465029471519",
"region": "US",
"views": 4634696,
"published_at": "2026-09-21T02:35:06.000Z",
"vs_creator": 3315.23,
"author_median_views": 1398,
"author_posts_compared": 9
}The method string on this response defines a breakout as views at least 3 times the median of that author's other posts. Pinned posts and posts under 48 hours are left out, and at least 8 posts are compared. Dividing 4,634,696 by 1,398 gives 3,315.23, which is vs_creator. Nine posts were compared, and 2026-09-21 is older than 48 hours, so this row clears the rule the same string states. The object has no title, caption, likes, or comments. A tiktok trends blurb would need a caption. engagement_rate is not on the row.
creators_checked is 5. Four creators were skipped for too few posts, six feed rows were too_young, and below_cut is 0. The breakout list is only the authors this call read. feed_rows_in_country is 23 out of 24 feed rows.
Two of the three sounds are established
The section key is rising_sounds. longslyrics and iqbalhasanjewel are established, and orby143 is new.
| title | status | uses_on_feed | total_videos | feed_views | recent_videos (3-day window) | recent_share |
|---|---|---|---|---|---|---|
| original sound - longslyrics | established | 1 | 13180 | 33472953 | 0 | 0 |
| original sound - iqbalhasanjewel | established | 1 | 21223 | 19500847 | 0 | 0 |
| original sound - orby143 | new | 1 | 3438 | 6289221 | 1 | 0.08 |
artist is null on all three. uses_on_feed is 1 on each. The method string dates the first page of videos for each sound and counts how many fall in the last 3 days. Only "original sound - orby143" has recent_videos 1 and recent_share 0.08. The other two are 0 on both fields.
Hashtags in the default 7-day window
Hashtag growth, in the method string, compares the last third of TikTok's daily popularity curve with the first third. These three tags are the trending hashtags block for the default 7-day window on this body. All three are rising: true, from_zero: false, censored: false, with first_seen_in_window.date of 2026-09-27 and curve_points 7.
| rank | tag | posts | window_views | growth_ratio | rising | first_seen_in_window |
|---|---|---|---|---|---|---|
| 1 | reggie | 71821 | 789016635 | 3.14 | true | 2026-09-27 |
| 2 | cornell | 47323 | 559097435 | 6.69 | true | 2026-09-27 |
| 3 | cornelluniversity | 47030 | 424137221 | 7.07 | true | 2026-09-27 |
Those seven curve points live inside this payload, and the next call does not diff them. window_views here and search_volume on the search rows are different units, so do not add those two fields together.
Three US searches from Trending Now
A trending topics api lookup, on this route, is three Google Trends Trending Now rows for the US. The method string says each row's first-seen time is Google's own start time.
| rank | title | search_volume | increase_percent | started_at | active | categories |
|---|---|---|---|---|---|---|
| 1 | wnba playoffs | 5000000 | 1000 | 2026-09-29T12:10:00.000Z | true | sports |
| 2 | christa pike | 5000000 | 1000 | 2026-09-28T23:00:00.000Z | true | law_and_government |
| 3 | colts vs commanders | 500000 | 1000 | 2026-10-04T03:10:00.000Z | true | sports |
ended_at is null on all three. increase_percent is 1000 on every row, as returned and not rescaled. Rank 3 started the morning of the pull, at a tenth of the volume on the first two rows, with the same increase_percent.
Google's Trending now help lists windows of 4 hours, 24 hours, 48 hours, and 7 days. This board's search block is the 7-day window the method string describes. For a Google Trends client on its own, use an earlier Google Trends write-up. Vendor pricing is in Best Google Trends APIs (2026), not on this board.
No history between calls, and ZZ returns HTTP 400
The method string says nothing is stored between calls and no history is kept, so this is today's board, and a repeat within 15 minutes is served from cache. This run did not call the US board twice, so there is no cache-hit body to show. The same string says no language model is used. policy_version on the US body is n22-2026-09-23.
country_code=ZZ is the refusal check. It returned HTTP 400, credits_used 0, error.type INVALID_REQUEST, and retryable false. Client curl time_total was 0.34 seconds. HTTP 400 with credits_used 0 means the code was rejected before a board was built.
curl -sS \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache" \
"https://www.socialcrawl.dev/v1/prism/trend-board?country_code=ZZ"{
"success": false,
"error": {
"type": "INVALID_REQUEST",
"message": "Google Trends publishes no Trending Now list for ZZ, so there is no board for it. Pass one of the 125 countries Google Trends covers, such as DE, US, GB or KR.",
"status": 400,
"doc_url": "https://www.socialcrawl.dev/docs/errors#invalid-request",
"retryable": false
},
"credits_used": 0
}The error string says 125 countries. Google's help says Trending now covers 100+ countries and regions. No second real country was called.
What do Pinterest Trends return for that country?
The country is still the US, on a parameter named country. These Pinterest Trends rows are dated 2026-09-30, while the trend board's generated_at is 2026-10-04. A longer look at retrieval options is in Pinterest data APIs. This pull proved country=US and type=growing with limit=3. The endpoint note also names seasonal, top_monthly, and top_yearly. This pull did not request those types, and it sent no other country. The call charged 10 credits, with cached false, total 3, dropped 0, and pagination.has_more false.
curl -sS \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache" \
"https://www.socialcrawl.dev/v1/pinterest/trends?country=US&type=growing&limit=3"| rank | term | search_index | weekly_change | monthly_change | yearly_change | seasonality | as_of |
|---|---|---|---|---|---|---|---|
| 1 | bryan hodukavich | 100 | 1 | 100.01 | 100.01 | 0.32447916 | 2026-09-30 |
| 2 | resident evil bryan | 58 | 0.5 | 100.01 | 100.01 | 0.32244167 | 2026-09-30 |
| 3 | lord verity | 55 | -0.1 | 100.01 | 100.01 | 0.3187373 | 2026-09-30 |
country and market are US on every row. as_of is 2026-09-30 on every row. The pull is 2026-10-04 UTC, so the table is four days behind the request, not current to the minute.
The change fields are fractions on the wire. The endpoint note reads 0.3 as +30% and 100.01 as a term that was near zero before. The table prints the values as returned, including weekly changes of 1, 0.5, and -0.1.
search_index 100 is the top of these three rows. limit=3 did not return a longer list. Three different 0 to 100 scales show up around this number. Google Explore divides a sample by total searches and scales the result from 0 to 100. Pinterest's own plot sets the high point of a term to 100 and the low point to 0. This search_index is a third field, on a three-row growing answer.
The official Trends docs put the region in the path, can include a weekly series inside today's response, and say callers cannot retrieve trends for past dates. This body has three terms and no weekly series.
How do you pull Apple Music charts for a country?
An apple music charts api request uses country=us in lowercase and type=songs. The response country_code is US, chart is songs, and post.ext.trend.chart_title is Top Songs. updated_at is 2026-10-04T15:49:48.000Z on all three rows. The call charged 1 credit, with cached false and total 3. Client curl time_total was 18.2 seconds. limit=3 is the whole chart this pull captured, so ranks past 3 are not in the body.
curl -sS \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache" \
"https://www.socialcrawl.dev/v1/apple_music/charts?country=us&type=songs&limit=3"| rank | title | artist (author.username) | published_at |
|---|---|---|---|
| 1 | Solar Eclipse | Drake & Don Toliver | 2026-10-02T00:00:00.000Z |
| 2 | Quebec | Drake | 2026-10-02T00:00:00.000Z |
| 3 | Cold Shoulder | Drake, Don Toliver & Yebba | 2026-10-02T00:00:00.000Z |
Rank 1 links to https://music.apple.com/us/album/solar-eclipse/6818209777?i=6818209989. All three share the release date 2026-10-02. published_at is midnight UTC on that date. This pull has no play counts. On these rows computed.engagement_rate and computed.estimated_reach are null. content_category is other on rank 1, null on rank 2, and other on rank 3.
These rows use the unified schema. The song title is content.text, the artist string is author.username, and the chart metadata sits on ext.trend. Apple Music Feed is bulk catalog access. This response is a country chart, and the trend-board method string already left music charts off that board. The endpoint note also lists albums, music-videos, and playlists. This apple music charts api call did not request them, so there is no sample for those types here.
What does Product Hunt return if you skip the country?
This call has no country and no country_code. topic=developer-tools is a slug. It charged 1 credit, with cached false. total is 50, dropped is 0, page_size is 50, has_more is false, and next_cursor is null. The data object has keys items, total, and dropped only.
curl -sS \
-H "x-api-key: $SOCIALCRAWL_API_KEY" \
-H "Cache-Control: no-cache" \
"https://www.socialcrawl.dev/v1/producthunt/launches?topic=developer-tools"Order is array order. Position 1 is CoreSpeed, maker Justin Jincaid, published_at 2026-09-24T08:34:40.000Z, tagline "One MCP for everything your agents need: apps, memory, tools", at https://www.producthunt.com/products/corespeed. published_at is when the post was created. ext.updated_at on that row is 2026-10-04T08:47:54-07:00. computed.language on that row is en, and content_category is other.
{
"post": {
"url": "https://www.producthunt.com/products/corespeed",
"content": {
"text": "One MCP for everything your agents need: apps, memory, tools"
},
"author": { "display_name": "Justin Jincaid" },
"engagement": {
"views": null,
"likes": null,
"comments": null,
"shares": null,
"saves": null
},
"published_at": "2026-09-24T08:34:40.000Z",
"ext": {
"title": "CoreSpeed",
"updated_at": "2026-10-04T08:47:54-07:00"
}
}
}The next rows, still in feed order, are opensend.cc (Kamal Panara), DocsAlot MCP Connector (Haya Jawed), Sente (Yuki Hamada), and Octri.dev (fmerian). The other 45 titles stay in the raw response.
On all 50 items, engagement.views, likes, comments, shares, and saves are null. Zero items have a non-null engagement value. The keys rank, website, votes, and vote_count are absent. A null engagement field is an absent measurement. Store it as missing, and leave the list in feed order. One raw TikTok trend item in the wild prints user_count: 0 with no note on whether that zero was measured (novi/tiktok-trend-api). This payload leaves engagement null and omits votes, rank, and website. Product Hunt's own docs state both 450 and 900 requests per 15 minutes. This pull does not measure that quota.
How do you make the first call?
- Create a key for the SocialCrawl API at signup. The pull did not record a free-credit grant.
- The first social media trends api call is the US trend-board curl in the first section. Send
Cache-Control: no-cachewhen you need a fresh board rather than the 15-minute cache. - Then request
/v1/pinterest/trends?country=US&type=growing&limit=3,/v1/apple_music/charts?country=us&type=songs&limit=3, and/v1/producthunt/launches?topic=developer-tools. The ZZ trend-board call is the refusal check. Those five bodies charged 30, 0, 10, 1, and 1 credits. The sum is 42. Price the set from thosecredits_usedfields.credits_remainingon the responses is not a ledger, because the calls overlapped other traffic. - Use the explorer to see your data before writing a single line, and the API reference for the four paths above.
Frequently asked questions
What does one country code return from a social media trends API?
On 2026-10-04, country_code=US with limit=3 charged 30 credits and returned cached: false. The body held one breakout post, three sounds, three hashtags, and three Google searches. unavailable was an empty array. Pinterest, Apple Music, and Product Hunt each need their own request. They are absent from that body.
Does the trend board keep a history between calls?
No. The method string says nothing is stored between calls and no history is kept, so the payload is today's board, and a repeat within 15 minutes is served from cache. This run did not repeat the US call, so there is no cache-hit body to show. The seven hashtag curve_points sit inside this one payload. A later call does not diff them for you.
What does the period parameter change?
This call did not send period. The response period_days is 7. The method string describes the hashtag board and Google Trending Now as the last 7 days on this body. The endpoint note says period only changes the TikTok hashtag window, and that there is no days parameter. This pull did not send period=30, so that body is not shown.
Do Pinterest Trends and Apple Music charts take a country?
Yes. The parameter name on both is country. This pull sent US for Pinterest and us for Apple Music. Pinterest as_of was 2026-09-30. Apple Music returned Top Songs ranks 1 through 3 for 1 credit. ZZ was tested on the trend board only, not on these two calls.
Does Product Hunt filter launches by country?
No. topic=developer-tools returned 50 launches in feed order, for 1 credit. Views, likes, comments, shares, and saves are null on all 50 items. The keys rank, website, votes, and vote_count are absent. There is no country parameter on this request.
The US curl is in the first section. Run it in the explorer, or read the four paths in the API reference. Google searches as their own client are covered in an earlier Google Trends write-up. The Pinterest retrieval write-up is Pinterest data APIs.
Related posts
Best Multi-Platform Social Search API: 129 Rows, 4 Credits
Best multi-platform social search API: one coldplay call returned 129 rows from TikTok, Instagram, YouTube, and Reddit. Four sources were billed 1 credit each.
LinkedIn profile API: one call for the whole profile
One LinkedIn profile API call on Bill Gates's public URL returned 40,702,334 followers, 3 jobs, and 2 schools for 5 credits. The 50 posts were a separate call.
Sentiment Analysis API: Every Comment Scored, Same Price
SocialCrawl's sentiment analysis API scores every TikTok, Instagram, YouTube and X comment for sentiment and intent, same credits, judgments=off to disable.
