GitHub Repo Intel — Search, Stars, Activity, Contributors avatar

GitHub Repo Intel — Search, Stars, Activity, Contributors

Pricing

from $3.50 / 1,000 result items

Go to Apify Store
GitHub Repo Intel — Search, Stars, Activity, Contributors

GitHub Repo Intel — Search, Stars, Activity, Contributors

GitHub repository intelligence for AI agents and analysts: explicit repos, repository search with qualifiers (stars, language, topic, dates, license), org/user listings.

Pricing

from $3.50 / 1,000 result items

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

GitHub Repo Intel — search, stars, activity, contributors, health

One clean JSON per repository, built for AI agents and analysts: stars, forks, open issues split from pull requests, language breakdown, 52-week commit activity, releases, top contributors with a bus-factor signal, community-health profile and README. Feed it explicit repos, a GitHub repository search query with qualifiers, or an organisation / user to list. No API key, proxy or browser needed — works on GitHub's public REST API (60 requests/h); drop in a token for 5000/h.

Use cases

  • Dependency due diligence — is this library maintained? Days since last push/release, active weeks, contributor count, top-contributor share, archived flag.
  • Competitor / market scantopic:mcp language:typescript stars:>500 pushed:>2026-06-01 sorted by stars, refreshed weekly.
  • Deal sourcing — new repos in a niche (createdAfter), with maxStars to catch early-stage projects before they trend.
  • Portfolio monitoring — list every repo of your orgs (orgs) and alert when daysSincePush grows or openPullRequests piles up.
  • Developer-relations research — who are the top contributors of the projects your users depend on (contributors, bot-filtered).
  • Open-source compliance — license SPDX id, license file presence, code-of-conduct / contributing files via the community profile.

Input

FieldTypeDefaultNotes
reposstring[]owner/repo, github.com URLs (sub-paths, .git, ?tab= tolerated) or git@github.com:o/r.git. Always fully enriched.
searchQueriesstring[]Repository search queries with qualifiers (see Reference). Up to maxItems per query, GitHub caps at 1000. Not code search.
searchSortselectbest-matchbest-match, stars, forks, help-wanted-issues, updated
searchOrderselectdescdesc, asc
orgsstring[]Organisation logins → GET /orgs/{org}/repos
usersstring[]User logins → GET /users/{user}/repos
listTypeselectsourcessources, all, public, forks, member (users: sources/forks/public emulated client-side)
listSortselectpushedpushed, updated, created, full_name
maxItemsinteger20Cap per search query and per org/user (1–1000)
minStars / maxStarsintegerStar range; search → stars: qualifier, listings → client-side
languagestringPrimary language as GitHub names it (TypeScript, Jupyter Notebook…)
pushedAfter / createdAfterdate YYYY-MM-DDRecency filters (pushed:>=, created:>=)
excludeForks / excludeArchivedbooleanfalsefork:false, archived:false
enrichListedbooleanfalseRun the per-repo enrichments also on search/org/user results (otherwise they cost zero extra requests)
includeReleasesinteger5Latest releases (0–30) + latestRelease, daysSinceRelease
includeContributorsinteger10Top contributors (0–100) + contributorsCount, topContributorShare
includeLanguagesbooleantruelanguages (%), languageBytes
includeCommitActivitybooleantruecommits52w/12w/4w, activeWeeks52w, lastActiveWeek
includeLatestCommitbooleanfalselatestCommit + totalCommits
includeCommunityProfilebooleanfalsecommunity.* health flags
includeIssuePrSplitbooleanfalseopenIssuesOnly, openPullRequests (2 search requests per repo)
includeReadmebooleanfalseFirst 4000 chars of README
fieldsstring[]allWhitelist of top-level output fields (id, fullName, url, fetchedAt always kept)
tokensecret stringGitHub PAT / App token. 60 → 5000 core req/h, 10 → 30 search req/min, private repos you can read

At least one of repos, searchQueries, orgs, users is required. Invalid repo references, dates or enum values fail the run immediately with a message listing every problem.

Reference

Repository-search qualifiers (searchQueries)

Same syntax as github.com/search?type=repositories. Combine with free text; NOT, -qualifier: and ranges (>, >=, <, ..) are supported. Structured inputs (minStars, language, pushedAfter, createdAfter, excludeForks, excludeArchived) are appended automatically unless you already used that qualifier.

