GitHub Email Scraper - Contributors & Developer Lead Finder avatar

GitHub Email Scraper - Contributors & Developer Lead Finder

Pricing

from $17.00 / 1,000 results

Go to Apify Store
GitHub Email Scraper - Contributors & Developer Lead Finder

GitHub Email Scraper - Contributors & Developer Lead Finder

GitHub email scraper and developer lead finder for recruiting and sales. Scrape repo contributors, org members or a GitHub user search into rich leads: email (profile + commit-mined), LinkedIn, X, company, location, followers, languages. No token needed. Export CSV, JSON or Excel.

Pricing

from $17.00 / 1,000 results

Rating

5.0

(2)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

10 days ago

Last modified

Share

GitHub Contributor Contacts & Developer Emails Scraper

GitHub Email Scraper - Contributors & Developer Lead Finder

The most complete GitHub email scraper and developer lead finder on Apify. Turn any GitHub repository, organisation, username list or user search into a clean, contact-rich lead list: public email, LinkedIn, X, company, location, followers and more. Built for developer recruiting, technical sourcing and dev-tool sales.

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"
}

This is a GitHub scraper, GitHub email finder and developer lead generation tool in one. It returns every contact field a public GitHub profile exposes (email, LinkedIn, X, Bluesky, Mastodon, blog, company, location), recovers developer emails from public commit history, adds derived signals (top languages, total stars, pinned repos, organisations), and gives you four ways to find developers plus filters to target exactly the people you need. No GitHub token required.

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

Platform Coverage Output Billing

Table of contents

What it does

Point this GitHub email scraper 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, verified social accounts (LinkedIn, X, Bluesky, Mastodon, YouTube, Instagram, npm, personal site), and derived signals (top languages, total stars across owned repos, top repos, pinned repos, and the organisations the developer belongs to). This is the depth that turns a plain GitHub contributors scraper into an outreach-ready developer email list.

Deep email search. Most developers leave the profile email blank, so an email pulled from the profile alone misses the majority of a list. This actor also recovers the address a developer publishes in their own commit history, in every mode: repository contributors, organisation members, usernames you supply, and user search. In testing on well-known maintainers with no profile email at all, it recovered a usable address for every one of them.

Ready for outreach, not just for a spreadsheet. Each row arrives with the fields a sequence actually needs: firstName and lastName split for mail-merge, emailDomain with an isCorporateEmail flag so you can separate work addresses from Gmail, companyClean and companyGithubOrg resolved from the raw company text, an absolute blogUrl plus blogDomain, per-network social URLs as their own columns, and lastActiveAt so you can drop dormant accounts before you send.

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 actorlouisdeconinckboviautomation-labscrapesagefayoussefcontacts-api
Find by repo contributorsYesYesYesYesYesYesNo
Find by org membersYesYesYesNoYesYesNo
Find by GitHub user searchYesNoYesNoYesYesNo
Email from public commitsYesYesYesNoYesYesNo
Deep email search in every mode (not just repo contributors)YesNoNoNoNoNoNo
Corporate vs free-mailbox flag (isCorporateEmail)YesNoNoNoNoNoNo
First / last name split for mail-mergeYesNoNoNoNoNoNo
Activity recency (lastActiveAt, lastPushedRepo)YesNoNoNoNoNoNo
Verified LinkedIn / X / Bluesky / MastodonYesNoX onlyNoNoLinkedIn / X onlyNo
Pinned reposYesNoNoNoNoNoNo
Top languages + total starsYesNoNoNoYesYesNo
Public organisationsYesNoNoNoNoNoNo
onlyWithEmail / onlyHireable / minFollowers filtersYesNoNoNoPartialYesNo
minContributions filterYesNoNoNoNoNoNo
onlyCorporateEmail / activeSince / minTotalStars filtersYesNoNoNoNoNoNo
companyContains / locationContains filtersYesNoNoNoNoNoNo
Commit date window (since / until)YesNoNoNoNoNoNo
Exclude bot accountsYesNoNoNoNoNoNo
Never charges failed or empty runsYesCharges with no emailCharges with no emailYesYesCharges per profileUnknown
AI lead score + summary (opt-in)YesNoNoNoLead score onlyNoNo
Approx. price per 1,000 records~$17 to $20~$1~$4.75~$0.02~$2.20~$5$4.99/mo + usage

