GitHub Trending & Topic Scraper avatar

GitHub Trending & Topic Scraper

Pricing

from $1.50 / 1,000 repository scrapeds

Go to Apify Store
GitHub Trending & Topic Scraper

GitHub Trending & Topic Scraper

Scrapes GitHub trending repositories by language and date, or searches popular repositories by technical topic (LLM, AI, Agents) with high-speed hybrid extraction.

Pricing

from $1.50 / 1,000 repository scrapeds

Rating

0.0

(0)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

🚀 GitHub Trending & Topic Scraper — Discover Hot Repos by Topic, Language & Time Window

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Extract trending and popular GitHub repositories in two modes: scrape the official GitHub Trending charts (daily / weekly / monthly, optionally filtered by programming language), or search popular repositories by topic / technology keyword (e.g. llm, agents, machine-learning). Pure HTTP — no browser, no GitHub token, and no OAuth required.

✨ Features

  • 📈 Official Trending charts — Scrape github.com/trending for daily, weekly, or monthly hot repos
  • 🔤 Language filter — Narrow trending to a single language (e.g. python, javascript, go, rust)
  • 🏷️ Topic / keyword search — Find the most-starred repos for any technology topic (e.g. llm, generative-ai, agents)
  • 🔁 API + HTML fallback — Topic mode tries the GitHub Search API first, then auto-falls back to HTML scraping if the API is rate-limited
  • Star & fork counts — Total stars, forks, and (in trending mode) stars gained during the selected period
  • Pure HTTP — Powered by got-scraping (dynamic browser-header fingerprinting) + Cheerio; no browser instance needed
  • 🔒 100% anonymous — No GitHub login, personal access token, or OAuth credentials required
  • 🛡️ Diagnostic guard (UAG-SG) — On a zero-result run, writes the raw HTML to the Key-Value Store and returns a remediation guide instead of silently succeeding
  • 🌍 Proxy-ready — Optional proxy configuration to rotate IPs and avoid GitHub rate limits

📥 Input

ParameterTypeRequiredDefaultDescription
modestring"trending""trending" (official charts) or "topic" (search by keyword)
languagestring""Language filter for trending charts (e.g. python, go). Only used in trending mode
sincestring"daily"Trending period: daily, weekly, monthly. Only used in trending mode
topicstring"llm"Technology topic / keyword to search (e.g. llm, agents). Only used in topic mode
maxItemsinteger25Maximum repositories to scrape (min 5, max 200)
proxyConfigurationobject{ "useApifyProxy": true }Proxy settings to rotate IPs and avoid rate limits

Input Examples

// Trending mode
{ "mode": "trending", "language": "python", "since": "weekly", "maxItems": 25, "proxyConfiguration": { "useApifyProxy": true } }
// Topic mode
{ "mode": "topic", "topic": "llm", "maxItems": 50, "proxyConfiguration": { "useApifyProxy": true } }

📤 Output

Each repository is pushed as one dataset item. Field availability depends on the mode and code path used.

FieldTypeDescription
repoNamestringRepository name
ownerstringOwner / organization login
urlstringFull repository URL
descriptionstringRepository description
languagestringPrimary language. Trending → repo language (fallback "Markdown/Other"); Topic API → repo language (fallback "Other"); Topic HTML fallback → literal "GitHub Topic"
starsnumberTotal star count
forksnumberTotal fork count (0 in the topic HTML fallback)
starsAddednumberStars gained during the selected period (trending mode only)
scrapedAtstringISO 8601 timestamp

Output Example

{
"repoName": "awesome-llm-apps",
"owner": "Shubhamsaboo",
"url": "https://github.com/Shubhamsaboo/awesome-llm-apps",
"description": "Collection of awesome LLM apps with AI Agents and RAG.",
"language": "Python",
"stars": 38214,
"forks": 4127,
"starsAdded": 612,
"scrapedAt": "2026-06-06T12:00:00.000Z"
}

In topic mode, starsAdded is omitted; the topic HTML fallback also sets forks to 0 and language to "GitHub Topic".

Zero-Result Diagnostic Output

