GitHub Trending Scraper - Trending Repos, Developers & Search avatar

GitHub Trending Scraper - Trending Repos, Developers & Search

Pricing

from $3.00 / 1,000 results

Go to Apify Store
GitHub Trending Scraper - Trending Repos, Developers & Search

GitHub Trending Scraper - Trending Repos, Developers & Search

Scrape GitHub trending repositories and developers by language, period (daily, weekly, monthly) and spoken language, or search repos by keyword, stars and date. Stars gained, topics, license and more. $3 per 1,000 results.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

dean ko

dean ko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

GitHub Trending Scraper: trending repos, developers and repository search

Scrape GitHub trending repositories and developers for any programming language and period (today, this week, this month), filtered by spoken language. You can also search all of GitHub's repositories by keyword, topic, language and minimum stars. Every result is a clean, flat row with stars gained in the period, total stars, forks, topics, license, homepage, and created and last-pushed dates. The rows are ready for Excel, Google Sheets, BI tools, newsletters or your database.

It costs $3 per 1,000 results. It uses plain HTTP and the official GitHub REST API, so you need no browser, no proxies and no GitHub account.

It has three modes:

  • Trending repositories (trending). Reads github.com/trending, or /trending/<language>, for the daily, weekly or monthly period, with an optional spoken-language filter. Each repository gets its rank, stars gained in the period and "built by" contributors. One extra API call adds topics, license, homepage, open issues and created/pushed dates.
  • Trending developers (trendingDevelopers). Reads github.com/trending/developers. You get each developer's rank, username, name, avatar and popular repository.
  • Repository search (search). Uses the GitHub search API with any query and qualifier (topic:, org:, created:, in:readme...). Results can be sorted by stars, forks or last update and filtered by minimum stars, up to 1,000 rows per query.