Competitor titles for reference: louisdeconinck github-email-scraper, bovi github-profile-email-enricher, automation-lab github-contributors-scraper, scrapesage github-scraper, fayoussef github-developer-leads, contacts-api github-email-scraper-fast-advanced-and-cheapest.

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.
  • fayoussef/github-developer-leads is the closest competitor on breadth (contributors, org members, user search, commit emails, languages) and is cheaper. It bills per profile even when no email is found, and it lacks pinned repos, verified Bluesky/Mastodon/YouTube accounts, public organisations, the minContributions and since/until controls, bot exclusion and the opt-in AI add-ons. If you want the deepest per-developer record and no charge on empty rows, use us; if raw price is the only factor, it is cheaper.
  • contacts-api/github-email-scraper-fast-advanced-and-cheapest is a keyword-and-location email scraper: it returns page-level rows (keyword, title, URL, email), not structured developer profiles, and has no contributors, social, or profile fields. Different tool for a different job.

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
deepEmailSearchbooleannoRecover a work email for developers who hide it on their profile (default true)true
onlyWithEmailbooleannoReturn only developers with a recovered emailfalse
onlyHireablebooleannoReturn only developers with the hireable flag setfalse
onlyCorporateEmailbooleannoKeep only company-domain emails, dropping Gmail, Outlook, iCloud and other free mailboxesfalse
excludeOrganizationsbooleannoKeep only individual developers, dropping organisation accountsfalse
minTotalStarsintegernoKeep only developers with at least this many stars across their own repos100
minPublicReposintegernoKeep only developers with at least this many public repositories10
companyContainsstringnoKeep only developers whose company contains this textstripe
locationContainsstringnoKeep only developers whose location contains this textberlin
activeSincestringnoKeep only developers who pushed public code on or after this date2026-01-01
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
emailDomainstringDomain part of the email
isCorporateEmailbooleanTrue when the email is on a company domain rather than a free mailbox
emailCandidatesarrayEvery distinct email found for the developer
firstNamestringFirst name, split for mail-merge
lastNamestringLast name, split for mail-merge
companystringCompany from the profile
companyCleanstringCompany text normalised (leading @ and trailing notes removed)
companyGithubOrgstringGitHub organisation handle when the company field is an @handle
locationstringLocation from the profile
blogstringWebsite or blog URL as written on the profile
blogUrlstringPersonal site normalised to an absolute URL
blogDomainstringHostname of the personal site
twitterUsernamestringX / Twitter handle
linkedinstringLinkedIn URL from verified social accounts
linkedinUsernamestringLinkedIn handle parsed from that URL
twitterUrlstringX / Twitter profile URL
mastodonstringVerified Mastodon profile URL
blueskystringVerified Bluesky profile URL
youtubestringVerified YouTube channel URL
instagramstringVerified Instagram profile URL
facebookstringVerified Facebook profile URL
twitchstringVerified Twitch channel URL
redditstringVerified Reddit profile URL
npmstringVerified npm profile URL
personalSitesarrayOther verified personal or company sites on the profile
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
lastPushedRepostringMost recently pushed own repository
lastPushedAtstringTimestamp of that push
lastCommitAtstringDate of the developer's most recent own commit found
lastActiveAtstringBest available public activity timestamp
userIdintegerNumeric GitHub user id
nodeIdstringGitHub GraphQL node id
accountTypestringUser or Organization
siteAdminbooleanGitHub staff flag
accountAgeYearsnumberAge of the GitHub account in years
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. When the token-free budget runs out, the actor delivers the developers it already collected and tells you when the limit resets, instead of stalling or failing the whole run.

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 scrape GitHub without an API token? Yes. The actor works with no GitHub token using GitHub's public data. A token is optional and only raises the rate limit from 60 to 5,000 requests per hour for large jobs.

Is this a GitHub email finder or a contributors scraper? Both. It lists repository contributors like a contributors scraper, then enriches each one with a public email, LinkedIn and the full profile like an email finder, so you get a ready-to-use developer email list in a single run.

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.