GitHub Repository Stats & Search API avatar

GitHub Repository Stats & Search API

Pricing

Pay per event

Go to Apify Store
GitHub Repository Stats & Search API

GitHub Repository Stats & Search API

Get GitHub repository stats through the official REST API: stars, forks, watchers, issues, PRs, languages, releases, contributors count, commit activity, license and topics. Look up repos, search by language, stars, topics and dates, or list an organization.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Rod Services

Rod Services

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

GitHub Repository Stats & Search API exports clean GitHub repository data through the official GitHub REST API. For any repo you get stars, forks, watchers, open issues, open PRs, languages, license, topics, latest release, contributors count, 52-week commit activity and dates. Look up repos by URL, search GitHub by language, stars, topics and dates, or list every public repo of an organization. No browser, no HTML scraping, no personal data.

What does GitHub Repository Stats & Search API do?

It turns GitHub repositories into one flat, typed row each. Paste facebook/react or https://github.com/microsoft/vscode, or search for topic:ai-agents stars:>1000 pushed:>=2026-06-01. The Actor calls api.github.com, adds the extras you picked and saves the result to a dataset.

Try it now: the prefilled input fetches 2 famous repositories in a few seconds, without a GitHub token. It uses about 10 of GitHub's 60 free hourly requests. Adding a free GitHub token is recommended; without one, runs share GitHub's 60 requests per hour limit.

Running on Apify gives you:

  • API access to runs and datasets from any language, plus an MCP endpoint for AI agents
  • Scheduling, for example a daily snapshot of your watchlist
  • Integrations with Google Sheets, Airtable, Zapier, Make, Slack and webhooks
  • Monitoring and alerts when a run fails

Why use a GitHub repository stats scraper?

  • Open source research. Measure adoption and health of projects: stars, forks, release cadence, commit activity, open issue and PR backlog.
  • Developer tools market analysis. Map a category, such as vector databases or JavaScript bundlers. Compare language mix, licenses and momentum side by side.
  • VC scouting and deal sourcing. Find fast-growing repos before they trend. Filter new repos by creation date, stars range and topics, then track them weekly.
  • Trending repos tracking. Schedule a search sorted by stars or by recent updates and push new entries to Slack.
  • AI agents and LLM tools. Give an agent one tool that answers "how active is this repo?" with numbers and a source link.
  • Due diligence and dependency risk. Spot archived, unmaintained or unlicensed dependencies.

How to get GitHub repository data

  1. Open the Input tab.
  2. Choose a Mode: repositories by URL, search, or organization.
  3. Enter repo URLs, search filters or organization names.
  4. Pick extras: languages, latest release, open PRs, contributors count, commit activity, README.
  5. Optional: add your own GitHub token for 5,000 requests per hour.
  6. Click Start. Download results as JSON, CSV, Excel or HTML, or read them through the API.

Input

See the Input tab for full descriptions. Main fields:

FieldModeNotes
modeallrepos, search or org
repositoriesreposowner/name, https://github.com/owner/name, .git URLs all work. Renamed repos are followed
searchQuerysearchFree text plus any GitHub search qualifier
languagesearchPrimary language, for example Rust
minStars, maxStarssearchStars range
topicssearchAll topics must match
createdFrom, createdTosearchCreation date range
pushedFrom, pushedTosearchLast push date range
sort, ordersearchStars, forks, updated, help wanted issues, best match
organizationsorgOrg or user logins, public repos only
includeForks, includeArchivedsearch, orgFilters
maxItemsallDefault 50
include*allExtras. Each costs 1 GitHub request per repo
githubTokenallOptional, secret. A fine-grained token with no extra permissions is enough
maxRateLimitWaitSecsallWait for the hourly reset up to this long, default 600

Example: new AI agent repos with momentum.

{
"mode": "search",
"topics": ["ai-agents"],
"minStars": 500,
"createdFrom": "2026-01-01",
"pushedFrom": "2026-09-01",
"sort": "stars",
"maxItems": 200,
"includeCommitActivity": true
}

Output

One item per repository. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Views in the Output tab: Overview, Activity and Details. A RUN_SUMMARY record in the key-value store lists repos not found, why the run stopped early, if it did, and the remaining rate limit. Repos that do not exist or are private are skipped and not charged.

