# Google Trends Trending Now + Bluesky, Wikipedia & Songs (`mortenm/social-trends-radar`) Actor

What is trending right now on Google Trends, Bluesky, Mastodon, Wikipedia, Hacker News and Apple Music charts (plus YouTube with your key), in one dataset. Finds topics trending on several platforms at once and flags your keywords. Official public feeds only: no logins, no proxies.

- **URL**: https://apify.com/mortenm/social-trends-radar.md
- **Developed by:** [Lead Notebook](https://apify.com/mortenm) (community)
- **Categories:** Social media, Marketing, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 trend items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Trends Trending Now + Bluesky, Wikipedia & Songs

**See what is trending right now on several platforms in one run.** This Actor reads the official, public trend feeds of Google Trends, Bluesky, Mastodon, Wikipedia, Hacker News and the Apple Music charts (plus YouTube if you add your own API key) and returns one clean dataset row per trending item. It also points out **topics that are trending on more than one platform at the same time**, and it flags the **keywords you care about**.

It is built for **marketers, content creators, social media managers, newsrooms, SEO teams, researchers and AI agents** that need a quick, structured answer to "what are people talking about right now?"

No logins, no proxies, no scraping of closed platforms. Only public feeds that the platforms themselves publish.

### What it does

- **Google Trends trending searches** ("Trending now") for up to 10 countries, with the approximate search volume (for example `200K+`) and the news stories Google links to each trend.
- **Bluesky trending topics** (global), with post counts, status (hot, trending, cooling), category and a few example accounts.
- **Mastodon trending hashtags and links** for one or more instances (default `mastodon.social`), with today's uses, accounts and 7-day totals.
- **Wikipedia most read articles** for up to 5 languages, with views, a short description and extract.
- **Hacker News front page**, with points and comment counts.
- **Trending songs** from the Apple Music "most played" chart per country (falls back to the iTunes top songs chart if that feed is down).
- **YouTube most popular videos** per country, if you add your own YouTube Data API key.
- **Cross-platform trend detection**: titles are normalised (case, accents, punctuation, `#hashtags` such as `#TaylorSwift`) and matched across platforms. Matching is deliberately conservative: a wrong match is worse than a missed one. Songs are matched on the artist, not on the song name.
- **Keyword monitoring**: give a list of words or phrases (your brand, products, competitors, topics). Each item lists the keywords it matched (whole words, case and accent insensitive). You can also return only matching items.

### Sources and attribution

| Platform | Feed used | Scope | Attribution / licence |
|---|---|---|---|
| Google Trends | `trends.google.com/trending/rss` (public RSS) | per country | Data from Google Trends. Search volume is an approximate range published by Google. |
| Bluesky | `public.api.bsky.app` `app.bsky.unspecced.getTrends` (fallback `getTrendingTopics`) | global | Bluesky public AppView API. Bluesky marks these endpoints as "unspecced", so they can change. |
| Mastodon | `/api/v1/trends/tags` and `/api/v1/trends/links` of each instance | per instance | Public trends API of each Mastodon server. Trends are what that server sees, not the whole fediverse. |
| Wikipedia | Wikimedia featured feed (`api.wikimedia.org/feed/v1`) | per language | Wikipedia article descriptions and extracts are available under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). Attribute Wikipedia and link to the article when you republish them. |
| Hacker News | HN Search API by Algolia (`hn.algolia.com`) | global | Public API. Links go to the story and the HN discussion. |
| Apple Music | Apple Marketing Tools RSS "most played" songs, fallback iTunes Store top songs RSS | per country | **Charts data from Apple.** Keep the Apple Music link when you show a song. |
| YouTube (optional) | YouTube Data API v3 `videos?chart=mostPopular` with **your own key** | per country | Uses your API key and quota. The key is never written to the output or the log. |

Every row has an `attribution` field and a `sourceUrl` (the public endpoint it came from; never your API key).

### Input example

```json
{
  "sources": ["googleTrends", "bluesky", "mastodon", "wikipedia", "hackerNews", "appleMusic"],
  "countries": ["US", "GB"],
  "maxItemsPerFeed": 20,
  "watchKeywords": ["AI", "Taylor Swift", "electric cars"],
  "onlyKeywordMatches": false,
  "wikipediaLanguages": ["en", "de"],
  "mastodonInstances": ["mastodon.social"]
}
```

