GitHub Trending Repos Scraper
Pricing
from $2.99 / 1,000 trending repositories
GitHub Trending Repos Scraper
Scrape current public GitHub Trending repositories with bounded browser/HTTP extraction and optional public REST enrichment. Produces normalized repository identity, trending metrics, ownership, licensing, and provenance.
Pricing
from $2.99 / 1,000 trending repositories
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
What does GitHub Trending Repos Scraper do?
This Actor collects public repositories shown on GitHub Trending. Each dataset row contains the visible Trending rank, repository identity, description, language, stars, forks, period-star gain, contributor signals, and public repository links. Optional enrichment reads public repository metadata from GitHub's documented REST API.
The Actor uses public GitHub pages and public repository metadata only. It does not access private repositories, private profiles, authenticated-only content, or protected endpoints. If GitHub presents a CAPTCHA, access denial, rate-limit page, or device verification boundary, the Actor emits a small diagnostic record and records the run state in OUTPUT_SUMMARY.
Why use this Actor?
- Filter by programming language, spoken language, and daily, weekly, or monthly period.
- Collect up to 100 public Trending rows with stable field names and normalized numbers, URLs, and timestamps.
- Optionally enrich rows with public topics, default branch, license, owner, repository health flags, and timestamps.
- Disable repository enrichment for a fast Trending-page snapshot.
- Disable media fields when avatar URLs are not needed.
- Bound public request concurrency, pacing, retries, and timeouts.
- Use optional Apify proxy configuration for the public browser, fallback, and REST requests.
GitHub's public Trending page currently exposes a bounded list without a visible pagination control. The Actor does not invent page URLs, ratings, review counts, or product prices.
What data can this Actor extract?
| Field | Type | Description |
|---|---|---|
| trendingRank | integer | One-based position on the observed Trending page. |
| fullName | string | Repository owner and name. |
| repositoryUrl | string | Public GitHub repository URL. |
| repositorySummary | string | Public repository description. |
| primaryLanguage | string | Primary language shown by GitHub. |
| starsCount, forksCount | integer | Current public repository metrics when available. |
| trendingStarsGained | integer | Stars shown as gained in the selected period. |
| contributors | array | Public contributor logins and optional public avatar URLs. |
| topics, licenseName, licenseSpdxId | array/string | Public REST enrichment when requested and available. |
| createdAt, updatedAt, pushedAt | string | Public repository timestamps when available. |
| apiMetadataAvailable | boolean | Whether public REST enrichment returned metadata. |
| sourceUrl, scrapedAt | string | Public source page and collection timestamp. |
When public REST enrichment is unavailable, the Actor keeps the truthful Trending-page fields and omits unavailable optional fields. It does not fabricate placeholders.
Input
The main inputs are:
- trendingUrl, or the separate language, since, and spokenLanguage filters.
- maxItems from 1 to 100.
- includeRepositoryDetails and includeMedia.
- apiConcurrency from 1 to 5 and apiRequestDelayMs from 0 to 2,000.
- Bounded retry, request-timeout, and navigation-timeout settings.
- Optional proxyConfiguration.
- Optional githubToken, accepted only as a secret to increase public REST rate limits. It is never written to dataset rows or logs.
Example:
{"trendingUrl": "https://github.com/trending/python?since=weekly&spoken_language_code=en","maxItems": 10,"includeRepositoryDetails": true,"includeMedia": false}
Output
A normal record is shaped like this:
{"sourceUrl": "https://github.com/trending?since=daily","trendingRank": 1,"fullName": "example-owner/example-repository","repositoryUrl": "https://github.com/example-owner/example-repository","repositorySummary": "Example tools for building reliable data workflows.","primaryLanguage": "Python","starsCount": 15000,"forksCount": 1200,"trendingStarsGained": 1234,"trendingPeriod": "daily","apiMetadataAvailable": false,"scrapedAt": "2026-01-15T12:00:00.000Z"}
OUTPUT_SUMMARY contains operational counts and whether a public-source boundary was detected. Diagnostic dataset rows contain only url, error, errorCode, and scrapedAt.
How to run
- Review the input tab.
- Set the Trending filters and maxItems.
- Choose whether to request public REST details and avatar media URLs.
- Run the Actor and inspect the dataset and OUTPUT_SUMMARY.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Cost and rate limits
The Actor uses Apify compute units according to browser and request duration. Public REST enrichment makes up to one request per unique Trending repository, so disabling includeRepositoryDetails can reduce request volume and runtime. Keep concurrency modest and use request pacing to reduce rate-limit pressure.
Ethical use
This Actor collects public GitHub content only. Results may still contain personal data that a user chose to publish, so use the data lawfully and with a legitimate purpose. Do not use the Actor to bypass authentication, CAPTCHAs, access controls, or other protected boundaries.