{
"fullName": "microsoft/vscode",
"requestedName": "microsoft/vscode",
"url": "https://github.com/microsoft/vscode",
"description": "Visual Studio Code",
"stars": 193154,
"forks": 43621,
"watchers": 3543,
"openIssues": 18445,
"openPullRequests": 2705,
"language": "TypeScript",
"languages": { "TypeScript": 177927887, "CSS": 2992525, "JavaScript": 1163259 },
"languagesPercent": { "TypeScript": 96.2, "CSS": 1.6, "JavaScript": 0.6 },
"topics": ["editor", "electron", "microsoft", "typescript", "visual-studio-code"],
"license": "MIT",
"createdAt": "2015-09-03T20:23:38Z",
"pushedAt": "2026-09-27T08:36:17Z",
"updatedAt": "2026-09-27T11:16:24Z",
"archived": false,
"isFork": false,
"defaultBranch": "main",
"latestRelease": {
"tag": "1.139.1",
"name": "1.139.1",
"publishedAt": "2026-09-25T09:58:03Z",
"url": "https://github.com/microsoft/vscode/releases/tag/1.139.1"
},
"contributorsCount": 315,
"commitActivity52w": { "totalCommits": 33289, "firstWeekStart": "2025-10-05", "weeklyCommits": [403, 388, 706] },
"commits52w": 33289,
"homepage": "https://code.visualstudio.com",
"sizeKb": 1496935,
"source": "repos",
"fetchedAt": "2026-09-27T11:16:57.394Z"
}

Data fields

FieldDescription
fullName, owner, name, urlRepository identity
requestedNameMode repos: your input entry. Differs from fullName when GitHub redirects a renamed repo
description, homepage, topicsAs set by the maintainers. E-mails are removed
stars, forks, watcherswatchers is real subscribers, not the stars alias
openIssues, openPullRequestsWith the PR extra, openIssues excludes PRs
language, languages, languagesPercentPrimary language, bytes per language, share per language. Shares under 0.05 % are left out
license, licenseNameSPDX id, for example MIT, or Other
createdAt, pushedAt, updatedAtISO timestamps
archived, isFork, defaultBranch, sizeKbRepository flags and size
latestReleasetag, name, publishedAt, url
contributorsCountContributors linked to GitHub accounts, count only
commitActivity52w, commits52wWeekly commits for the last 52 weeks and their total
readmeExcerptFirst 2,000 characters of the README, e-mails removed
source, fetchedAtMode that produced the row and fetch time

How much does it cost to get GitHub repository stats?

Price: $2 per 1,000 repositories, all extras included, plus $0.001 per run start. The prefilled run of 2 repos costs half a cent. Repos that are not found are free. Set Maximum cost per run and the Actor stops at that budget. With Apify's free $5 monthly credit you can fetch about 2,500 repositories per month.

GitHub's own limits matter more than money:

  • Without a token: 60 requests per hour per IP. Default options use 5 requests per repo, so about 11 repos per hour. Apify IPs can be shared, so the limit may already be partly used. If it runs out, the Actor keeps what it saved, stops with a clear status message and still finishes as succeeded. You pay only for saved repos.
  • With your token: 5,000 requests per hour, about 1,000 repos per hour with default extras. Search is limited to 30 queries per minute.

Tips for faster and cheaper runs

  • Add a GitHub token. Open GitHub token settings, create a fine-grained token, choose Public repositories and add no permissions. Paste it into githubToken. It is stored encrypted and never logged.
  • Turn off extras you do not need. Each extra costs 1 request per repo.
  • GitHub search returns at most 1,000 results per query. Split big searches by stars ranges or creation dates.
  • Commit activity is computed by GitHub on demand. The first call for a repo can come back empty; the next run usually has it.
  • For very large repos, GitHub may refuse the contributor list. Then contributorsCount is null.
  • Raise maxRateLimitWaitSecs for jobs larger than your hourly limit, or schedule smaller runs.

FAQ, disclaimers and support

Is it legal to collect GitHub repository data? This Actor uses only the official GitHub REST API and public repositories. It follows GitHub's API Terms and Acceptable Use Policies. It returns repository-level data only: no user e-mails, no profile data, contributors only as a count. Do not use the data for spam, recruiting outreach or selling personal information, which GitHub forbids. You are responsible for your use of the data.

Does it scrape github.com pages? No. Only api.github.com is called.

Can I get private repositories? No. The Actor is limited to public repositories on purpose.

Why is contributorsCount lower than the number on GitHub? The API counts contributors linked to GitHub accounts, and GitHub links at most 500 commit author e-mails per repository. Anonymous contributors are not counted, to avoid handling commit e-mails.

What happens if my input is invalid? The run still ends SUCCEEDED and you pay only the small start fee. No repository is charged. The dataset gets one help row, and the run status message says the same:

{
"error": true,
"errorCode": "EMPTY_INPUT",
"message": "Mode \"repos\" needs at least one entry in \"repositories\".",
"howToFix": "Add repositories as \"owner/repo\" or GitHub URLs ..."
}

Codes: EMPTY_INPUT (nothing to fetch for the chosen mode), INVALID_INPUT (a wrong repository or organization name, date, sort or star range), INVALID_TOKEN (GitHub rejected githubToken), QUERY_REJECTED (GitHub rejected the search query) and NO_RESULTS (nothing matched, with the names that were not found). Hitting the GitHub rate limit is not an error either: the run keeps what it saved and says when the limit resets. GitHub outages still fail the run.

Something missing or broken? Open an issue in the Issues tab. Custom data pipelines, for example weekly market maps or trend alerts, are available on request.