Github Profile Scraper
Pricing
from $2.99 / 1,000 profiles
Github Profile Scraper
Extracts public GitHub profile fields, repository totals, social links, and account metadata for one or more usernames.
Pricing
from $2.99 / 1,000 profiles
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Collect public GitHub profile fields for one username or a bounded batch. The Actor reads a public profile response and the user's public repository list, then returns normalized identity, public links, profile counters, account dates, and aggregate stars/forks across the repositories returned by GitHub.
Public-only source
The rendered public profile page exposes the display name/login, avatar, followers/following, organization, location, public email when the user has chosen to publish it, website link, achievements, and public repositories with descriptions, languages, stars, and forks. The Actor uses documented public API responses for the same public fields. It never logs in, accesses private repositories, requires a token, bypasses CAPTCHA/rate limits, or uses write/private endpoints. Nullable fields are expected because users choose what to publish.
Input
{"username": "octocat","usernames": ["torvalds"],"maxItems": 2,"requestTimeoutSecs": 30}
username accepts one public GitHub login and removes a leading @. usernames is an optional list for batch processing; duplicates are removed case-insensitively. At most 100 usernames are processed and maxItems is capped at 100. Each profile and repository request uses the bounded timeout. If no username is supplied, the default is the public kawsarlog account retained for source compatibility. Unknown input keys are rejected.
Dataset output
Normal rows contain username, display name, bio, location, company, public website/social links, avatar/profile URLs, public email when GitHub exposes it, follower/following counts, public repository/gist counts, aggregate stars/forks, hireable state, account type, ISO 8601 creation/update dates, the public profile API sourceUrl, and scrapedAt. Aggregate repository totals describe the public repository page returned by GitHub and should be treated as an observed lower bound for very large accounts.
Internal record IDs/types, status/data flags, source-website markers, diagnostic labels, and request counters are not emitted in normal rows. If a profile cannot be read, a minimal diagnostic row contains only url, error, errorCode, and scrapedAt; OUTPUT keeps counts and run status.
Profile example
{"username": "octocat","name": "The Octocat","location": "San Francisco","followers": 24000,"following": 9,"publicRepos": 8,"totalStars": 20000,"totalForks": 160000,"profileUrl": "https://github.com/octocat","sourceUrl": "https://api.github.com/users/octocat","scrapedAt": "2026-08-24T00:00:00.000Z"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Local run
npm cinpm run checknpm testapify validate-schemaapify run --purge --input-file input.jsonnpm run validate
Keep batches below unauthenticated GitHub API limits, respect GitHub terms and applicable privacy rules, and do not use profiles for unlawful profiling or automated decisions.