GitHub Repositories Scraper - Stars, Forks & Topics avatar

GitHub Repositories Scraper - Stars, Forks & Topics

Pricing

from $6.80 / 1,000 results

Go to Apify Store
GitHub Repositories Scraper - Stars, Forks & Topics

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

GitHub Repositories Scraper - Stars, Forks & Topics

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
searchQuerystringnomachine learningKeyword or GitHub search query (for example machine learning, web framework language:rust stars:>1000).
maxReposintegerno10Maximum number of repositories to collect.
withAiSummarybooleannofalsePaid add-on. Adds a short AI summary of what each repository does, sourced from its README and description. Charged per repo summarised.
withAiTopicsbooleannofalsePaid 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.

FieldTypeDescription
idintegerGitHub numeric repository ID.
fullNamestringowner/repo identifier.
namestringRepository name.
ownerstringOwner login.
ownerTypestringUser or Organization.
ownerUrlstringOwner profile URL.
ownerAvatarstringOwner avatar image URL.
descriptionstringRepository description, or null.
htmlUrlstringCanonical repository URL.
homepagestringProject homepage URL, or null.
starsintegerStar count.
forksintegerFork count.
watchersintegerWatcher count.
openIssuesintegerOpen issues and pull requests count.
languagestringPrimary language, or null.
topicsstring[]Repository topics set by the owner.
licensestringSPDX license ID, or null.
isForkbooleanWhether the repository is a fork.
isArchivedbooleanWhether the repository is archived.
isTemplatebooleanWhether the repository is a template.
visibilitystringRepository visibility, usually public.
hasIssuesbooleanIssues feature enabled.
hasWikibooleanWiki feature enabled.
hasPagesbooleanGitHub Pages enabled.
hasProjectsbooleanProjects feature enabled.
hasDownloadsbooleanDownloads feature enabled.
allowForkingbooleanWhether forking is allowed.
defaultBranchstringDefault branch name.
sizeintegerRepository size in KB.
createdAtstringISO 8601 creation timestamp.
updatedAtstringISO 8601 last-updated timestamp.
pushedAtstringISO 8601 last-push timestamp.
ownerNamestringOwner display name, or null.
ownerCompanystringOwner company, or null.
ownerWebsitestringOwner website, or null.
ownerLocationstringOwner location, or null.
ownerEmailstringOwner public email, or null.
ownerTwitterstringOwner X (Twitter) handle, or null.
ownerBiostringOwner bio, or null.
ownerHireablebooleanOwner "available for hire" flag, or null.
ownerFollowersintegerOwner follower count.
ownerPublicReposintegerOwner public repository count.
aiSummarystringAI add-on. Short summary of the repo (only when withAiSummary).
aiTopicsstring[]AI add-on. Generated topic keywords (only when withAiTopics).
aiCategorystringAI add-on. Normalized category (only when withAiTopics).
sourcestringAlways GitHub.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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 maxRepos and 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:

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.