GitHub Contributor Contacts & Developer Emails Scraper avatar

GitHub Contributor Contacts & Developer Emails Scraper

Pricing

from $17.00 / 1,000 results

Go to Apify Store
GitHub Contributor Contacts & Developer Emails Scraper

GitHub Contributor Contacts & Developer Emails Scraper

Scrape a GitHub repository's top contributors as developer leads: login, name, company, location, public email, blog, X handle, followers and profile link. Great for developer outreach and recruiting. Export to JSON, CSV or Excel.

Pricing

from $17.00 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

6 days ago

Last modified

Share

GitHub Contributor Contacts & Developer Emails Scraper

GitHub Contributor Contacts & Developer Emails Scraper

Here is one real result, with every field the actor returns:

{
"login": "sophiebits",
"name": "Sophie Alpert",
"company": null,
"location": "San Francisco, CA",
"email": "git@sophiebits.com",
"emailSource": "commit",
"blog": "https://sophiebits.com/",
"twitterUsername": "sophiebits",
"linkedin": "https://www.linkedin.com/in/sophiebits/",
"socialAccounts": [
{ "provider": "bluesky", "url": "https://bsky.app/profile/sophiebits.com" },
{ "provider": "linkedin", "url": "https://www.linkedin.com/in/sophiebits/" },
{ "provider": "twitter", "url": "https://twitter.com/sophiebits" }
],
"bio": "principal engineer. powered by dumplings!",
"hireable": null,
"followers": 10496,
"following": 0,
"publicRepos": 178,
"publicGists": 28,
"contributions": 1300,
"topLanguages": ["JavaScript", "TypeScript", "Python", "C", "LilyPond"],
"topRepos": ["react-dom-mini:601", "es3ify:113", "adventofcode:93"],
"pinnedRepos": ["react", "react-dom-mini", "KaTeX", "adventofcode"],
"orgs": ["reactjs"],
"totalStars": 900,
"isBot": false,
"accountCreatedAt": "2008-04-11T22:42:39Z",
"profileUpdatedAt": "2026-08-18T20:57:59Z",
"sourceRepo": "facebook/react",
"sourceType": "contributor",
"githubUrl": "https://github.com/sophiebits",
"avatarUrl": "https://avatars.githubusercontent.com/u/6820?v=4",
"source": "GitHub",
"observedAt": "2026-08-26T04:28:51.110Z"
}

The most complete GitHub scraper for developer leads. It returns every contact field a public GitHub profile exposes (email, LinkedIn, X, Bluesky, Mastodon, blog, company, location), recovers emails from public commit history, adds derived signals (top languages, total stars, pinned repos, organisations), and gives you four ways to find developers plus nine filters to target exactly the people you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Platform Coverage Output Billing

Table of contents

What it does

This is a GitHub scraper, GitHub email finder and developer lead generation tool in one. Point it at repositories, organisations, a list of usernames, or a GitHub user search, and it returns clean, deduplicated developer-lead rows ready for a CRM, spreadsheet or outreach tool.

It finds developers four ways:

  • Repository contributors by owner/repo or full URL (e.g. facebook/react).
  • Organisation members for any org (public members).
  • Direct usernames you already have.
  • GitHub user search by main language, location and minimum followers, or a raw search query.

For every developer it captures the public profile (name, company, location, bio, hireable flag, followers, following, public repos and gists), the best public email it can find (profile email plus emails mined from public commit metadata), verified social accounts (LinkedIn, X, Bluesky, Mastodon, YouTube, personal site), and derived signals (top languages, total stars across owned repos, top repos, pinned repos, and the organisations the developer belongs to).

Everything comes from public GitHub data. No login, no cookies, no browser automation. Add an optional GitHub token to raise the rate limit for large jobs.

How we compare

We do not compete on price. Several GitHub scrapers on Apify are cheaper per record. We compete on completeness of contact data, number of filters, and valid derived fields, so a single run gives you a usable lead list instead of thin rows you then have to enrich elsewhere. Here is an honest comparison.

