🐙 GitHub Trending Repos Scraper avatar

🐙 GitHub Trending Repos Scraper

Pricing

from $15.00 / 1,000 github trending repo records

Go to Apify Store
🐙 GitHub Trending Repos Scraper

🐙 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

Skootle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

GitHub Trending Repos hero

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.


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.

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
  1. Open the Input tab on the actor page
  2. Pick periods in the periods field (daily, weekly, monthly). One run handles many.
  3. Optionally filter by language (languages: ["python", "typescript"]) — empty means all languages combined
  4. Optionally set spokenLanguageCode for spoken-language filter (en, zh, ja)
  5. Optionally enable enrichWithApi (default true) for license, topics, watchers
  6. Optionally provide a githubToken (raises GitHub API quota from ~60/h to ~5,000/h)
  7. Optionally enable watchlistMode for daily diffs
  8. Set maxItems (default 25)
  9. Click Start

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.

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

{
"periods": ["daily"],
"languages": ["python"],
"enrichWithApi": true,
"watchlistMode": true,
"maxItems": 25
}
{
"periods": ["weekly"],
"languages": ["python", "typescript", "rust", "go"],
"enrichWithApi": true,
"maxItems": 100
}

Example 3: Daily all-languages combined

{
"periods": ["daily"],
"languages": [],
"enrichWithApi": true,
"maxItems": 25
}
{
"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

FieldTypeDefaultDescription
periodsenum[]["daily"]daily, weekly, monthly
languagesstring[][]Language slugs (python, typescript, rust). Empty = all combined.
spokenLanguageCodestring|nullnullSpoken-language filter (en, zh, ja)
enrichWithApibooltrueAdds 1 GitHub API call per repo
githubTokenstring|nullnullPAT raises API quota from ~60/h to ~5,000/h
watchlistModeboolfalseDiff against KV-stored last-seen rank+stars
maxItemsint25Hard cap
useApifyProxyboolfalseUsually unneeded

github_trending_repo

FieldTypeDescription
outputSchemaVersion, recordType, recordIdstringDiscriminated identity
fullName, owner, name, urlstringRepo identity + canonical URL
descriptionstringTagline
language, languageColorstringPrimary language + color
stars, forks, starsGainedThisPeriodintEngagement
rank, periodint / enumPosition + window
spokenLanguageCode, languageFilterstringFilters used
contributorsarray[{ login, avatarUrl }] (top 5)
enrichmentobject | nullWhen enrichWithApi: true: defaultBranch, license, homepage, topics[], openIssues, watchers, pushedAt, createdAt, updatedAt, size, archived, isFork, htmlUrl
fieldCompletenessScore, agentMarkdownint / stringQuality + LLM-ready summary
scrapedAtISO 8601Snapshot timestamp
{
"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:

  1. OUTPUT — run summary
  2. AGENT_BRIEFING — top 10 by stars-gained
  3. WATCHLIST_STATE — (when watchlistMode: true) per-repo last-seen rank + stars

FAQ

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.

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.

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).

  • 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-instarsGainedThisPeriod per record.
  • Versioned schemaoutputSchemaVersion: '2026-05-09' literal.
  • Idempotent record IDsgithub:trending:<period>:<owner>/<repo> stable across runs.
  • Agent-grade outputagentMarkdown ready to paste into an LLM context.
  • No anti-bot challengesgithub.com/trending is HTTP-friendly; no proxy required by default.

Other Skootle actors you might want to check

Support and contact

File issues on this actor's page — replies within 48 hours.