- **Countries** are two-letter codes (US, GB, DE, NO, BR, IN ...). They apply to Google Trends, Apple Music and YouTube.
- **Max items per feed** is the top N of each feed (each platform × country / language / instance). Some platforms publish fewer: Bluesky up to 25, Mastodon up to 20, Google Trends usually 10 to 20 per country.
- To add YouTube, put your key in **YouTube Data API key** and select YouTube.

### Output example

One row per trending item. The example below is illustrative.

```json
{
  "source": "googleTrends",
  "sourceLabel": "Google Trends",
  "feed": "trending_now",
  "region": "US",
  "language": null,
  "instance": null,
  "rank": 1,
  "title": "taylor swift",
  "url": "https://trends.google.com/trends/explore?geo=US&q=taylor%20swift&date=now%207-d",
  "description": "Taylor Swift's new album breaks streaming records",
  "metric": { "name": "approx_searches", "value": 2000000, "display": "2,000,000+ searches" },
  "stats": {},
  "category": null,
  "startedAt": "2026-10-12T12:20:00.000Z",
  "publishedAt": null,
  "imageUrl": "https://encrypted-tbn3.gstatic.com/images?q=tbn:example",
  "related": [
    { "title": "Taylor Swift's new album breaks streaming records", "url": "https://news.example.com/taylor-swift-album", "source": "Example News" }
  ],
  "matchedKeywords": ["Taylor Swift"],
  "crossPlatform": { "platformCount": 3, "platforms": ["googleTrends", "bluesky", "wikipedia"], "clusterId": "x-3f1c2a9b0e" },
  "attribution": "Google Trends (trends.google.com), \"Trending now\" RSS feed",
  "sourceUrl": "https://trends.google.com/trending/rss?geo=US",
  "fetchedAt": "2026-10-12T12:52:39.691Z"
}
```

`metric` is the platform's own popularity number: approximate searches (Google Trends), posts (Bluesky), uses today (Mastodon), views (Wikipedia, YouTube), points (Hacker News) or chart position (Apple Music). `stats` holds extra numbers such as 7-day Mastodon totals, HN comments or YouTube likes.

Rows are ordered so the most prominent items come first: every feed's #1, then every feed's #2, and so on.

#### Run summaries

- **TRENDS_SUMMARY** (key-value store): the cross-platform trends of this run (sorted by number of platforms, then rank), keyword hits, and the status of every feed (`ok`, items, which feed was used, error, duration).
- **RUN_SUMMARY**: counts (collected, duplicates removed, delivered, cut by your charge limit) and the number of charged items.

### Pricing

**$1.00 per 1,000 trend items** (pay-per-event, event `trend-item`). Any per-run start fee is shown on the Pricing tab. You are charged once per dataset row delivered:

- **Failed feeds are free.** If a platform is down, you get the others and pay only for what was delivered.
- Duplicate items within a run are removed before delivery, so you never pay twice for the same item.
- If your maximum charge per run is reached, the Actor stops delivering (it keeps the most prominent items) and tells you how many were left out.
- With "Only return items that match a keyword", you pay only for matching items.

A typical run (6 platforms, 1 country, 20 items per feed) returns about 120 to 140 items.

### Limits and good to know

