Github Profile Scraper avatar

Github Profile Scraper

Pricing

from $2.99 / 1,000 profiles

Go to Apify Store
Github Profile Scraper

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

w3crawler

Maintained by Community

Actor 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 ci
npm run check
npm test
apify validate-schema
apify run --purge --input-file input.json
npm 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.