GitHub Trending Monitor: New Repos by Language and Period
Pricing
from $0.60 / 1,000 trending repository returneds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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
- In the Apify Console. Open the actor page and click Start — the
languagesfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - 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"]}'
- 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:
| query | found | status | sourceUrl | period | repoCount | monitorStatus | repos | rank | fullName | owner | name | description | language | languageColor | stars | forks | starsInPeriod | repoUrl | isNew | firstSeenAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| python | true | OK | <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.