GitHub Trending Repos Scraper avatar

GitHub Trending Repos Scraper

Pricing

from $2.99 / 1,000 trending repositories

Go to Apify Store
GitHub Trending Repos Scraper

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

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

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?

FieldTypeDescription
trendingRankintegerOne-based position on the observed Trending page.
fullNamestringRepository owner and name.
repositoryUrlstringPublic GitHub repository URL.
repositorySummarystringPublic repository description.
primaryLanguagestringPrimary language shown by GitHub.
starsCount, forksCountintegerCurrent public repository metrics when available.
trendingStarsGainedintegerStars shown as gained in the selected period.
contributorsarrayPublic contributor logins and optional public avatar URLs.
topics, licenseName, licenseSpdxIdarray/stringPublic REST enrichment when requested and available.
createdAt, updatedAt, pushedAtstringPublic repository timestamps when available.
apiMetadataAvailablebooleanWhether public REST enrichment returned metadata.
sourceUrl, scrapedAtstringPublic 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

  1. Review the input tab.
  2. Set the Trending filters and maxItems.
  3. Choose whether to request public REST details and avatar media URLs.
  4. 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.