GitHub Repo Metadata Enricher
Pricing
from $0.005 / actor start
GitHub Repo Metadata Enricher
Enrich public GitHub repository URLs with stars, forks, topics, license, activity, owner metadata, release data, and lead-scoring signals. Built for B2B lead generation, devtools research, and competitive intelligence.
Pricing
from $0.005 / actor start
Rating
0.0
(0)
Developer
Sanskar Jaiswal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
Enrich public GitHub repository URLs with structured metadata, metrics, and lead-scoring signals in a single API call. Returns stars, forks, topics, license, owner info, activity timestamps, and a 0-100 lead score. Uses GitHub's public API with no authentication required.
Use cases
- Lead generation - score active open-source projects by commercial signals (marketing site, license, recent activity)
- Devtools research - track competitor repos, adoption metrics, and integration targets
- Market research - map ecosystem activity and identify high-momentum projects
- Recruiting - find active maintainers and contributors at target companies
- Growth teams - build lists of repos with declared licenses and marketing sites
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
repoUrls | array<string> | yes | - | Public github.com/<owner>/<repo> URLs (max 50 per run) |
includeReadme | boolean | no | false | Fetch a short README preview for each repo |
timeoutSeconds | integer | no | 10 | Per-request timeout (3-30 seconds) |
Example input
{"repoUrls": ["https://github.com/apify/crawlee","https://github.com/vercel/next.js"],"includeReadme": false,"timeoutSeconds": 10}
Output
Each repository produces one dataset item:
| Field | Type | Description |
|---|---|---|
inputUrl | string | The GitHub URL provided |
fullName | string | owner/repo identifier |
ok | boolean | Whether enrichment succeeded |
checkedAt | string | ISO timestamp |
owner | object | login, type (User/Organization), htmlUrl |
repository | object | name, description, homepage, language, topics, license, createdAt, updatedAt, pushedAt, archived, disabled |
metrics | object | stars, watchers, forks, openIssues, subscribers, sizeKb |
leadSignals | object | score (0-100), signals (array), daysSinceLastPush |
api | object | GitHub API rate-limit status |
readme | object | Optional README preview (when includeReadme is enabled) |
error | string | Error message on failure |
Lead signals
The leadSignals.score field is a 0-100 value derived from:
| Signal | Condition | Points |
|---|---|---|
high_visibility | 1,000+ stars | +35 |
emerging_project | 100-999 stars | +20 |
developer_adoption | 50+ forks | +15 |
recently_active | Pushed within 30 days | +20 |
active_issue_queue | 25+ open issues | +10 |
has_marketing_site | Homepage URL set | +10 |
license_declared | License explicitly declared | +5 |
archived_project | Repo is archived | -40 |
Example output
{"inputUrl": "https://github.com/apify/crawlee","fullName": "apify/crawlee","ok": true,"checkedAt": "2026-07-06T12:00:00.000Z","owner": {"login": "apify","type": "Organization","htmlUrl": "https://github.com/apify"},"repository": {"name": "crawlee","description": "Crawlee - A web scraping and browser automation library for Node.js","homepage": "https://crawlee.dev","language": "TypeScript","topics": ["apify", "crawlee", "scraper", "automation"],"license": { "key": "apache-2.0", "name": "Apache License 2.0", "spdxId": "Apache-2.0" }},"metrics": {"stars": 24473,"forks": 1522,"openIssues": 176,"subscribers": 130},"leadSignals": {"score": 95,"signals": ["high_visibility", "developer_adoption", "recently_active", "has_marketing_site", "license_declared"],"daysSinceLastPush": 1}}
Security
- Only
github.com/<owner>/<repo>URLs are accepted - URLs with embedded credentials are rejected
- Uses unauthenticated public GitHub API (60 requests/hour per IP)
- No tokens, no private repos, no browser automation, no proxies
- Does not read local files or environment secrets
Pricing
Pay per event:
| Event | Price |
|---|---|
| Actor start | $0.005 |
| Repository enriched | $0.01 |
A run enriching 10 repositories costs approximately $0.105.
FAQ
Do I need a GitHub token? No. The actor uses GitHub's unauthenticated public API. For higher volume, run on Apify infrastructure where IP rotation is automatic.
Can I enrich private repositories? No. This actor only works with public repositories.
What happens if a repo doesn't exist?
The actor returns an item with ok: false and the error status. It does not crash the run.
Can I get README content?
Set includeReadme: true to fetch a 500-character README preview. This uses additional API quota.