GitHub Repositories Scraper - Stars, Forks & Topics
Pricing
from $6.80 / 1,000 results
GitHub Repositories Scraper - Stars, Forks & Topics
Scrape GitHub repositories by keyword with stars, forks, language, topics, license, open issues, owner and timestamps. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
GitHub Repositories Scraper - Stars, Forks & Topics
Here is one real result, with every field the actor returns:
{"id": 65616765,"fullName": "gokcehan/lf","name": "lf","owner": "gokcehan","ownerType": "User","ownerUrl": "https://github.com/gokcehan","ownerAvatar": "https://avatars.githubusercontent.com/u/1835672?v=4","description": "Terminal file manager","htmlUrl": "https://github.com/gokcehan/lf","homepage": null,"stars": 9464,"forks": 374,"watchers": 9464,"openIssues": 81,"language": "Go","topics": ["file-manager", "terminal"],"license": "MIT","isFork": false,"isArchived": false,"isTemplate": false,"visibility": "public","hasIssues": true,"hasWiki": true,"hasPages": false,"hasProjects": true,"hasDownloads": false,"allowForking": true,"defaultBranch": "master","size": 4648,"createdAt": "2016-08-13T12:45:44Z","updatedAt": "2026-08-13T23:43:44Z","pushedAt": "2026-08-13T23:43:40Z","ownerName": "Gökçehan Kara","ownerCompany": null,"ownerWebsite": "https://gokcehan.github.io/","ownerLocation": "Istanbul, Turkey","ownerEmail": null,"ownerTwitter": null,"ownerBio": null,"ownerHireable": null,"ownerFollowers": 250,"ownerPublicRepos": 15,"aiSummary": "LF is a terminal file manager written in Go, designed for users who prefer a lightweight and efficient way to manage files directly from the command line. It offers a customizable interface and is inspired by the ranger file manager, making it suitable for developers and power users looking for a fast and flexible file management solution.","aiTopics": ["terminal", "file-management", "Go", "cross-platform", "asynchronous-io", "customizable", "lightweight", "open-source", "cli", "productivity"],"aiCategory": "file-manager","source": "GitHub","observedAt": "2026-08-14T07:40:44.544Z"}
The most complete GitHub repositories scraper available. It returns every repository and owner field the GitHub search exposes, including stars, forks, language, topics, license and owner contact details, plus optional AI add-ons that summarize each repo and generate normalized topics, and gives you full GitHub search syntax to target exactly the repositories you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor runs a GitHub repository search for your keyword or full search query, paginates through the matches, and writes one normalized record per repository to the run's dataset. Each record carries the repository metadata (stars, forks, watchers, open issues, language, topics, license, timestamps and feature flags) plus the owner's public profile fields (name, company, website, location, email, followers). Optional paid AI add-ons write a short summary of what each repo does and generate a normalized category with topic keywords, both sourced from the repository's README and description.
Data covers only what GitHub exposes publicly through search. Owner fields the developer keeps private are returned as null; the actor never invents a value.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the top 2 repositories for "terminal file manager" with AI summary and topics.
{"searchQuery": "terminal file manager","maxRepos": 2,"withAiSummary": true,"withAiTopics": true}
Use full GitHub search syntax in searchQuery, for example web framework language:rust stars:>1000.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQuery | string | no | machine learning | Keyword or GitHub search query (for example machine learning, web framework language:rust stars:>1000). |
maxRepos | integer | no | 10 | Maximum number of repositories to collect. |
withAiSummary | boolean | no | false | Paid add-on. Adds a short AI summary of what each repository does, sourced from its README and description. Charged per repo summarised. |
withAiTopics | boolean | no | false | Paid add-on. Adds a normalized category and AI-generated topic keywords, sourced from the README and description. Charged per repo processed. |
AI add-ons are disabled for free (non-paying) Apify users.
Output reference
One dataset item per repository. Types: string, integer, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
id | integer | GitHub numeric repository ID. |
fullName | string | owner/repo identifier. |
name | string | Repository name. |
owner | string | Owner login. |
ownerType | string | User or Organization. |
ownerUrl | string | Owner profile URL. |
ownerAvatar | string | Owner avatar image URL. |
description | string | Repository description, or null. |
htmlUrl | string | Canonical repository URL. |
homepage | string | Project homepage URL, or null. |
stars | integer | Star count. |
forks | integer | Fork count. |
watchers | integer | Watcher count. |
openIssues | integer | Open issues and pull requests count. |
language | string | Primary language, or null. |
topics | string[] | Repository topics set by the owner. |
license | string | SPDX license ID, or null. |
isFork | boolean | Whether the repository is a fork. |
isArchived | boolean | Whether the repository is archived. |
isTemplate | boolean | Whether the repository is a template. |
visibility | string | Repository visibility, usually public. |
hasIssues | boolean | Issues feature enabled. |
hasWiki | boolean | Wiki feature enabled. |
hasPages | boolean | GitHub Pages enabled. |
hasProjects | boolean | Projects feature enabled. |
hasDownloads | boolean | Downloads feature enabled. |
allowForking | boolean | Whether forking is allowed. |
defaultBranch | string | Default branch name. |
size | integer | Repository size in KB. |
createdAt | string | ISO 8601 creation timestamp. |
updatedAt | string | ISO 8601 last-updated timestamp. |
pushedAt | string | ISO 8601 last-push timestamp. |
ownerName | string | Owner display name, or null. |
ownerCompany | string | Owner company, or null. |
ownerWebsite | string | Owner website, or null. |
ownerLocation | string | Owner location, or null. |
ownerEmail | string | Owner public email, or null. |
ownerTwitter | string | Owner X (Twitter) handle, or null. |
ownerBio | string | Owner bio, or null. |
ownerHireable | boolean | Owner "available for hire" flag, or null. |
ownerFollowers | integer | Owner follower count. |
ownerPublicRepos | integer | Owner public repository count. |
aiSummary | string | AI add-on. Short summary of the repo (only when withAiSummary). |
aiTopics | string[] | AI add-on. Generated topic keywords (only when withAiTopics). |
aiCategory | string | AI add-on. Normalized category (only when withAiTopics). |
source | string | Always GitHub. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed run, where a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"searchQuery": "terminal file manager", "maxRepos": 2, "withAiSummary": true, "withAiTopics": true}):
{"id": 65616765,"fullName": "gokcehan/lf","name": "lf","owner": "gokcehan","ownerType": "User","description": "Terminal file manager","htmlUrl": "https://github.com/gokcehan/lf","stars": 9464,"forks": 374,"watchers": 9464,"openIssues": 81,"language": "Go","topics": ["file-manager", "terminal"],"license": "MIT","defaultBranch": "master","createdAt": "2016-08-13T12:45:44Z","pushedAt": "2026-08-13T23:43:40Z","ownerName": "Gökçehan Kara","ownerWebsite": "https://gokcehan.github.io/","ownerLocation": "Istanbul, Turkey","ownerFollowers": 250,"aiCategory": "file-manager","aiTopics": ["terminal", "file-management", "Go", "cli", "productivity"],"source": "GitHub","observedAt": "2026-08-14T07:40:44.544Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~github-repositories-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQuery":"web framework language:rust stars:>1000","maxRepos":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~github-repositories-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQuery":"machine learning","maxRepos":100,"withAiSummary":true}'
Apify CLI:
apify call scrapers_lat/github-repositories-scraper \--input '{"searchQuery":"kubernetes","maxRepos":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per repository returned (
resultevent). See the pricing tab for the current per-result price. - Optional add-ons. The AI add-ons (
ai_summary,ai_topics) are billed only when they produce usable output for a repo. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results and add-ons. - Free Apify plans are capped at 10 repositories per run and cannot use the AI add-ons. Upgrade for higher
maxReposand AI features.
FAQ and troubleshooting
A run returned 0 records. Why? The search query matched nothing. Loosen the query or check the GitHub search syntax. Zero-result runs are not charged.
Can I use full GitHub search syntax?
Yes. searchQuery is passed through to GitHub search, so qualifiers like language:rust, stars:>1000, topic:cli and created:>2023-01-01 all work.
Why are some owner fields null?
GitHub only exposes owner details the developer publishes. Private fields are returned as null; the actor never guesses a value.
What do the AI add-ons do?
withAiSummary adds a short description of what each repository does, and withAiTopics adds a normalized category plus topic keywords. Both require a paid Apify plan and are billed only when they produce output.
How many repositories can I collect?
Set maxRepos. GitHub search results are paginated by the actor; very large pulls are best split with narrower queries.
Is this an official GitHub tool? No. This actor is independent and has no affiliation with GitHub. It reads only data that is publicly available. Use it in accordance with GitHub's terms of service.
Example tasks
Preconfigured templates for common scenarios. Open one and press Run, or use it as a starting point:
- Machine Learning Repositories
- React Repositories
- Rust Repositories
- Kubernetes Repositories
- LLM Repositories
- Web Scraping Repositories
- Game Engine Repositories
- Blockchain Repositories
- DevOps Repositories
- CLI Tools Repositories
Related scrapers
- npm Packages Scraper: npm package metadata and maintainers.
- Hacker News Scraper: Hacker News stories, comments and users.
- Docker Hub Images Scraper: Docker Hub image metadata and pull stats.
- GitHub Contributor Contacts Scraper: Top contributors and developer emails per repo.
- Crates.io Rust Packages Scraper: Rust crate metadata from crates.io.
- PyPI Packages Scraper: Python package metadata from PyPI.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with GitHub. Accesses only publicly available data. Use in accordance with GitHub's terms of service.