If a run extracts no repositories, the actor does not push an empty success. It saves the raw HTML to the Key-Value Store (key debug-github-html) and pushes a single diagnostic record with setup_status: "DIAGNOSTIC_GUIDE", a message explaining likely causes (IP rate-limited, language not trending today, or topic keyword with no match), and a remediation_steps array (enable a proxy, verify the language value, try a generic topic, inspect the saved HTML).

📋 Use Cases

  • Tech trend monitoring — Track which repos are exploding on the daily/weekly/monthly charts
  • Topic discovery — Find the top-starred projects for any keyword (llm, agents, rag, cli)
  • Content & newsletters — Auto-source "trending this week" lists for blogs and digests
  • Investment / scouting signals — Use starsAdded momentum to detect fast-rising projects
  • Dataset building — Collect repository metadata for analysis, dashboards, or ML features

✅ Capabilities & Limits

Stated up front, so you do not pay a run to find out.

Built here: topic mode is not free-text search. It queries the GitHub API with the literal qualifier q=topic:<keyword>&sort=stars - an exact topic slug ranked by all-time stars, not recent momentum. The keyword is only trimmed and lowercased, never slugified, so machine learning goes out verbatim and matches nothing. Pass machine-learning.

Input / featureSupportedNotes
moderequiredChoose between official daily/weekly/monthly trending charts or searching popular repositories by topic/technology keyword.
Result volume (maxItems)⚠️Maximum number of repositories to scrape.
languageOptional programming language to filter official trending charts (e.g. javascript, python, go, rust). Only used in 'trending' mode.
sinceTime window for official trending charts. Only used in 'trending' mode.
topicTechnology topic or keyword to search (e.g. llm, generative-ai, agents, machine-learning). Only used in 'topic' mode.
Proxy⚠️GitHub reads are lightweight, but using a proxy is recommended to avoid rate limits.

❓ FAQ

Q: What is the difference between the two modes? A: trending scrapes the official github.com/trending charts (supports a language filter and a since time window: daily/weekly/monthly). topic searches the most-starred repositories for a keyword via the GitHub Search API, with an HTML fallback to github.com/topics/<keyword> if the API is unavailable.

Q: Do I need a GitHub API token or login? A: No. The actor runs 100% anonymously — no OAuth, personal access token, or account is required. Topic mode uses GitHub's public search endpoint with no authentication, and because unauthenticated requests are rate-limited, it automatically falls back to HTML scraping when the limit is hit.

Q: Why is starsAdded missing in topic mode, and why does language sometimes say "GitHub Topic"? A: "Stars gained during the period" only exists on the official Trending charts, so starsAdded is trending-only. In the topic HTML fallback the per-repo language is not reliably available, so language is set to the literal "GitHub Topic"; in trending mode, repos with no detected language (e.g. docs-only) fall back to "Markdown/Other".

Q: My run returned 0 items — what happened? A: GitHub may have rate-limited your IP, the language might not be trending today, or the topic keyword may not match any repository. The actor saves the raw HTML to the debug-github-html Key-Value Store key and returns a remediation guide. Enabling proxyConfiguration usually resolves rate-limit issues.

Q: How many repositories can I get per run? A: Between 5 and 200 (maxItems). Topic API mode caps the page size at 100 per the GitHub Search API.

💰 Pricing

$0.003 per repository scraped, Apify platform usage of the run is included — compute and proxy are not billed to you separately.

This actor uses Pay-Per-Event (PPE) pricing with a single billable event:

EventWhen it fires
repo-scrapedOnce per repository successfully extracted and pushed

You are charged only for repositories actually returned — diagnostic (zero-result) runs do not bill the repo-scraped event, and the actor owner's own runs skip billing automatically. For current per-event rates, see the live pricing on the actor page: apify.com/viralanalyzer/github-trending-by-topic.

📝 Changelog

v1.0 (Current)

  • ✅ Dual-mode extraction: official Trending charts + topic/keyword search
  • ✅ Language filter and daily/weekly/monthly time windows for trending
  • ✅ GitHub Search API in topic mode with automatic HTML fallback
  • ✅ Stars, forks, and period stars-added (trending) extraction
  • ✅ Pure HTTP via got-scraping + Cheerio (no browser, no token)
  • ✅ Universal Autocheck Guard (UAG-SG): zero-result diagnostics + raw HTML capture
  • ✅ Proxy support to avoid GitHub rate limits
  • ✅ PPE billing via repo-scraped with owner-skip

