GitHub Trending Scraper avatar

GitHub Trending Scraper

Pricing

Pay per event

Go to Apify Store
GitHub Trending Scraper

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

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 minutes ago

Last modified

Share


🎯 What this scrapes

GitHub publishes a Trending page (https://github.com/trending) that's separate from the REST API. This Actor parses the page (and its language- and date-filtered variants) and emits one structured row per trending repo — rank, full_name, description, language, total stars, stars-in-window, forks, and the contributor avatars shown on the page.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Tech-trend dashboards — chart which languages are surging week-over-week.
  • Newsletter automation — pull the top 10 Python trending repos every Friday into your newsletter.
  • Investor scouting — surface early-stage open-source projects gaining stars before they hit Hacker News.
  • Competitive intel — alert when a competitor's repo lands on Trending.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
sincestringno'daily'Which trending bucket to scrape — today (daily), this week (weekly), or this month (monthly).
languagestringno''Programming language slug exactly as GitHub uses it (e.g. python, typescript, rust</code
spokenLanguagestringno''Spoken language code (e.g. en, zh). Leave empty for all.
maxResultsintegerno25GitHub Trending pages typically show 25 repos. Set to 0 for the whole page.
proxyConfigurationobjectno{'useApifyProxy': True}Apify Proxy is helpful here — GitHub may throttle aggressive scraping. Datacenter is fine.

Example input

{
"since": "daily",
"language": "python",
"maxResults": 5,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
rankintegerPosition on the trending page (1-indexed).
full_namestringFull repo slug — owner/name.
ownerstringRepository owner login.
namestringRepository name.
html_urlstringCanonical GitHub URL.
description['string', 'null']Repository tagline (as shown on Trending).
language['string', 'null']Primary language label shown on the page.
stars_totalintegerTotal stars at scrape time.
stars_in_windowintegerStars gained in the selected window (today / this week / this month).
forksintegerFork count.
built_byarrayList of contributor avatar URLs shown next to the repo card.
scraped_atstringISO-8601 UTC scrape timestamp.
windowstringThe 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": [],
"window": "daily"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.005One-off warm-up charge per run
result$0.002Per dataset item

Example: 1 000 results at the rates above ≈ $2.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

GitHub may change the Trending page HTML — if you see empty rows, file an issue and we'll ship a parser patch within 24h. We do not scrape developer-trending (only repo-trending) in this Actor.

❓ FAQ

How current is the data?

GitHub recalculates Trending throughout the day. A run reflects the page exactly as a logged-out browser sees it at request time.

Why are some built_by lists empty?

GitHub only shows contributor avatars for some cards; we surface them where present.

Can I filter by topic?

Not in this Actor — the Trending page doesn't expose topic filters. Use the GitHub Repository Scraper for topic queries.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.