Who is it for?

  • Developer-tool and AI startups. Spot rising open-source projects and competitors early, and find integration partners and potential hires among trending developers.
  • VCs and analysts. Track which repositories and languages are gaining momentum each day or week, and build star-growth time series by scheduling daily runs.
  • Newsletter writers and content creators. Get a daily "top trending repos" list for Python, Rust, TypeScript or AI, ready to drop into a post.
  • DevRel and recruiters. Find active developers and fast-growing projects in your ecosystem (topic:mcp, language:go...).
  • Researchers and data journalists. Build datasets of popular repositories by topic, license or creation date.
  • Low price. $3 per 1,000 results, roughly 10x cheaper than other GitHub trending actors. You pay only for rows saved and can set a maximum charge per run.
  • Trending and search in one Actor. Daily discovery and deep historical search run from the same input form and produce the same row format.
  • Stars gained per period. The number GitHub trending is built on, which the API alone doesn't give you.
  • Rich rows without a token. Topics, license, homepage and dates come from one batched API request per trending page.
  • Fast and light. The default run (today's trending, all languages) takes a few seconds on 256 MB of memory.
  • Rate-limit safe. It retries 403/429 rate-limit responses using GitHub's retry-after and x-ratelimit-reset headers, and it paces search pages to the 10 requests/minute anonymous limit. Add an optional GitHub token for 30 requests/minute.
  1. Click Try for free (or Start) on this page.
  2. Pick a Mode: trending repositories, trending developers or search.
  3. Optionally set a programming language, trending period or search query.
  4. Click Start and wait a few seconds.
  5. Download the results as CSV, Excel, JSON, XML or HTML, or read them through the API.

Input examples

Today's trending repositories, all languages (the default):

{ "mode": "trending", "since": "daily" }

This week's trending Python repositories with English READMEs:

{ "mode": "trending", "language": "python", "since": "weekly", "spokenLanguageCode": "en" }

This month's trending developers in Rust:

{ "mode": "trendingDevelopers", "language": "rust", "since": "monthly" }

The 500 most-starred MCP repositories created in 2026, with at least 100 stars:

{ "mode": "search", "query": "topic:mcp created:>=2026-01-01", "sort": "stars", "minStars": 100, "maxItems": 500 }
FieldWhat it doesExample
modetrending, trendingDevelopers or searchtrending
languageProgramming language (all modes)python, typescript, c++
sinceTrending perioddaily, weekly, monthly
spokenLanguageCodeREADME language for trending repos (ISO 639-1)en, zh, ja
enrichTrendingAdd topics, license and dates to trending repos (default on)true
queryGitHub search query with qualifiersllm agent, topic:rag org:microsoft
sortSearch orderstars, updated, forks, best-match
minStarsSearch: minimum stars1000
githubTokenOptional personal access token for higher search limits (stored encrypted)ghp_...
maxItemsMaximum rows to save (default 100, max 1,000)500

Output sample

A trending repository row:

{
"rank": 1,
"fullName": "php/php-src",
"owner": "php",
"name": "php-src",
"url": "https://github.com/php/php-src",
"description": "The PHP Interpreter",
"language": "C",
"stars": 41255,
"starsGained": 287,
"period": "daily",
"forks": 8323,
"builtBy": ["dstogov", "nikic", "weltling", "cmb69", "iliaal"],
"openIssues": 2228,
"topics": [],
"license": "BSD-3-Clause",
"homepage": "https://www.php.net",
"createdAt": "2011-06-16T01:52:25Z",
"pushedAt": "2026-10-23T04:30:00Z",
"isFork": false,
"isArchived": false,
"source": "trending",
"scrapedAt": "2026-10-23T04:30:55.600Z"
}

A trending developer row:

{
"rank": 1,
"username": "elie222",
"name": "Elie Steinbock",
"url": "https://github.com/elie222",
"avatarUrl": "https://avatars.githubusercontent.com/u/3090527",
"popularRepo": "elie222/rakazo",
"popularRepoUrl": "https://github.com/elie222/rakazo",
"popularRepoDescription": "Open-source Grok Bot alternative. Choose your own model and sandbox.",
"period": "daily",
"source": "trending-developers",
"scrapedAt": "2026-10-23T04:31:10.000Z"
}
FieldTypeDescription
ranknumberPosition on the trending page or in the search results
fullName, owner, name, urlstringRepository identity and link
description, languagestringRepository description and main language
stars, forks, openIssuesnumberCurrent counts
starsGained, periodnumber, stringStars gained in the trending period (trending mode only)
builtByarrayTop contributors shown on the trending page
topics, license, homepagearray, stringRepository topics, SPDX license id, website
createdAt, pushedAtstringCreation date and last push (ISO 8601)
isFork, isArchivedbooleanRepository flags
username, name, avatarUrl, popularRepo*stringDeveloper fields (trending developers mode)
source, scrapedAtstringWhich mode produced the row, and when

This Actor uses pay-per-event pricing:

  • $0.003 per result saved ($3 per 1,000 results)
  • $0.00005 per run start (per GB of memory, a fraction of a cent)

Worked example: a daily run of today's trending repositories (up to 25 rows) costs at most 25 × $0.003 = $0.075, plus $0.0000125 for the start on 256 MB. That is about $2.25 per month for a full daily trending feed. A 1,000-repository search costs $3.00. The $5 of monthly free credit on the Apify Free plan covers about 1,600 results.

Set Max results or a maximum charge per run, and the Actor stops as soon as it reaches the limit.

Integrations and API

Call the Actor from your own code with the official apify-client, or connect it to Make, Zapier, n8n, Google Sheets, Slack, webhooks and more from the Integrations tab.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("deanko/github-trending-scraper").call(run_input={
"mode": "trending",
"language": "python",
"since": "weekly",
})
for repo in client.dataset(run["defaultDatasetId"]).iterate_items():
print(repo["rank"], repo["fullName"], repo["starsGained"])

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('deanko/github-trending-scraper').call({
mode: 'search',
query: 'topic:llm',
minStars: 5000,
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'LLM repositories with 5k+ stars');

You can also run it with one HTTP request through the run-sync-get-dataset-items endpoint and get the rows back in the response.

FAQ

Where does the data come from? Trending rows come from the public github.com/trending pages. Search rows and the enrichment fields come from the official GitHub REST API. The data is the same as what you see on GitHub.

Do I need a GitHub token? No. Trending works without one, and search works anonymously at GitHub's limit of 10 requests per minute (100 rows per request). A token with no scopes raises that to 30 requests per minute, so large searches finish about 3x faster. It is stored as an encrypted secret input.

How many rows does a trending run return? Whatever GitHub shows, usually 9 to 25 repositories and up to 25 developers per page. For more results, use search mode.

How do I track trending over time? Schedule the Actor daily (Console → Schedules) and send each run to Google Sheets, a webhook or your database. scrapedAt, rank and starsGained let you build a history.

Which language names work? The same slugs GitHub uses in trending URLs: python, javascript, typescript, go, rust, c++, c#, jupyter-notebook and so on. Spaces become dashes.

Why does search stop at 1,000 results? The GitHub search API returns at most 1,000 results per query. To get more, split the query by date or star ranges, for example created:2025-01-01..2025-06-30.

What happens if GitHub rate-limits the run? The Actor waits for the time GitHub asks for (retry-after / x-ratelimit-reset) and retries up to 5 times. If enriching a trending page still fails, the rows are saved without topics, license and dates instead of failing the run.

Limitations

  • Trending pages only show what GitHub displays (at most 25 rows). Stars gained comes from the page and isn't available in search mode.
  • Topics, license and dates for trending repositories depend on one GitHub API call. It may be skipped under heavy rate limiting, in which case those fields are empty.
  • Search mode returns at most 1,000 results per query.
  • GitHub can change the trending page layout. Search mode uses the stable REST API.

The data comes from public GitHub pages and the public GitHub API. Only public profile and repository information is collected (no emails). This Actor is not affiliated with or endorsed by GitHub. You are responsible for using the data in line with the GitHub Terms of Service and the laws that apply to you.

Support and feedback

Missing a field or mode you need, or found a bug? Open an issue in the Issues tab on this page. If the Actor saves you time, a short review helps other people find it.