QualifierExampleMeaning
in:in:name,description,readmeWhere the free text must match (default name + description)
user: / org:org:vercelRepositories owned by a user / organisation
repo:repo:apify/crawleeA specific repository
stars:stars:>=1000, stars:10..500Star count
forks:forks:>100Fork count
size:size:<5000Size in KB
language:language:rustPrimary language
topic:topic:mcpHas this topic (repeatable)
topics:topics:>3Number of topics
license:license:mit, license:apache-2.0License keyword (SPDX-like, lower-case)
created: / pushed:created:>=2026-01-01, pushed:2026-06-01..2026-09-01Dates
is:is:public, is:privateVisibility (private needs a token)
fork:fork:false, fork:only, fork:trueFork handling
archived:archived:falseArchived state
mirror:mirror:falseMirrors
template:template:trueTemplate repositories
good-first-issues: / help-wanted-issues:good-first-issues:>5Issues with those labels
followers:followers:>500Owner's follower count

Full list: https://docs.github.com/en/search-github/searching-on-github/searching-for-repositories.

Sorts

WhereValues
searchSortbest-match, stars, forks, help-wanted-issues, updated
listSortpushed, updated, created, full_name

Common license SPDX ids returned in license

MIT, Apache-2.0, GPL-3.0, GPL-2.0, LGPL-3.0, AGPL-3.0, BSD-2-Clause, BSD-3-Clause, MPL-2.0, ISC, Unlicense, CC0-1.0, EPL-2.0, BSL-1.0, NOASSERTION (custom / unrecognised), null (no license file).

Rate limits (GitHub, per IP without token / per token)

ResourceNo tokenWith tokenUsed by
core60 / hour5000 / hourrepos, org/user listings, every enrichment
search10 / minute30 / minutesearchQueries, includeIssuePrSplit (2 per repo)

Cost per explicit repo with defaults = 1 + languages + commit activity + releases + contributors (+1 when the repo has more contributors than requested) ≈ 5–6 core requests. Search/org/user results with enrichListed: false cost 1 request per 100 repositories.

Examples

Vet three dependencies before adopting them

{ "repos": ["hono-dev/hono", "colinhacks/zod", "apify/crawlee"], "includeCommunityProfile": true, "includeLatestCommit": true, "includeIssuePrSplit": true }

Weekly market scan: active TypeScript MCP servers with 500+ stars

{ "searchQueries": ["topic:mcp server"], "searchSort": "stars", "minStars": 500, "language": "TypeScript", "pushedAfter": "2026-06-01", "excludeForks": true, "excludeArchived": true, "maxItems": 50, "fields": ["stars", "forks", "pushedAt", "topics", "description", "searchTotalCount"] }

Deal sourcing: new Rust projects created this year that already have traction

{ "searchQueries": ["language:rust created:>=2026-01-01"], "searchSort": "stars", "minStars": 200, "maxStars": 5000, "maxItems": 100 }

Portfolio monitor: every source repo of your orgs, enriched, run daily

{ "orgs": ["x402-foundation", "apify"], "listType": "sources", "listSort": "pushed", "maxItems": 30, "enrichListed": true, "includeReleases": 3, "includeContributors": 5, "includeLatestCommit": true, "token": "ghp_…" }

Bus-factor audit of a user's projects

{ "users": ["sindresorhus"], "minStars": 1000, "maxItems": 20, "enrichListed": true, "includeContributors": 10, "includeLanguages": false }

Output

One item per repository. Failed or missing references (404, 5xx after retries) are not items and are not charged: they are listed in the SUMMARY record (errors[{input, source, error}], notFound[{input, source}], with counts) and in the run's status message. Trimmed example:

