# GitHub Trending Repos Scraper (`parseforge/github-trending-scraper`) Actor

Scrapes trending repositories from GitHub Trending. Filter by programming language, time period, and spoken language. Returns repo name, description, stars, forks, and today's stars.

- **URL**: https://apify.com/parseforge/github-trending-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Other, Automation
- **Stats:** 2 total users, 1 monthly users, 83.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.25 / 1,000 items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### GitHub Trending Repos Scraper

**Scrape GitHub Trending repositories by language, time period, and spoken language, up to 25 per run.** Each repo comes with its name, description, stars, forks, and today's stars. No API key or login. Export to CSV, JSON, Excel, or XML.

GitHub Trending shows the repositories gaining the most stars today, this week, or this month. This Actor reads that public page directly, so you skip the GitHub API's rate limits and authentication. Filter by programming language or spoken language, and get each trending repo as a flat row.

| Who uses it | What they scrape GitHub Trending for |
|---|---|
| Developers | Discover which open source projects are gaining traction in their language |
| Tech recruiters | Spot rising repositories and the teams behind them |
| Market researchers | Track which tools and frameworks are trending week over week |
| Content creators | Find fresh open source projects to feature in newsletters or videos |

### What it does

This Actor collects trending repositories from GitHub Trending and returns each one as a flat row with its name, description, stars, forks, and today's stars.

- 🔤 **Language filter:** narrow to a programming language like python, javascript, or rust.
- ⏱️ **Time period:** choose daily, weekly, or monthly trending.
- 🌐 **Spoken language:** filter by human language code like en, zh, or es.
- 📦 **Flat output:** each repository is one row, ready for CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with GitHub Trending data

**📈 Track weekly trends.**

A developer runs the Actor weekly for python to see which libraries are gaining stars, then decides what to learn next.

**🔍 Monitor competitor projects.**

A product manager scrapes trending repos in their domain monthly to spot new open source competitors.

**📰 Curate a newsletter.**

A content creator collects daily trending repos across all languages and picks the most interesting for their audience.

**🧑‍💼 Source candidates.**

A tech recruiter scrapes trending repos in a niche language to find active maintainers to approach.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key** | Reads the public GitHub Trending page, so no authentication or rate limits |
| **Fixed schema** | Every repo returns the same fields, so downstream processing is predictable |
| **Flexible filters** | Combine language, time period, and spoken language to target exactly what you need |
| **Export anywhere** | Save results as CSV, JSON, Excel, or XML for your workflow |

### How it compares

No other Store actor targets GitHub Trending the same way, so the honest comparison is with the alternatives teams actually weigh.

| | GitHub Trending Repos Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When GitHub Trending changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Set a maximum number of repositories, then filter by programming language, time period, and spoken language. Filters run before results are saved, so only matching repos reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10
}
```

A larger pull:

```json
{
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.011 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.10 |
| 1,000 results | $11.00 |
| 10,000 results | $110.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [GitHub Trending Repos Scraper](https://apify.com/parseforge/github-trending-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to GitHub Trending through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/github-trending-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your filters. If you set a language or spoken language that has no trending repos for the selected time period, the result will be empty. Try clearing the filters or choosing a broader time period.

**Why did I get fewer results than my maxItems?**

GitHub Trending only shows a limited number of repositories per page. If there are fewer trending repos than your maxItems, you will get all available ones.

**Why is the language filter not working?**

Make sure you use the correct language slug, like 'javascript' not 'JavaScript'. You can find the slug in the GitHub Trending URL when you filter on the website.

**Can I scrape more than 25 repositories?**

No. The Actor is limited to 25 repositories per run because GitHub Trending only shows a limited number. For more, consider using the GitHub API or a different scraper.

### FAQ

| Question | Answer |
|---|---|
| Do I need a GitHub API token? | No. This Actor reads the public GitHub Trending page directly, so no authentication or API key is required. |
| How many repositories can I scrape per run? | You can set a maximum of up to 25 repositories per run. The default is 10. |
| Can I filter by programming language? | Yes. Use the language field with a slug like 'python', 'javascript', or 'rust'. Leave it empty for all languages. |
| What time periods are supported? | You can choose daily, weekly, or monthly trending. The default is daily. |
| Can I filter by spoken language? | Yes. Use the spoken language code like 'en' for English or 'zh' for Chinese. Leave it empty for all languages. |
| What data does each repository include? | Each row includes the repository name, description, total stars, forks, and stars gained today. |
| What formats can I export to? | You can export results as CSV, JSON, Excel, or XML. |
| Is this Actor free to use? | The Actor itself is free to run on the Apify platform. You only pay for Apify platform usage if you exceed the free tier. |
| Can I schedule this Actor to run automatically? | Yes. You can set up a schedule in Apify to run it daily, weekly, or monthly. |
| Does this Actor handle pagination? | GitHub Trending shows a limited number of repos per page. This Actor collects up to the maximum you set, which is 25. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by GitHub, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

How many repositories to collect per run.

## `language` (type: `string`):

Filter by language slug (e.g. 'javascript', 'python', 'rust', 'go'). Leave empty for all languages.

## `since` (type: `string`):

Show trending repositories for the selected time period.

## `spokenLanguage` (type: `string`):

Filter by human language (e.g. 'en', 'zh', 'es'). Leave empty for all languages.

## Actor input object example

```json
{
  "maxItems": 10,
  "since": "daily"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/github-trending-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/github-trending-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/github-trending-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/github-trending-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3bJeKLYbbOxC4HB0P/builds/PfKJ5XYH0oCjKSnYX/openapi.json
