GitHub Trending Monitor: New Repos by Language and Period avatar

GitHub Trending Monitor: New Repos by Language and Period

Pricing

from $0.60 / 1,000 trending repository returneds

Go to Apify Store
GitHub Trending Monitor: New Repos by Language and Period

GitHub Trending Monitor: New Repos by Language and Period

Read GitHub's trending repositories by language and period (today, this week, this month): rank, stars, forks and stars gained, one row per repository, with a monitoring mode that returns and bills only repositories that newly appeared on the list since your last run.

Pricing

from $0.60 / 1,000 trending repository returneds

Rating

0.0

(0)

Developer

Adriana Voss

Adriana Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get GitHub's trending repositories by language and period as rows, and get alerted only when a repository newly appears on the list. One row per trending repository with its rank, total stars, forks and stars gained today, this week or this month. Turn on monitoring mode and run it on a schedule: you get, and pay for, only the repositories that were not on that list at your last run.

Who uses it: developer-relations and open-source teams watching a language ecosystem, newsletter and content writers who need a daily "what is rising" feed, investors and recruiters tracking which projects take off, and AI agents that need a structured trending list.

Price: $1.20 per 1,000 repositories on the free plan, lower on paid plans. A language with no list, a quiet monitoring run and a block are never charged.

How to use

  1. In the Apify Console. Open the actor page and click Start — the languages field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~github-trending-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"languages":["python"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"languages": [
"python"
]
}

One programming language per line, as GitHub spells it in the trending URL: python, javascript, c++, jupyter-notebook. Each language is its own list. Leave empty for the all-languages list. You can also paste a github.com/trending/

Each language line is its own request, so ["python","rust"] returns two lists. since is daily, weekly or monthly. minStarsInPeriod and maxResults filter and cap each list. Filters run before the monitoring memory is stored, so the memory only holds what you asked to see. GitHub lists 13 to 25 repositories per page and has no further pages, so the default maxResults of 25 returns the whole list.

Monitoring (onlyNewSinceLastRun): the memory is a named key-value store of this actor's own, kept per language and per period. The first monitored run returns the whole list and remembers it; later runs return only repositories not on the list at the previous run. A repository that leaves the list and comes back more than 30 days later counts as new again.

Output

One row per trending repository, for example:

queryfoundstatussourceUrlperiodrepoCountmonitorStatusreposrankfullNameownernamedescriptionlanguagelanguageColorstarsforksstarsInPeriodrepoUrlisNewfirstSeenAtscrapedAt
pythontrueOK<all repos (full list)><newly on the list?>1970-01-01T00:00:00.000Z

A miss (a language GitHub has no trending list for, or a rate limit) comes back as a row with "found": false and is never charged. stars, forks, starsInPeriod, description and language are null when the card does not show them, never 0.

Pricing

Pay-per-event. A flat per-run fee covers run start; you're billed per repository only when it is actually returned in the dataset. A miss is never charged.

Example runs

Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.

Python, trending today. The default shape.

{
"languages": ["python"],
"since": "daily",
"maxResults": 25
}

Rust and Go, trending this week, only repositories that gained 200+ stars.

{
"languages": ["rust", "go"],
"since": "weekly",
"minStarsInPeriod": 200
}

All languages, trending today, with monitoring on. Schedule it daily and only new entrants are returned.

{
"languages": [],
"since": "daily",
"onlyNewSinceLastRun": true,
"deltaName": "all-languages-daily"
}

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~github-trending-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"languages":["python"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~github-trending-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"languages":["python"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~github-trending-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"languages":["{{language}}"]}, mapping the row's language into the languages array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "github trending scraper" — the agent will find and run this actor.