Github Profile Scraper avatar

Github Profile Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Github Profile Scraper

Github Profile Scraper

GitHub Profile Scraper that pulls followers, repos, bio, location, and contact info from any public GitHub account, so recruiters and researchers can build prospect lists without clicking through profiles one by one.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

GitHub Profile Scraper: Extract Public Data from Any GitHub Account

GitHub Profile Scraper pulls public profile data from any GitHub user account and returns it as structured JSON. Paste in a username and get back name, bio, location, company, website, follower count, repo count, Twitter handle, email, and more. Or paste in a list of usernames and process them all in one run.

No browser automation, no manual copy-paste, no setup on your end. Just usernames in, data out.

What data does this actor extract?

Each scraped profile returns the following fields:

FieldDescription
usernameGitHub handle (login name)
nameFull display name
bioProfile bio text
locationCity or country
companyEmployer or organization
websiteUrlPersonal website or portfolio URL
twitterUsernameTwitter/X handle (from main profile)
socialAccountsAll linked social media accounts as [{provider, url}] (LinkedIn, YouTube, Instagram, etc.)
avatarUrlProfile picture URL
profileUrlFull GitHub profile URL
emailPublic contact email (null if not set)
followersNumber of followers
followingNumber of accounts followed
publicReposCount of public repositories
publicGistsCount of public gists
totalStarsTotal stars received across all public repositories
totalForksTotal forks across all public repositories
hireableOpen-to-work flag (true, false, or null)
accountType"User" or "Organization"
createdAtAccount creation date (ISO 8601)
updatedAtLast profile update date (ISO 8601)
scrapedAtTimestamp of when this record was collected
errorError message if the profile could not be fetched, otherwise null

How to use it

Input

FieldTypeDefaultDescription
usernamestringkawsarlogSingle GitHub username to scrape
usernamesstring listβ€”Multiple usernames for batch scraping
maxItemsinteger100Cap on profiles processed per run
requestTimeoutSecsinteger30Per-request timeout in seconds

You can provide a single username, a list of usernames, or both. Duplicates are ignored. Usernames with a leading @ are accepted and cleaned automatically.

Example input

{
"username": "torvalds",
"usernames": ["gvanrossum", "kawsarlog"],
"maxItems": 100,
"requestTimeoutSecs": 30
}

Example output

{
"username": "torvalds",
"name": "Linus Torvalds",
"bio": "Just a geek",
"location": "Portland, OR",
"company": "Linux Foundation",
"websiteUrl": null,
"twitterUsername": null,
"socialAccounts": [
{"provider": "linkedin", "url": "https://www.linkedin.com/in/torvalds"}
],
"avatarUrl": "https://avatars.githubusercontent.com/u/1024025?v=4",
"profileUrl": "https://github.com/torvalds",
"email": null,
"followers": 239000,
"following": 0,
"publicRepos": 7,
"publicGists": 0,
"totalStars": 218400,
"totalForks": 43200,
"hireable": null,
"accountType": "User",
"createdAt": "2011-09-03T15:26:22Z",
"updatedAt": "2024-12-15T08:41:12Z",
"scrapedAt": "2026-04-13T10:00:00.000000+00:00",
"error": null
}

Use cases

  • Recruiting: screen developer candidates by checking their public repo count, follower count, and account activity before reaching out
  • Sales prospecting: build technical lead lists by collecting company, website, and contact info from GitHub profiles at scale
  • Open-source research: track contributor profiles across multiple accounts without visiting each page manually
  • HR analytics: compare candidate GitHub presence as part of a structured evaluation process
  • Market research: map out the GitHub activity of a competitor's engineering team or open-source community
  • Data enrichment: append GitHub profile data to existing contact lists using batch mode

Batch scraping

Supply a list of usernames in the usernames field to scrape many profiles per run. The actor processes them in order, handles errors per profile without stopping the run, and saves each result to the dataset as it goes.

If a username does not exist or returns an error, the output record for that username will have null for all data fields and a message in the error field.

FAQ

How many profiles can I scrape per run? The default limit is 100 profiles per run, adjustable up to 1,000 via the maxItems field.

Does this work for organization accounts? Yes. GitHub organizations have public profiles with similar fields. The accountType field will return "Organization" instead of "User".

What happens if a profile is private or does not exist? The actor logs an error for that username and continues with the rest. The failed profile gets an error record in the output dataset so nothing is silently skipped.

Can I scrape private profile data? No. This actor only collects data that GitHub exposes publicly. Private emails, private repos, and private account settings are not accessible.

How do I input usernames with an @ symbol? You can. The actor strips the leading @ automatically, so @torvalds and torvalds both work.

What format is the output? JSON, saved to the Apify dataset. You can export it as JSON, CSV, or XLSX directly from the Apify console, or use the Apify API to pull it into your pipeline.

Scheduling and monitoring

You can schedule this actor to run on a cron schedule from the Apify console. Useful for monitoring follower growth, tracking profile updates, or refreshing a contact list on a weekly basis.

GitHub profile scraper for recruiters and researchers

Whether you are building a candidate database, enriching a CRM with developer data, or mapping out an open-source community, this GitHub profile scraper gets you structured data without the manual work. Run it on demand or on a schedule and export the results wherever you need them.