🐙 GitHub Trending Repos Scraper
Pricing
from $15.00 / 1,000 github trending repo records
🐙 GitHub Trending Repos Scraper
Scrape daily/weekly/monthly trending repositories from github.com/trending. Joined with GitHub REST API for license, topics, watchers, push date. Watchlist mode tracks rank/star changes day-over-day. Export, run via API, schedule, or integrate with other tools.
Pricing
from $15.00 / 1,000 github trending repo records
Rating
0.0
(0)
Developer
Skootle
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share

TL;DR
Daily, weekly, monthly trending repositories from github.com/trending. Returns clean structured JSON with rank, stars, stars-gained-this-period, language, contributors, plus optional GitHub REST API enrichment for license, topics, watchers, default branch, push date, and archived/fork flags. Watchlist mode emits only repos where rank or stars changed. Built on the public github.com/trending HTML page plus optional api.github.com/repos/<owner>/<repo> enrichment.
Try it on a small dataset, then let us know what you think in a review.
What does GitHub Trending Repos do?
GitHub Trending Repos extracts the trending repositories from github.com/trending and optionally joins each repo with its full GitHub REST API metadata. You pick which trending windows to pull (daily, weekly, monthly), optionally filter by programming language, and the actor returns one record per repo with: full name, owner, name, URL, description, language + color, stars, forks, stars gained this period, rank, top contributors, and the API enrichment block (license, topics, watchers, default branch, push date, created/updated dates, size, archived flag, fork flag).
Watchlist mode (watchlistMode: true) tracks stars and rank per repo across runs and emits only repos where either changed. Schedule daily and you get a clean diff feed of what's gaining or losing momentum.
Why scrape GitHub Trending?
github.com/trending is the de facto pulse of the open-source world. Every viral OSS launch, every breakthrough AI repo, every new framework hits Trending within hours of going viral on Twitter/HN. For developer relations, technology radar, VC tech scouting, recruiting, license auditing, and competitive OSS intelligence, the trending feed is high-signal data.
GitHub doesn't expose a Trending API — only the HTML page. This actor handles the HTML parsing plus optional REST API enrichment so you get clean typed records with license + topics + watchers, not just the basic stats visible on the page.
Who needs this?
- AI / LLM teams tracking trending AI repos and benchmarks daily
- VC and tech-scouting analysts sourcing OSS-first acquisition or investment targets
- DevRel teams monitoring competitor and category-adjacent OSS momentum
- Recruiters mining contributor lists of fast-rising repos for top-of-funnel candidates
- License compliance teams auditing license types across trending dependencies
- Technology radar / engineering leadership spotting new frameworks before they go mainstream
- AI agents consuming a daily curated digest of dev innovation
How to use GitHub Trending Repos
- Open the Input tab on the actor page
- Pick periods in the
periodsfield (daily,weekly,monthly). One run handles many. - Optionally filter by language (
languages: ["python", "typescript"]) — empty means all languages combined - Optionally set
spokenLanguageCodefor spoken-language filter (en,zh,ja) - Optionally enable
enrichWithApi(defaulttrue) for license, topics, watchers - Optionally provide a
githubToken(raises GitHub API quota from ~60/h to ~5,000/h) - Optionally enable
watchlistModefor daily diffs - Set
maxItems(default 25) - Click Start
How much will scraping GitHub Trending cost?
This actor is priced per event:
- Actor Start: $0.01 once per run
- GitHub trending repo record: tiered, charged per record written
| Apify plan | $/1000 records |
|---|---|
| FREE | $25.00 |
| BRONZE | $21.25 |
| SILVER | $17.50 |
| GOLD | $15.00 |
| PLATINUM | $15.00 |
| DIAMOND | $13.50 |
A typical daily watchlist on the daily window with API enrichment returns ~25 repos on day 1, ~5-15 per day in watchlist mode. Roughly $0.10-$0.30 per daily run on GOLD.
Is it legal to scrape GitHub Trending?
Yes. github.com/trending is a public marketing page — anyone in a browser can read it. The GitHub REST API is also explicitly published with public read access (no auth required for public-repo endpoints, though authenticated requests get a higher rate limit). This actor honors both with respectful pacing.
GitHub's Acceptable Use Policy permits programmatic access to public data. The data scraped (repo names, stars, descriptions, contributor handles) is published by repo owners as marketing material specifically intended to be discoverable. Use freely for research, analytics, AI training, or commercial intelligence products.
Examples
Example 1: Daily Python trending
{"periods": ["daily"],"languages": ["python"],"enrichWithApi": true,"watchlistMode": true,"maxItems": 25}
Example 2: AI-focused weekly trending across 4 languages
{"periods": ["weekly"],"languages": ["python", "typescript", "rust", "go"],"enrichWithApi": true,"maxItems": 100}
Example 3: Daily all-languages combined
{"periods": ["daily"],"languages": [],"enrichWithApi": true,"maxItems": 25}
Example 4: Monthly TypeScript trending with token
{"periods": ["monthly"],"languages": ["typescript"],"enrichWithApi": true,"githubToken": "ghp_yourtoken","maxItems": 25}
Example 5: Star-velocity tracker (watchlist on daily)
{"periods": ["daily"],"languages": ["python", "typescript"],"enrichWithApi": false,"watchlistMode": true,"maxItems": 50}
Run hourly. Diff output gives you star velocity in near-real-time.
Example 6: License-compliance audit
{"periods": ["daily", "weekly"],"languages": ["python", "javascript", "typescript", "go", "rust", "java"],"enrichWithApi": true,"githubToken": "ghp_yourtoken","maxItems": 200}
Filter the output for enrichment.license values; flag GPL/AGPL repos against your team's allowed-license policy.
Example 7: Hiring funnel from contributor lists
{"periods": ["weekly", "monthly"],"languages": ["python", "typescript"],"enrichWithApi": false,"maxItems": 100}
Each record carries contributors[] (login + avatar). Pipe to a recruiter pipeline.
Example 8: Spoken-language filter (Chinese-language repos)
{"periods": ["weekly"],"spokenLanguageCode": "zh","enrichWithApi": true,"maxItems": 25}
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
periods | enum[] | ["daily"] | daily, weekly, monthly |
languages | string[] | [] | Language slugs (python, typescript, rust). Empty = all combined. |
spokenLanguageCode | string|null | null | Spoken-language filter (en, zh, ja) |
enrichWithApi | bool | true | Adds 1 GitHub API call per repo |
githubToken | string|null | null | PAT raises API quota from ~60/h to ~5,000/h |
watchlistMode | bool | false | Diff against KV-stored last-seen rank+stars |
maxItems | int | 25 | Hard cap |
useApifyProxy | bool | false | Usually unneeded |
GitHub Trending output format
github_trending_repo
| Field | Type | Description |
|---|---|---|
outputSchemaVersion, recordType, recordId | string | Discriminated identity |
fullName, owner, name, url | string | Repo identity + canonical URL |
description | string | Tagline |
language, languageColor | string | Primary language + color |
stars, forks, starsGainedThisPeriod | int | Engagement |
rank, period | int / enum | Position + window |
spokenLanguageCode, languageFilter | string | Filters used |
contributors | array | [{ login, avatarUrl }] (top 5) |
enrichment | object | null | When enrichWithApi: true: defaultBranch, license, homepage, topics[], openIssues, watchers, pushedAt, createdAt, updatedAt, size, archived, isFork, htmlUrl |
fieldCompletenessScore, agentMarkdown | int / string | Quality + LLM-ready summary |
scrapedAt | ISO 8601 | Snapshot timestamp |
GitHub Trending scraper output example
{"outputSchemaVersion": "2026-05-09","recordType": "github_trending_repo","recordId": "github:trending:daily:anthropics/financial-services","fullName": "anthropics/financial-services","owner": "anthropics","name": "financial-services","url": "https://github.com/anthropics/financial-services","language": "Python","stars": 15808,"forks": 1988,"starsGainedThisPeriod": 3660,"rank": 1,"period": "daily","contributors": [{ "login": "user1", "avatarUrl": "https://avatars.githubusercontent.com/u/..." }],"enrichment": {"license": "MIT","topics": ["ai", "claude", "finance"],"watchers": 32,"openIssues": 12,"pushedAt": "2026-05-09T08:30:00Z","archived": false,"isFork": false},"fieldCompletenessScore": 95,"agentMarkdown": "**🐙 anthropics/financial-services** (#1 daily · Python)\n- ⭐ 15,808 · 🔱 1,988 · 📈 +3,660 daily\n- 🏷 ai, claude, finance\n- 📜 MIT\n- 🔗 https://github.com/anthropics/financial-services"}
During the Actor run
The actor fetches github.com/trending?since=<period> (one call per period × language combination), parses the repo cards from the HTML, and optionally calls api.github.com/repos/<owner>/<repo> per repo for the enrichment block. Inter-request delay: 800ms for trending pages, 250ms for API calls.
Each record is validated against a Zod schema before push. The actor writes:
OUTPUT— run summaryAGENT_BRIEFING— top 10 by stars-gainedWATCHLIST_STATE— (whenwatchlistMode: true) per-repo last-seen rank + stars
FAQ
How does GitHub Trending Repos work?
The actor fetches github.com/trending HTML, parses the repo cards, and (optionally) calls api.github.com/repos/<owner>/<repo> per repo for the enrichment.
Do I need a GitHub token?
For small runs (≤25 repos with enrichment), no — GitHub's unauthenticated API allows ~60 requests/hour, which covers a daily watchlist comfortably. For larger runs, provide a GitHub personal access token (PAT); authenticated requests get ~5,000/hour.
Can I monitor for star/rank changes only?
Yes. Set watchlistMode: true. The actor tracks stars and rank per repo per run and only emits records where either changed.
Can I filter by programming language?
Yes. languages: ["python", "typescript"]. The actor pulls github.com/trending/python?since=daily and github.com/trending/typescript?since=daily separately.
Can I filter by README spoken language?
Yes. Set spokenLanguageCode: "zh" (or any ISO-639-1 code). GitHub's trending page accepts this filter.
Can I get the contributors of each trending repo?
Yes — the top 5 contributors visible on the trending card are emitted as contributors[] (login + avatar URL).
Can I use this with the Apify API?
Yes. POST to https://api.apify.com/v2/acts/skootle~github-trending/runs.
Can I integrate with Make / Zapier / n8n / Slack?
Yes. Click Integrations on the actor page.
What if GitHub changes the trending page layout?
The trending page format has been stable for years. If it changes, the actor adapts within 24-48 hours.
Your feedback
Hit a bug or want a feature? Open an issue on the Issues tab rather than the reviews page, and we'll fix it fast (typically within 48 hours).
Why choose GitHub Trending Repos
- All 3 windows covered — daily, weekly, monthly. One actor handles all.
- API enrichment — license, topics, watchers, push date, archived flag, fork flag added to every record (when
enrichWithApi: true). - Watchlist diff mode — only emits repos where stars or rank changed.
- Star-velocity computation built-in —
starsGainedThisPeriodper record. - Versioned schema —
outputSchemaVersion: '2026-05-09'literal. - Idempotent record IDs —
github:trending:<period>:<owner>/<repo>stable across runs. - Agent-grade output —
agentMarkdownready to paste into an LLM context. - No anti-bot challenges —
github.com/trendingis HTTP-friendly; no proxy required by default.
Other Skootle actors you might want to check
- Hacker News Watchlist — same pattern for HN streams
- Reddit Subreddit Scraper — subreddit monitoring
- SEC EDGAR Filings Monitor — public-company filings stream
- Apple App Store Reviews Monitor — App Store reviews + metadata
- Shopify App Store Scraper — Shopify app listings + pricing tiers
Support and contact
File issues on this actor's page — replies within 48 hours.