CapabilityThis actorlouisdeconinck/github-email-scraperbovi/github-profile-email-enricherautomation-lab/github-contributors-scraperscrapesage/github-scraper
Find by repo contributorsYesYesYesYesYes
Find by org membersYesYesYesNoYes
Find by GitHub user searchYesNoYesNoYes
Email from public commitsYesYesYesNoYes
Verified LinkedIn / X / Bluesky / MastodonYesNoX onlyNoNo
Pinned reposYesNoNoNoNo
Top languages + total starsYesNoNoNoYes
Public organisationsYesNoNoNoNo
onlyWithEmail / onlyHireable / minFollowers filtersYesNoNoNoPartial
minContributions filterYesNoNoNoNo
Commit date window (since / until)YesNoNoNoNo
Exclude bot accountsYesNoNoNoNo
Never charges failed or empty runsYesCharges even with no emailCharges even with no emailYesYes
AI lead score + summary (opt-in)YesNoNoNoLead score only
Approx. adoption (total users)Growing (100+ runs)~137~17~2~6
Approx. price per 1,000 records~$17 to $20~$1~$4.75~$0.02~$2.20

Why switch to us:

  • louisdeconinck/github-email-scraper is the most adopted alternative and cheaper, but it returns only login, name, email, id, avatar and profile URL, has no company, location, social or follower data, no filters, and it currently carries a 1 out of 5 star rating. We return the full profile plus verified socials and derived signals.
  • bovi/github-profile-email-enricher bills you per person even when no email is recovered. We only charge for records we return, and we add LinkedIn, Bluesky, Mastodon, pinned repos, top languages and organisations that it does not have.
  • automation-lab/github-contributors-scraper is very cheap but has no email mining, no social accounts and no user search. It is a contributor lister, not a lead tool.
  • scrapesage/github-scraper is close on breadth and cheaper, but it lacks verified social accounts beyond commit emails, pinned repos, org membership, and the minContributions, since/until and excludeBots controls.

If your only requirement is the lowest possible price for logins and avatars, automation-lab or louisdeconinck will cost less. If you want a contact-rich lead list you can email today, this actor returns more valid fields per developer than any of them.

Use cases

  • Developer recruiting and technical sourcing. Build shortlists of engineers by language, location and follower count, keep only hireable profiles or profiles with a public email, and export straight to your ATS.
  • Developer-tool and API sales leads. Pull the contributors of repositories in your category, qualify them by contributions and top languages, and reach decision-making maintainers directly.
  • Open-source community analysis. Map who contributes to a project or organisation, their affiliations, pinned work and total stars, for community reporting and ecosystem research.
  • Contributor and maintainer outreach. Recover public commit emails and verified social accounts for a project's top contributors when you need to coordinate, sponsor or hire.
  • Developer relations and sponsorship targeting. Rank developers by reach (followers, total stars) and find the channel to contact them (email, LinkedIn, X, Bluesky, personal site).

Quickstart

Contributors of a repository, enriched with repo signals:

{
"repos": ["facebook/react"],
"maxContributors": 25,
"includeRepos": true,
"onlyWithEmail": false
}

Developer search by language and location:

{
"userLanguage": "rust",
"userLocation": "Berlin",
"minFollowers": 500,
"maxContributors": 50
}

Organisation members with emails only:

{
"orgs": ["apify"],
"onlyWithEmail": true,
"maxContributors": 100,
"githubToken": "ghp_your_token_for_higher_limits"
}

Input reference

NameTypeRequiredDescriptionExample
reposarrayone source requiredRepositories as owner/repo or full URLs, and/or org names to scan their top repos["facebook/react"]
usernamesarrayone source requiredSpecific GitHub usernames to enrich["gaearon"]
orgsarrayone source requiredOrganisation names; enriches public members["apify"]
userSearchQuerystringone source requiredRaw GitHub user-search querylanguage:go location:London
userLanguagestringnoFilter search by main languagerust
userLocationstringnoFilter search by profile locationBerlin
minFollowersintegernoKeep only developers with at least this many followers500
minContributionsintegernoFor contributors, keep those with at least this many contributions50
maxContributorsintegernoMax developers to return (default 40, free plans capped at 10)25
includeEmailbooleannoCapture profile and commit-derived email (default true)true
includeSocialbooleannoCapture verified social accounts (default true)true
includeReposbooleannoAdd top languages, total stars, top repos, pinned repos (default false)true
onlyWithEmailbooleannoReturn only developers with a recovered emailfalse
onlyHireablebooleannoReturn only developers with the hireable flag setfalse
excludeBotsbooleannoSkip dependabot and other bot accounts (default true)true
sincestringnoMine commit emails only after this ISO date2025-01-01T00:00:00Z
untilstringnoMine commit emails only before this ISO date2026-01-01T00:00:00Z
githubTokenstringnoPersonal access token for higher rate limitsghp_...
withLeadScorebooleannoOpt-in AI lead score (paid plans only)false
withProfileSummarybooleannoOpt-in AI profile summary (paid plans only)false