🚀 GitHub Trending & Topic Scraper — Descubra Repositórios em Alta por Tópico, Linguagem & Período

🇺🇸 English | 🇧🇷 Português

Extraia repositórios do GitHub em alta e populares em dois modos: raspe as listas oficiais de Trending do GitHub (diário / semanal / mensal, opcionalmente filtrado por linguagem), ou busque repositórios populares por tópico / palavra-chave de tecnologia (ex: llm, agents, machine-learning). HTTP puro — sem navegador, sem token do GitHub e sem OAuth.

✨ Funcionalidades

  • 📈 Listas oficiais de Trending — Raspe github.com/trending para repos em alta diário, semanal ou mensal
  • 🔤 Filtro por linguagem — Restrinja o trending a uma única linguagem (ex: python, javascript, go, rust)
  • 🏷️ Busca por tópico / palavra-chave — Encontre os repos mais estrelados para qualquer tópico de tecnologia (ex: llm, generative-ai, agents)
  • 🔁 API + fallback HTML — O modo tópico tenta a API de Busca do GitHub primeiro e, se houver rate limit, cai automaticamente para scraping HTML
  • Contagem de estrelas & forks — Total de estrelas, forks e (no modo trending) estrelas ganhas no período selecionado
  • HTTP puro — Usa got-scraping (fingerprinting dinâmico de cabeçalhos de navegador) + Cheerio; sem instância de navegador
  • 🔒 100% anônimo — Sem login, token de acesso pessoal ou credenciais OAuth do GitHub
  • 🛡️ Guard de diagnóstico (UAG-SG) — Em runs com zero resultados, salva o HTML bruto no Key-Value Store e retorna um guia de remediação em vez de "suceder" vazio
  • 🌍 Pronto para proxy — Configuração de proxy opcional para rotacionar IPs e evitar rate limits do GitHub

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
modestring"trending""trending" (listas oficiais) ou "topic" (busca por palavra-chave)
languagestring""Filtro de linguagem para o trending (ex: python, go). Usado apenas no modo trending
sincestring"daily"Período do trending: daily, weekly, monthly. Usado apenas no modo trending
topicstring"llm"Tópico / palavra-chave de tecnologia a buscar (ex: llm, agents). Usado apenas no modo topic
maxItemsinteiro25Máximo de repositórios a raspar (mín. 5, máx. 200)
proxyConfigurationobjeto{ "useApifyProxy": true }Configuração de proxy para rotacionar IPs e evitar rate limits

Exemplos de Entrada

// Modo trending
{ "mode": "trending", "language": "python", "since": "weekly", "maxItems": 25, "proxyConfiguration": { "useApifyProxy": true } }
// Modo tópico
{ "mode": "topic", "topic": "llm", "maxItems": 50, "proxyConfiguration": { "useApifyProxy": true } }

📤 Saída

Cada repositório é enviado como um item do dataset. A disponibilidade dos campos depende do modo e do caminho de código usado.

CampoTipoDescrição
repoNamestringNome do repositório
ownerstringLogin do dono / organização
urlstringURL completa do repositório
descriptionstringDescrição do repositório
languagestringLinguagem principal. Trending → linguagem do repo (fallback "Markdown/Other"); Tópico API → linguagem do repo (fallback "Other"); Tópico HTML → literal "GitHub Topic"
starsnúmeroTotal de estrelas
forksnúmeroTotal de forks (0 no fallback HTML do tópico)
starsAddednúmeroEstrelas ganhas no período selecionado (apenas modo trending)
scrapedAtstringTimestamp ISO 8601

Exemplo de Saída

{
"repoName": "awesome-llm-apps",
"owner": "Shubhamsaboo",
"url": "https://github.com/Shubhamsaboo/awesome-llm-apps",
"description": "Collection of awesome LLM apps with AI Agents and RAG.",
"language": "Python",
"stars": 38214,
"forks": 4127,
"starsAdded": 612,
"scrapedAt": "2026-06-06T12:00:00.000Z"
}

No modo tópico, starsAdded é omitido; o fallback HTML do tópico também define forks como 0 e language como "GitHub Topic".

Saída de Diagnóstico (Zero Resultados)

