GitHub Trending Scraper
Pricing
Pay per event
GitHub Trending Scraper
Scrape the live GitHub Trending page by day, week, or month with an optional language filter — repo slug, description, stars gained in the window, today's stars, language, built-by avatars — export to JSON or CSV. A GitHub trending API with no GitHub token required.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
🎯 What this scrapes
GitHub publishes a Trending page (github.com/trending) separate from the REST API. Because there is no official github trending API, the only reliable way to pull structured trending-repo data is page parsing. This Actor fetches the page — and its language- and date-filtered variants — and emits one structured row per trending repository. Supported windows: daily, weekly, monthly. Supported filters: programming language, spoken language.
Fields returned per row: rank, owner/name slug, canonical URL, description, primary language, total star count, stars gained in the selected window, fork count, contributor avatar URLs, scrape timestamp, and window label.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffireplays real Chrome, Firefox, and Safari TLS handshakes so the target sees a browser, not a Python script. We rotate impersonation profiles across requests. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block or rate-limit response.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterheader honoured. - 🧱 Rate-limit-aware pacing — we back off and slow down instead of hammering through a block and getting the IP burned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable field names, ready for JSON / CSV / Excel export from Apify Console or via the API.
- 💰 Pay-Per-Event pricing — you pay only for rows that land in your dataset. No data, no charge.
💡 Use cases
- Tech-trend dashboards — chart which languages or ecosystems are surging week-over-week; visualize star velocity over time.
- Newsletter automation — pull the top 10 Python trending repos every Friday and pipe them directly into your newsletter or Slack digest.
- Investor and analyst scouting — surface early-stage open-source projects gaining stars before they hit Hacker News or the tech press.
- Competitive intelligence — set up an alert when a competitor's repository lands on Trending; track star-gain velocity relative to your own projects.
- AI agent data feeds — give your briefing bot a live "what's hot in OSS" signal without building your own scraper or worrying about selector drift.
⚙️ How to use it
- Click Try for free at the top of the Apify Store page.
- Fill in the input form —
since,language, andmaxResultsall have sensible defaults. - Click Start. Output streams into the run's dataset in real time.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the Apify dataset API.
To schedule recurring runs (e.g., daily OSS digest), use Schedules in the Apify Console and point it at this Actor with your preferred inputs.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
since | string | no | "daily" | Which trending window to scrape — daily (today), weekly (this week), or monthly (this month). |
language | string | no | "" | Programming language slug as GitHub uses it — e.g. python, typescript, rust, cpp. Leave blank for all languages. |
spokenLanguage | string | no | "" | Spoken-language code, e.g. en, zh. Leave blank for all. |
maxResults | integer | no | 25 | GitHub Trending pages typically list 25 repos. Set to 0 to return the full page. |
proxyConfiguration | object | no | {"useApifyProxy": true} | Apify Proxy settings. Datacenter proxies are sufficient for most runs; residential may be needed under heavy throttling. |
Example input — top 5 trending Python repos today
{"since": "daily","language": "python","maxResults": 5,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output
One dataset item per trending repository.
| Field | Type | Notes |
|---|---|---|
rank | integer | Position on the Trending page (1-indexed). |
full_name | string | Full repo slug — owner/name. |
owner | string | Repository owner login. |
name | string | Repository name. |
html_url | string | Canonical GitHub URL. |
description | string | null | Repository tagline as shown on the Trending page. |
language | string | null | Primary language label shown on the card. |
stars_total | integer | Total stars at scrape time. |
stars_in_window | integer | Stars gained in the selected window (daily / weekly / monthly). |
forks | integer | Fork count. |
built_by | array | Contributor avatar URLs shown next to the repo card (may be empty). |
scraped_at | string | ISO-8601 UTC timestamp of the scrape. |
window | string | The selected window — daily, weekly, or monthly. |
Example output
{"rank": 1,"full_name": "psf/requests","owner": "psf","name": "requests","html_url": "https://github.com/psf/requests","description": "Python HTTP for Humans.","language": "Python","stars_total": 51800,"stars_in_window": 142,"forks": 9300,"built_by": [],"scraped_at": "2026-06-01T08:00:00Z","window": "daily"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.005 | One-off warm-up charge per run |
result | $0.002 | Per dataset item written |
1 000 results ≈ $2.00. No subscription, no minimum spend, no card required to start — every new Apify account gets $5 of free credit.
🚧 Limitations
- GitHub may change Trending page HTML at any time. If you see empty rows or missing fields, open an issue on the Actor's Issues tab and we'll ship a parser patch within 24 hours.
- This Actor scrapes repo-trending only. Developer-trending (the "trending developers" tab) is not included.
- Trending updates approximately every 6 hours on GitHub's side; a run reflects the page as a logged-out browser sees it at that moment — not a real-time feed.
- GitHub Trending shows roughly 25 repositories per language/window combination. Running multiple language passes in separate runs is the intended pattern for broad market-scan use cases.
❓ FAQ
Is there an official GitHub Trending API?
No. GitHub deprecated any unofficial trending endpoint years ago and has never shipped a public github trending API. The only reliable source is the HTML page at github.com/trending. That is exactly what this Actor parses — so our output is the closest thing to a github trending API available today.
How current is the data?
GitHub recalculates Trending roughly every 6 hours. A run reflects the page exactly as a logged-out browser sees it at request time — typically within 6 hours of the last GitHub recalculation.
Can I get github trending Python repos specifically?
Yes — set language to python (or any other language slug GitHub uses). You can combine it with any since window. The same approach works for TypeScript, Rust, Go, C++, and every other language listed on GitHub.
Can I get an RSS feed or subscribe to updates?
Not natively from this Actor, but you can schedule it on a Apify Cron schedule and use the Apify API to fetch the latest dataset. If github trending rss is your goal, a simple scheduled run + webhook to a feed-builder service is the recommended pattern.
Why are some built_by arrays empty?
GitHub only shows contributor avatars on some repo cards. We return what the page surfaces; if GitHub doesn't include them, neither do we.
Can I filter by topic?
Not in this Actor — the GitHub Trending page does not expose topic filters. For topic-based queries, use a GitHub REST API wrapper instead.
💬 Your feedback
Spotted a parsing bug, hit a selector-drift issue, or need a new field? Open an issue on the Actor's Issues tab in Apify Console — we ship fixes weekly and read every report.