- The data is **what each platform publishes**, nothing more. The Actor does not estimate or invent numbers.
- Google Trends `approx_traffic` is a **range** ("200K+"); `metric.value` is its lower bound.
- **Bluesky trends are global**; Mastodon trends are per server. Hacker News is global.
- Mastodon instances must be plain public hostnames (for example `fosstodon.org`); IP addresses, ports and internal names are rejected.
- There is **no historical data**: each run is a snapshot of "right now". To build a history or get alerts, run it on an [Apify Schedule](https://docs.apify.com/platform/schedules) (for example every hour) and connect a webhook or integration (Slack, email, Google Sheets, Make, Zapier) to the results.
- Cross-platform matching is text based and conservative. It can miss a story told in different words on two platforms.
- Platforms can change or retire these feeds. If one breaks, that feed is reported as failed (free) and the rest of the run continues.

### FAQ

**Why not TikTok, Instagram or X (Twitter)?**
Their terms prohibit automated collection, and getting their data usually means logins, proxies and accounts that get banned. This Actor only uses official public feeds and APIs: no logins, no proxies, no bans, and nothing that breaks the platforms' rules.

**Can I use it from an AI agent or an automation?**
Yes. Call it through the Apify API, MCP server or integrations; the output is a uniform JSON schema with one row per trend, and `TRENDS_SUMMARY` gives a compact overview for an LLM to read.

**How fresh is the data?**
As fresh as each feed: Google Trends, Bluesky, Mastodon and Hacker News update continuously; Wikipedia's most-read list covers the previous full day (UTC); Apple charts update daily.

**Does it need a YouTube API key?**
Only for YouTube. All other platforms are keyless. You can create a free key for the YouTube Data API v3 in the Google Cloud console; the requests count against your own quota.

### More tools from the same developer

- [Local Business Leads Enricher](https://apify.com/mortenm/local-business-prospect-qualifier): paste business websites, get emails, phones, contact forms, services and tech stack with the source page for each.
- [Web Design Leads](https://apify.com/mortenm/web-design-leads): audit websites in bulk and find businesses with outdated, broken or non-mobile sites, with a lead score.
- [Local Business Leads by City & Category](https://apify.com/mortenm/business-leads-overture): find businesses by type and city (a Google Maps alternative from open data), with phones, websites and emails.

# Actor input Schema

## `sources` (type: `array`):

Which trend feeds to read. Google Trends, Apple Music and YouTube are read once per country; Wikipedia once per language; Mastodon once per instance (trending hashtags and links); Bluesky and Hacker News are global. YouTube needs your own API key (below). If left empty, all keyless platforms are read (plus YouTube when a key is given).

## `countries` (type: `array`):

Two-letter country codes (ISO 3166-1), e.g. US, GB, DE, NO, BR, IN. Used for Google Trends, the Apple Music chart and YouTube. Up to 10.

## `maxItemsPerFeed` (type: `integer`):

Top N items from each feed (each platform × country / language / instance). Some platforms publish fewer: Bluesky up to 25, Mastodon up to 20, Google Trends usually 10-20 per country.

## `watchKeywords` (type: `array`):

Words or phrases to flag, e.g. your brand, products or topics. Matching is whole-word and ignores case and accents ("AI" does not match "said"). Each item lists the keywords it matched, and the summary lists all hits.

## `onlyKeywordMatches` (type: `boolean`):

When on, only trending items that match at least one watch keyword are delivered and charged. Useful for alerts on a schedule.

## `wikipediaLanguages` (type: `array`):

Wikipedia language editions for the most-read list, e.g. en, de, fr, es, ja, no. Up to 5.

## `mastodonInstances` (type: `array`):

Mastodon server hostnames whose public trends are read, e.g. mastodon.social, fosstodon.org, mstdn.social. Plain hostnames only. Up to 5.

## `youtubeApiKey` (type: `string`):

Your own YouTube Data API v3 key, needed only for the YouTube source. It is stored encrypted by Apify, sent only to googleapis.com and never written to the output or logs. The YouTube API quota is yours (one request per country per run).

## Actor input object example

```json
{
  "sources": [
    "googleTrends",
    "bluesky",
    "mastodon",
    "wikipedia",
    "hackerNews",
    "appleMusic"
  ],
  "countries": [
    "US"
  ],
  "maxItemsPerFeed": 10,
  "watchKeywords": [
    "AI"
  ],
  "onlyKeywordMatches": false,
  "wikipediaLanguages": [
    "en"
  ],
  "mastodonInstances": [
    "mastodon.social"
  ]
}
```

# Actor output Schema

## `trends` (type: `string`):

No description

## `allFields` (type: `string`):

No description

## `trendsSummary` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# 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 = {
    "sources": [
        "googleTrends",
        "bluesky",
        "mastodon",
        "wikipedia",
        "hackerNews",
        "appleMusic"
    ],
    "countries": [
        "US"
    ],
    "maxItemsPerFeed": 10,
    "watchKeywords": [
        "AI"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("mortenm/social-trends-radar").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 = {
    "sources": [
        "googleTrends",
        "bluesky",
        "mastodon",
        "wikipedia",
        "hackerNews",
        "appleMusic",
    ],
    "countries": ["US"],
    "maxItemsPerFeed": 10,
    "watchKeywords": ["AI"],
}

# Run the Actor and wait for it to finish
run = client.actor("mortenm/social-trends-radar").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "sources": [
    "googleTrends",
    "bluesky",
    "mastodon",
    "wikipedia",
    "hackerNews",
    "appleMusic"
  ],
  "countries": [
    "US"
  ],
  "maxItemsPerFeed": 10,
  "watchKeywords": [
    "AI"
  ]
}' |
apify call mortenm/social-trends-radar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mortenm/social-trends-radar"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ehzYEmgj9gfa3uPvi/builds/EPGkXVcyAMl0iyjS9/openapi.json