{
"id": 66670819,
"fullName": "apify/crawlee",
"url": "https://github.com/apify/crawlee",
"apiUrl": "https://api.github.com/repos/apify/crawlee",
"description": "Crawlee—A web scraping and browser automation library for Node.js…",
"homepage": "https://crawlee.dev",
"language": "TypeScript",
"license": "Apache-2.0",
"topics": ["apify", "crawler", "playwright", "scraping"],
"stars": 25758, "forks": 1666, "watchers": 135, "openIssues": 137,
"archived": false, "fork": false, "defaultBranch": "master",
"createdAt": "2016-08-26T18:35:03Z", "pushedAt": "2026-09-11T18:42:13Z",
"daysSincePush": 1, "ageDays": 3669,
"latestRelease": { "tag": "v3.18.1", "publishedAt": "2026-08-12T15:39:11Z", "prerelease": false },
"daysSinceRelease": 31,
"releases": [{ "tag": "v4.0.0-rc.0", "publishedAt": "2026-08-13T10:14:22Z", "prerelease": true, "url": "…" }],
"contributors": [{ "login": "mnmkng", "contributions": 1149, "bot": false }, { "login": "renovate[bot]", "contributions": 905, "bot": true }],
"contributorsCount": 134, "topContributorShare": 29.3,
"languages": { "TypeScript": 62, "MDX": 31.1, "JavaScript": 5.3 },
"commits52w": 644, "commits12w": 256, "commits4w": 53, "activeWeeks52w": 50, "lastActiveWeek": "2026-09-06",
"source": "repos", "query": null,
"fetchedAt": "2026-09-12T23:28:59.943Z"
}
FieldTypeDescription
idnumberGitHub repository id — stable across renames
fullName, name, owner{login,type,url}string / objectIdentity
url, apiUrl, homepagestringLinks (apiUrl = source endpoint)
description, topics[], language, license, licenseNameMetadata; license is the SPDX id
stars, forks, watchers, openIssues, sizenumberCounters. openIssues = issues and PRs (GitHub semantics); watchers is null for search/listing items unless enriched
archived, disabled, fork, parent, isTemplate, hasIssues, hasWiki, hasDiscussions, hasPagesboolean / stringFlags
createdAt, updatedAt, pushedAt, daysSincePush, ageDaysDates & derived recency
releases[], latestRelease, daysSinceReleaseWith includeReleases (drafts skipped; latestRelease prefers non-prerelease)
contributors[], contributorsCount, topContributorShareWith includeContributors; share = % of listed commits by the #1 contributor
languages, languageBytesobjectWith includeLanguages
commits52w, commits12w, commits4w, activeWeeks52w, lastActiveWeeknumber / stringWith includeCommitActivity (null while GitHub is still computing)
latestCommit{sha,date,author,message,url}, totalCommitsWith includeLatestCommit
community{healthPercentage,hasReadme,hasLicense,hasContributing,hasCodeOfConduct,hasIssueTemplate,hasPullRequestTemplate}objectWith includeCommunityProfile
openIssuesOnly, openPullRequestsnumberWith includeIssuePrSplit
readme, readmeUrlstringWith includeReadme
source, query, searchTotalCountrepos / search / org / user; the effective query; total matches GitHub reported
fetchedAtISO stringWhen the item was fetched

The key-value store also gets SUMMARY (items, errors, errorCount, notFound, notFoundCount, requests), STATS (pushed, failed, requests, coreRemaining, searchRemaining) and, on a rate-limit abort, RATE_LIMIT with the reset time. The run fails only when nothing could be fetched.

Use it from code / agents

curl -X POST "https://api.apify.com/v2/acts/yadroo~github-repo-intel/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'content-type: application/json' \
-d '{"repos":["apify/crawlee"],"includeCommunityProfile":true}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/github-repo-intel').call({ searchQueries: ['topic:mcp language:typescript'], minStars: 500, maxItems: 50 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/github-repo-intel").call(run_input={"orgs": ["apify"], "maxItems": 30, "enrichListed": True})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP: add https://mcp.apify.com to your agent (Claude, Cursor, custom) and call the tool yadroo/github-repo-intel with the same JSON input; the schema descriptions are written so an agent can fill them unaided.

Pricing

Pay per event: $0.001 per run start + $0.005 per repository item. Error items (404, invalid ref) are pushed but count as items too, so validate references upstream when possible.

Typical runs: vetting 3 dependencies ≈ $0.016; a 50-repo market scan ≈ $0.25; a 200-repo org inventory ≈ $1.00. Apify compute (256 MB, seconds per run) is billed separately by the platform.

Limits & FAQ

  • Rate limits. Without a token GitHub allows 60 core requests/h and 10 search requests/min per IP — enough for ~10 fully enriched repos or a few hundred un-enriched search results per hour. When the quota is exhausted the run fails fast with the reset time (no silent looping); everything fetched so far stays in the dataset. Pass token for 5000/h.
  • Secondary limits / 5xx. Retried with backoff (honours Retry-After, max 60 s), up to 4 attempts, then the repo is listed in SUMMARY.errors (no item, not charged).
  • Commit activity is null. GitHub computes /stats/commit_activity lazily and answers 202 for cold repositories. The actor retries 4 times (~20 s); if still not ready you get nulls and a warning — run again a minute later.
  • openIssues looks too high. That is GitHub's own number: issues + pull requests. Enable includeIssuePrSplit for the split.
  • Freshness. Live API calls on every run; counters are current to the second, search indexes lag by minutes.
  • Private repositories. Only with a token that can read them; is:private search also needs a token.
  • Code search / user search. Not included: code search requires authentication on GitHub's side and returns file matches, not repositories. Use searchQueries with in:readme for text-in-repo discovery.
  • Roadmap. Star history sampling via stargazers timestamps; dependents count; issue response-time metrics.

Made by Yadroo — more data actors for agents: npm-package-intel · pypi-package-intel · hackernews-search · stackexchange-search · domain-intel