Se um run não extrair nenhum repositório, o actor não envia um sucesso vazio. Ele salva o HTML bruto no Key-Value Store (chave debug-github-html) e envia um único registro de diagnóstico com setup_status: "DIAGNOSTIC_GUIDE", uma message explicando as causas prováveis (IP com rate limit, linguagem não está em alta hoje, ou palavra-chave sem correspondência) e um array remediation_steps (ativar proxy, verificar o valor da linguagem, tentar um tópico genérico, inspecionar o HTML salvo).

📋 Casos de Uso

  • Monitoramento de tendências — Acompanhe quais repos estão explodindo nas listas diária/semanal/mensal
  • Descoberta por tópico — Encontre os projetos mais estrelados para qualquer palavra-chave (llm, agents, rag, cli)
  • Conteúdo & newsletters — Gere listas "em alta esta semana" para blogs e digests
  • Sinais de scouting / investimento — Use o momentum de starsAdded para detectar projetos em rápida ascensão
  • Construção de datasets — Colete metadados de repositórios para análise, dashboards ou features de ML

❓ Perguntas Frequentes

P: Qual a diferença entre os dois modos? R: trending raspa as listas oficiais github.com/trending (suporta filtro language e janela de tempo since: diário/semanal/mensal). topic busca os repositórios mais estrelados para uma palavra-chave via API de Busca do GitHub, com fallback HTML para github.com/topics/<palavra-chave> se a API estiver indisponível.

P: Preciso de um token de API ou login do GitHub? R: Não. O actor roda 100% de forma anônima — sem OAuth, token de acesso pessoal ou conta. O modo tópico usa o endpoint público de busca do GitHub sem autenticação e, como requisições sem autenticação têm rate limit, ele cai automaticamente para scraping HTML quando o limite é atingido.

P: Por que starsAdded não aparece no modo tópico, e por que language às vezes mostra "GitHub Topic"? R: "Estrelas ganhas no período" só existe nas listas oficiais de Trending, então starsAdded é exclusivo do trending. No fallback HTML do tópico a linguagem por repo não está disponível de forma confiável, então language recebe o literal "GitHub Topic"; no modo trending, repos sem linguagem detectada (ex: só docs) recebem o fallback "Markdown/Other".

P: Meu run retornou 0 itens — o que aconteceu? R: O GitHub pode ter aplicado rate limit ao seu IP, a linguagem pode não estar em alta hoje, ou a palavra-chave pode não corresponder a nenhum repositório. O actor salva o HTML bruto na chave debug-github-html do Key-Value Store e retorna um guia de remediação. Ativar o proxyConfiguration geralmente resolve problemas de rate limit.

P: Quantos repositórios consigo por run? R: Entre 5 e 200 (maxItems). O modo tópico via API limita o tamanho da página a 100, conforme a API de Busca do GitHub.

💰 Preços

$0.003 por repositório extraído, o uso de plataforma da Apify está incluído — compute e proxy não são cobrados à parte.

Este actor usa precificação Pay-Per-Event (PPE) com um único evento cobrável:

EventoQuando dispara
repo-scrapedUma vez por repositório extraído e enviado com sucesso

Você é cobrado apenas pelos repositórios realmente retornados — runs de diagnóstico (zero resultados) não cobram o evento repo-scraped, e os runs do próprio dono do actor pulam a cobrança automaticamente. Para os valores por evento vigentes, veja o preço ao vivo na página do actor: apify.com/viralanalyzer/github-trending-by-topic.

🔗 Actors Relacionados

📝 Changelog

v1.0 (Atual)

  • ✅ Extração dual-mode: listas oficiais de Trending + busca por tópico/palavra-chave
  • ✅ Filtro por linguagem e janelas diário/semanal/mensal para trending
  • ✅ API de Busca do GitHub no modo tópico com fallback HTML automático
  • ✅ Extração de estrelas, forks e estrelas-ganhas-no-período (trending)
  • ✅ HTTP puro via got-scraping + Cheerio (sem navegador, sem token)
  • ✅ Universal Autocheck Guard (UAG-SG): diagnóstico de zero resultados + captura de HTML bruto
  • ✅ Suporte a proxy para evitar rate limits do GitHub
  • ✅ Cobrança PPE via repo-scraped com owner-skip