GitHub Repository Search Scraper — Stars, Language, Topics
Pricing
from $2.56 / 1,000 repository results
GitHub Repository Search Scraper — Stars, Language, Topics
Search GitHub repositories by keyword, language, topic, stars or owner and export stars, forks, license and activity dates. $3.20 per 1,000 repos.
Pricing
from $2.56 / 1,000 repository results
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Features
Share
GitHub Repository Search Scraper finds public GitHub repositories by keyword, programming language, topic, owner, star and fork range, license, and creation or push date, and exports each one with stars, forks, open issues, language, topics, license, owner, and activity dates. It is built for developer-tool marketers, open-source analysts, and researchers, and costs $3.20 per 1,000 repositories on the FREE tier ($0.003201 each) plus a $0.006251 start fee per started GB of memory.
What data does the GitHub scraper return?
It returns one flat record per repository, in the same shape for search results and direct lookups.
| Field | What it contains |
|---|---|
repoName, fullName, url | Repository name, owner/name, and GitHub URL |
description, homepage | Repository description and website link |
owner, ownerType, ownerUrl | Owner login, User or Organization, and profile URL |
stars, forks, openIssues | Star count, fork count, and open issues plus pull requests |
watchers | Subscriber count for direct URL lookups; in search results GitHub returns the star count here |
language, topics | Primary language and GitHub topic tags |
license, licenseName | SPDX key such as mit, and the full license name |
isArchived, isFork | Archive and fork flags |
defaultBranch, sizeKb, hasWiki, hasDiscussions | Repository settings |
createdAt, updatedAt, pushedAt | Creation, last metadata update, and last push |
totalResults, incompleteResults | How many repositories match the query on GitHub, and whether GitHub cut the search short |
scrapedAt, sourceUrl | Retrieval time and the API request that produced the record |
How do I search GitHub repositories by stars, language, and topic?
Fill in any combination of the search fields. The Actor turns them into one GitHub search query, for example web scraping language:python stars:>=100 fork:false archived:false, and pages through the results 100 at a time.
searchQuery: words matched in repository names, descriptions, and READMEs.language,topic(comma-separated; every topic must match),userOrg.minStars,maxStars,minForks,license.createdAfter,pushedAfterasYYYY-MM-DD.excludeForksandexcludeArchived, both on by default.sortbystars(default),forks,updated, orbest-match, withorderdescorasc.
GitHub returns at most 1,000 repositories per search query, so maxResults goes up to 1,000. For wider coverage, split the search, for example by star ranges or creation years.
Can I look up specific repositories by URL?
Yes. Put https://github.com/owner/repo URLs in startRepoUrls. Each is fetched directly and returned in the same record shape. A missing or private repository is skipped with a log warning. If you also fill search fields, the search runs after the URL lookups until maxResults is reached.
When should I use it, and when not?
Use it when you need:
- the most-starred libraries for a language or topic, for market maps and competitor lists;
- new repositories gaining stars, using
createdAfterwithsort: "stars"; - actively maintained projects, using
pushedAfterandexcludeArchived; - metadata for a known list of repositories, refreshed on a schedule.
Do not use it when you need:
- commercial software alternatives with likes and platforms: use AlternativeTo Scraper;
- developer questions about a library: use Stack Overflow Questions Scraper;
- code search, issues, commits, users, contributor lists, or the GitHub Trending page: the Actor searches repositories only.
How do I run it?
Default input, the most-starred web-scraping repositories:
{"searchQuery": "web scraping","sort": "stars","maxResults": 100}
Popular Python repositories created since 2025:
{"language": "python","createdAfter": "2025-01-01","minStars": 500,"sort": "stars","maxResults": 200}
Direct lookups:
{"startRepoUrls": ["https://github.com/facebook/react", "https://github.com/vuejs/core"],"maxResults": 2}
githubToken is optional. Without it, GitHub allows 10 search requests per minute and the Actor waits about 6 seconds between pages; with a classic token that has no scopes, the wait drops to about 2 seconds.
JavaScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/github-repo-search-stars-language-topics').call({topic: 'mcp',minStars: 100,sort: 'stars',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((repo) => [repo.fullName, repo.stars, repo.language]));
Python (apify-client 3.x)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/github-repo-search-stars-language-topics").call(run_input={"topic": "mcp", "minStars": 100, "sort": "stars", "maxResults": 100})for repo in client.dataset(run.default_dataset_id).iterate_items():print(repo["fullName"], repo["stars"], repo["language"])
Use it from an AI assistant
The Actor works from Claude, ChatGPT, Cursor, or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/github-repo-search-stars-language-topics as a server, then ask, for example: "List the 50 most-starred Rust command-line tools on GitHub pushed to in the last six months, with their licenses."
What does the output look like?
Records from the default run on 2026-10-26 (descriptions and topics shortened):
[{"repoName": "Scrapling","fullName": "D4Vinci/Scrapling","description": "A Web Scraping framework that handles everything from a single request to a full-scale crawl…","url": "https://github.com/D4Vinci/Scrapling","owner": "D4Vinci","ownerType": "User","ownerUrl": "https://github.com/D4Vinci","stars": 89756,"forks": 9274,"watchers": 89756,"openIssues": 20,"language": "Python","topics": ["ai-scraping", "automation", "crawler", "crawling", "data-extraction"],"license": "bsd-3-clause","licenseName": "BSD 3-Clause \"New\" or \"Revised\" License","isArchived": false,"isFork": false,"homepage": "https://scrapling.readthedocs.io/en/latest/","defaultBranch": "main","sizeKb": 15699,"createdAt": "2024-10-13T20:29:53Z","updatedAt": "2026-10-26T07:20:48Z","pushedAt": "2026-10-22T20:43:49Z","hasWiki": true,"hasDiscussions": true,"totalResults": 139048,"incompleteResults": false,"scrapedAt": "2026-10-26T07:26:20.586Z"},{"repoName": "scrapy","fullName": "scrapy/scrapy","description": "Scrapy, a fast high-level web crawling & scraping framework for Python.","url": "https://github.com/scrapy/scrapy","ownerType": "Organization","stars": 65030,"forks": 12049,"openIssues": 175,"language": "Python","topics": ["crawler", "crawling", "framework", "python"],"license": "bsd-3-clause","createdAt": "2010-02-22T02:01:14Z","pushedAt": "2026-10-22T21:57:27Z","totalResults": 139048}]
How much does it cost to scrape GitHub repositories?
You pay per repository delivered, plus the start fee. Platform usage is included in these prices.
| Event | FREE | BRONZE | SILVER | GOLD, PLATINUM, DIAMOND |
|---|---|---|---|---|
| Repository result (per repository) | $0.003201 | $0.00312 | $0.00304 | $0.00256 |
| Actor start (per started GB of allocated memory) | $0.006251 | $0.006094 | $0.005938 | $0.005 |
The Actor's default memory is 256 MB (it only makes HTTP requests), so a run pays one start event. Worked totals on the FREE tier:
- Default run, 100 repositories: $0.006251 + 100 × $0.003201 = $0.326.
- 1,000 repositories: $0.006251 + 1,000 × $0.003201 = $3.207 (GOLD: $2.565).
Each repository is saved before it is charged, and a repository that appears twice in one run (for example as a direct URL and a search hit) is returned and charged once. If you set a maximum total charge, the run stops cleanly before a repository the limit cannot cover.
Limits and reliability
- Up to 1,000 repositories per run, GitHub's own ceiling for one search query.
- When GitHub's rate limit is hit, the Actor waits for the reset time (at most 60 seconds per wait) and retries the same page; three other consecutive errors stop the search and keep what was saved.
incompleteResults: truemeans GitHub's search timed out on its side and some matches may be missing.- A search with no matches returns an empty dataset; the
OUTPUTrecord and the run's status message say so, and only the start fee is charged. If GitHub refuses or keeps failing the search and nothing was saved, the run ends as failed. - An invalid query (for example a malformed date) fails the run with GitHub's validation message.
FAQ
Do I need a GitHub token?
No. The Actor works unauthenticated. A classic token with no scopes speeds up larger runs; it is sent only to GitHub's API and stored encrypted as a secret input, but never use a token with write scopes.
Can it scrape the GitHub Trending page?
No. It does not read the Trending page. To find new repositories gaining traction, search with createdAfter set to a recent date and sort: "stars".
Why is watchers equal to stars?
GitHub's search response reports the star count in its watchers field. Direct URL lookups return the real subscriber count.
Does it search code, issues, or users?
No. It searches repositories only and returns repository metadata, not file contents.
Can I export the repositories to CSV or Excel?
Yes. Export the run's dataset as JSON, CSV, Excel, XML, or RSS from Apify Console, or read it through the API.
Can I track star growth over time?
Yes. Save a startRepoUrls or search input as a Task, schedule it, and compare stars across runs.
Related Actors
- AlternativeTo Scraper: ranked software alternatives with likes, licenses, and platforms.
- Stack Overflow Questions Scraper: questions by tag with scores, views, and answers.
- devRant Scraper: public developer rants with tags and scores.
- iPad App Store Scraper: iPad app prices, ratings, and versions.
Legal and responsible use
The Actor reads public repository metadata through GitHub's REST API and respects its rate limits. It does not access private repositories or download code. Follow GitHub's terms of service and acceptable-use policies, and each repository's license when you reuse its content.
Last verified: 2026-10-27