Output reference

NameTypeDescription
loginstringGitHub username
namestringFull name
emailstringPublic email (profile or commit-derived), null if none is public
emailSourcestringprofile or commit
companystringCompany from the profile
locationstringLocation from the profile
blogstringWebsite or blog URL
twitterUsernamestringX / Twitter handle
linkedinstringLinkedIn URL from verified social accounts
socialAccountsarrayAll verified social accounts (provider + url)
biostringProfile bio
hireablebooleanAvailable-for-hire flag
followersintegerFollower count
followingintegerFollowing count
publicReposintegerPublic repository count
publicGistsintegerPublic gist count
contributionsintegerContributions to the source repository
topLanguagesarrayMost-used languages across owned repos
topReposarrayTop owned repos by stars (name:stars)
pinnedReposarrayPinned repositories from the public profile
orgsarrayPublic organisations the developer belongs to
totalStarsintegerTotal stars across owned repositories
isBotbooleanWhether the account is a bot
accountCreatedAtstringAccount creation date
profileUpdatedAtstringProfile last-updated date
sourceRepostringRepository or org the developer was found in
sourceTypestringcontributor, org_member, user_search or username
githubUrlstringGitHub profile URL
avatarUrlstringAvatar image URL
aiLeadScoreintegerAI lead score 0 to 100 (opt-in add-on)
aiLeadTierstringAI lead tier hot/warm/cold (opt-in add-on)
aiLeadRationalestringOne-line rationale for the AI lead score (opt-in)
aiSummarystringAI-written developer summary (opt-in add-on)

Run via API and CLI

Start a run with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~github-contributor-contacts-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"repos":["facebook/react"],"maxContributors":25,"includeRepos":true}'

Run with the Apify CLI:

apify call scrapers_lat/github-contributor-contacts-scraper \
--input '{"orgs":["apify"],"onlyWithEmail":true,"maxContributors":50}'

Fetch results

Read the dataset items once the run finishes:

$curl "https://api.apify.com/v2/acts/scrapers_lat~github-contributor-contacts-scraper/runs/last/dataset/items?token=YOUR_APIFY_TOKEN&format=json"

Swap format=json for format=csv or format=xlsx to export to CSV or Excel.

Billing and limits

  • Pay per result. You are billed per developer record returned via the result event. Optional AI add-ons (ai_lead_score, ai_profile_summary) bill only when they produce output, and only on paid Apify plans.
  • No charge on failure. Empty runs, errors and no-match runs return an informational row and are not billed.
  • Free plan cap. Free Apify accounts are capped at 10 records per run. Upgrade for larger jobs.
  • Spend cap respected. Set maxTotalChargeUsd and the actor stops emitting billable records once the limit is reached.
  • Rate limits. GitHub's public API allows 60 requests per hour without a token and 5,000 per hour with one. Large repositories and searches run faster and further with a githubToken. The actor backs off and retries automatically when GitHub throttles.

FAQ and troubleshooting

Why are some emails null? Many developers keep their email private on GitHub and use a noreply commit address. We return the public profile email when present and mine public commit metadata for a real address, but we never invent one. Use onlyWithEmail to keep only records where an email was recovered.

Do you use the login-only or private data? No. Everything is public GitHub data (public REST API and public profile pages). No login, cookies or private scopes are used.

How do I search developers by location and language? Set userLanguage, userLocation and minFollowers, or pass a raw userSearchQuery. GitHub user search returns up to 1,000 matches per query.

Can I process many repositories or orgs in one run? Yes. repos, usernames and orgs are lists, and results are deduplicated across all sources.

What is the difference from a plain contributors lister? Beyond the login and contribution count, this actor recovers emails, verified social accounts, top languages, total stars, pinned repos and organisations, so each row is an outreach-ready lead.

Do I need a GitHub token? No, but adding one raises the rate limit from 60 to 5,000 requests per hour, which matters for large repos and searches.

  • LinkedIn, company and people data scrapers for B2B enrichment
  • Email finder and contact enrichment actors
  • Other developer and package registry scrapers

More scrapers at scrapers.lat

Browse the full catalog of company, contact, finance and developer data scrapers at scrapers.lat.

This is an independent actor and is not affiliated with, endorsed by, or sponsored by GitHub, Inc.