GitHub Repo Insights — Stars, Health Score & Stats
Under maintenancePricing
from $0.35 / 1,000 repository profiles
GitHub Repo Insights — Stars, Health Score & Stats
Under maintenanceTurn any GitHub repo into a structured profile: stars history, contributors, languages, dependencies, license, and a composite health score. Built for AI agents, VC diligence, and dev-tool comparison sites.
Pricing
from $0.35 / 1,000 repository profiles
Rating
0.0
(0)
Developer
Vivek Gaur
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
22 days ago
Last modified
Categories
Share
GitHub Repository Insights — Stars, Health Score & Stats
Turn any GitHub repository URL or search query into a structured intelligence profile: stars, forks, contributors, languages, dependency manifests, license, and an automated composite Repository Health Score (0–100).
Designed for AI agents, software diligence, developer tool comparison platforms, and engineering intelligence feeds.
What this Actor does
This Actor queries the GitHub API with automated rate-limit handling and token rotation to transform repositories into structured, machine-consumable JSON data:
- Repository Metadata: Stars, forks, open issues, watchers, primary language, topics, creation date, and last push timestamp.
- Automated Health Score: A calculated 0–100 composite index evaluating commit freshness, open-issue-to-star ratio, and contributor diversity.
- Language & Tech Stack: Exact byte breakdown across all repository programming languages.
- Top Contributors: Profile URLs, usernames, and contribution counts for top committers.
- Dependency Files: Inspects
package.json,requirements.txt,pyproject.toml,Cargo.toml, andgo.modwithout downloading the full codebase. - README Summary: First 500 characters of cleaned body text for fast context embedding.
Why use this Actor
- Computed Health Score: Unlike raw GitHub scrapers, it evaluates open source project vitality objectively so you can immediately flag unmaintained or abandoned packages.
- No Token Required for Small Runs: Works out-of-the-box using the monorepo's shared rotation infrastructure, or you can provide high-throughput GitHub tokens via environment variables.
- Zero Heavy Browser Overhead: Built on lightweight HTTP API queries (
Octokit/ REST), delivering results in milliseconds without paying for headless Chromium compute. - AI & RAG Ready: Clean, normalized JSON schema designed specifically for tool-calling AI agents, vector indexing, and automated due-diligence summaries.
Features
- Dual Ingestion Modes: Provide a direct list of repository URLs /
owner/repostrings, or run a GitHub search query (e.g.topic:rag stars:>1000). - Granular Enrichment Toggles: Enable or disable README extraction, dependency file inspection, or contributor analysis to optimize speed.
- Deduplication & Validation: Automatically normalizes GitHub URLs, handles trailing slashes, and deduplicates inputs.
- Pay-Per-Event Billing: Pay only for what you scrape with clear per-event limits and budget controls.
Use cases
- Open Source Due Diligence: Venture funds and corporate M&A teams screening open-source software libraries for project longevity and maintenance risks.
- Developer Tool Comparisons: Programmatically generate "alternative to" software matrices and tech stack directories.
- AI Agent Context Retrieval: Provide LLM assistants with real-time dependency, license, and repository status information when writing code.
- Recruiter & Talent Sourcing: Identify top contributors across high-growth niche libraries in AI, systems programming, and web infrastructure.
Input
| Field | Type | Description | Default | Example |
|---|---|---|---|---|
repoUrls | Array of Strings | GitHub URLs or owner/repo strings. E.g. https://github.com/vercel/next.js or facebook/react. | ["https://github.com/vercel/next.js"] | ["vercel/next.js", "facebook/react"] |
searchQuery | String | GitHub repository search query (used if repoUrls is empty). E.g. topic:llm stars:>500. | "" | "topic:llm stars:>500" |
maxRepos | Integer | Maximum number of repositories to process (1 to 100). | 10 | 25 |
includeReadme | Boolean | Fetch and summarize the repository README.md (first 500 characters of body text). | true | true |
includeDependencies | Boolean | Fetch package manifests (package.json, requirements.txt, pyproject.toml, etc.). | false | true |
includeContributors | Boolean | Fetch the top 10 contributors and their commit volume. | true | true |
Example input
{"repoUrls": ["https://github.com/vercel/next.js","https://github.com/tailwindlabs/tailwindcss"],"maxRepos": 10,"includeReadme": true,"includeDependencies": true,"includeContributors": true}
Output
Every analyzed repository outputs a single structured record into your default Apify dataset.
Field Definitions
fullName(String): Repository slug (owner/repo).owner(String): Owner username or organization.repo(String): Repository name.description(String | null): Short description provided by repo maintainers.url(String): Canonical GitHub repository URL.stars(Integer): Total stargazer count.forks(Integer): Total fork count.openIssues(Integer): Open issues and pull requests count.watchers(Integer): Subscriber/watcher count.primaryLanguage(String | null): Primary detected language.languages(Object): Byte count breakdown per language.license(String | null): SPDX license identifier (e.g.MIT,Apache-2.0).createdAt(ISO Date): Repository creation timestamp.pushedAt(ISO Date): Last commit push timestamp.lastCommitDate(ISO Date): Mirror of last push timestamp.contributorsCount(Integer): Count of retrieved contributors.topContributors(Array): Array of contributor objects{ login, contributions, url }.topics(Array of Strings): Repository topic tags.isArchived(Boolean): Whether repository is archived/read-only.isFork(Boolean): Whether repository is a fork.defaultBranch(String): Default branch name (main,master).readmeSummary(String | null): Cleaned plain-text preview of repository README.dependencyFiles(Object | undefined): Contents of detected dependency manifest files.healthScore(Integer): Composite 0–100 health score (commit recency + issue ratio + contributor diversity).fetchedAt(ISO Date): Extraction timestamp.
Example output
{"fullName": "vercel/next.js","owner": "vercel","repo": "next.js","description": "The React Framework","url": "https://github.com/vercel/next.js","stars": 128500,"forks": 27100,"openIssues": 2420,"watchers": 128500,"primaryLanguage": "TypeScript","languages": {"TypeScript": 8942312,"JavaScript": 521430,"Rust": 412050},"license": "MIT","createdAt": "2016-10-05T23:32:51Z","pushedAt": "2026-09-28T02:15:20Z","lastCommitDate": "2026-09-28T02:15:20Z","contributorsCount": 10,"topContributors": [{"login": "timneutkens","contributions": 3842,"url": "https://github.com/timneutkens"}],"topics": ["react", "framework", "nextjs", "ssr", "typescript"],"isArchived": false,"isFork": false,"defaultBranch": "canary","readmeSummary": "Next.js by Vercel is the full-stack React framework for the web...","dependencyFiles": {"package.json": "{\n \"name\": \"next\",\n \"version\": \"15.0.0\"...\n}"},"healthScore": 94,"fetchedAt": "2026-09-28T04:10:57.053Z"}
Pricing (Pay-Per-Event)
This Actor uses Apify Pay-Per-Event (PPE) pricing. You are charged strictly for actual usage:
| Event Name | Price (USD) | Charged When |
|---|---|---|
actor-start | $0.01 | Charged once when the Actor run initializes |
repo-profile | $0.00035 | Charged for each repository profile successfully extracted |
Example cost: Extracting 100 repository profiles costs $0.01 (start) + (100 × $0.00035 = $0.035) = $0.045 total.
API usage
Run this Actor programmatically in Python or Node.js via the Apify Client.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_API_TOKEN")run_input = {"repoUrls": ["vercel/next.js", "facebook/react"],"includeDependencies": True,"maxRepos": 10}run = client.actor("lovely_radiologist/github-repo-insights").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['fullName']} — Health Score: {item['healthScore']}/100 — Stars: {item['stars']}")
Node.js / TypeScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });const run = await client.actor('lovely_radiologist/github-repo-insights').call({repoUrls: ['vercel/next.js', 'facebook/react'],includeDependencies: true,maxRepos: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const repo of items) {console.log(`${repo.fullName}: Health Score ${repo.healthScore}, Stars: ${repo.stars}`);}
Limitations
- Search Depth: The GitHub REST API caps search query results to the top 1,000 matches.
- Private Repositories: This Actor extracts publicly accessible GitHub repositories and does not access private organization repositories.
- Large Manifests: Dependency manifest contents are truncated to 2,000 characters per file to keep dataset items light and memory efficient.
FAQ
How is the Health Score calculated?
The health score is a composite metric out of 100 points:
- Commit Recency (up to 40 pts): Awarded based on how recently code was pushed (e.g. pushed within 7 days = 40 pts, within 30 days = 30 pts, >90 days decays).
- Issue Ratio (up to 30 pts): Ratio of open issues to total star community size. Lower relative issue accumulation indicates better backlog triage.
- Contributor Diversity (up to 30 pts): Evaluates unique contributor breadth across the repository.
Do I need to provide a GitHub personal access token?
No. The Actor handles querying through built-in request pooling. If you are scraping at high volume, setting a token pool in environment variables prevents rate limiting.
Can I schedule this Actor?
Yes! Use the Apify Console Schedules tab to run weekly or daily updates on critical OSS dependencies.
Support & Related Actors
For issues or questions, open an issue in the Apify Console Actor discussion tab.
Related Actors
- GitHub Trending Radar — Discover high-growth trending repositories before profiling them.
- GitHub Organization / Team Scraper — Extract all repositories and team members across an entire GitHub org.
- GitHub Issues & PR Monitor — Watch incoming bug reports, feature requests, and PRs.