Git Email Extractor avatar

Git Email Extractor

Pricing

from $1.50 / 1,000 output rows

Go to Apify Store
Git Email Extractor

Git Email Extractor

Shallow-clones git repositories and extracts contributor emails (author & committer) from commit history. Give it a list of repo URLs, get back a flat dataset of names and emails per repo.

Pricing

from $1.50 / 1,000 output rows

Rating

0.0

(0)

Developer

R.L.

R.L.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Features

Limited permissions

Share

What does Git Email Extractor do?

Git Email Extractor takes a list of git repository URLs, performs a shallow clone of each one, and scans the commit history for author and committer emails (including addresses mentioned in commit message trailers like Co-authored-by). Useful for mapping out contributors to open source projects, OSINT research on a target's engineering footprint, or lead-gen research on maintainers of a codebase.

Why use Git Email Extractor?

  • Quickly identify all contributors to a repository without cloning and grepping manually.
  • OSINT/recon: enumerate real names and emails tied to a person's, company's, or project's public repos to build a contact or attribution picture.
  • Run against many repositories in one go via the Apify platform's API, scheduler, and integrations.
  • Get structured, downloadable results (JSON/CSV/Excel) instead of parsing git log output by hand.

How to use Git Email Extractor

  1. Open the Actor's Input tab.
  2. Add one or more git repository URLs (HTTPS clone URLs, e.g. https://github.com/user/repo.git).
  3. Optionally adjust the shallow clone depth (how many recent commits to scan per repo).
  4. Run the Actor and check the Dataset tab for results.

Input

FieldTypeDescription
repoUrlsarray of stringsGit repository URLs to clone and scan.
cloneDepthintegerNumber of most recent commits to fetch per repo (default 100). Only commits within this depth are scanned.

Output

Example dataset items — one flat row per name/email pair found:

[
{ "repoUrl": "https://github.com/apify/apify-sdk-python.git", "name": "Jane Doe", "email": "jane@example.com" },
{ "repoUrl": "https://github.com/apify/apify-sdk-python.git", "name": "John Smith", "email": "john@example.com" }
]

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data table

FieldDescription
repoUrlThe repository URL the row was found in. Rows are de-duplicated by (repository, address), so one person appearing in two repositories is two rows.
nameDisplay name attached to the address in the commit history, where the history carries one. Empty when the address was found only inside a commit-message body, which carries no name.
emailThe extracted address. Not verified, not deliverability-checked, and not filtered to business domains - see What the addresses actually are below.

What the addresses actually are

A git history is a mix of work and personal addresses, and this Actor returns the mix rather than pretending otherwise. Measured on an 8-row result for a flagship open-source repository (2026-11-03): 3 corporate addresses, 3 personal Gmail addresses tied to a full real name, 1 personal domain, and 1 placeholder (webmaster@registry.example.com) that a commit body had pasted in from a config sample. Placeholders like that one are now dropped - addresses on domains reserved for documentation or testing (example.com, .test, .invalid, .localhost, .local) are not returned and not charged.

Only scrape and process addresses you have a lawful basis to use. Roughly half of a typical result is a private individual's personal address rather than a business contact.

Pricing / Cost estimation

Cost scales with the number of repositories and the clone depth you set - cloning is the dominant cost, since email extraction itself is cheap local text processing. Use a smaller cloneDepth if you only need recent contributors.

Note that cost and output size are indexed to different things: what the run spends tracks the bytes cloned per repository, while what it returns tracks the addresses per repository. Measured: a 66-row run cost less than a 27-row one, because the 27-row repository had far more history to fetch. So estimate by repository, not per row. The price per 1,000 rows for your Apify plan is shown on the Pricing tab.

Tips

  • Only public (or otherwise accessible) HTTPS repo URLs are supported — private repos requiring auth aren't handled.
  • noreply addresses (e.g. GitHub's privacy emails) are filtered out automatically. Most modern GitHub contributors commit under a users.noreply.github.com privacy address, so a repository with dozens of contributors can legitimately yield only a handful of rows - a thin result is usually that, not a broken run.
  • Increase cloneDepth if a repo has many contributors further back in history you want to catch.

FAQ, disclaimers, and support

Only scrape repositories you have the right to access and process. Respect the license and any usage terms of the target repositories. Found a bug or have a feature request? Open an issue on the Actor's Issues tab.

Cyber recon toolkit

Part of the Cyber recon toolkit — OSINT, attack-surface recon, and vulnerability-intel data collection for security research:

Did you find this useful?

Rate this actor on Apify! Your feedback helps other users find it and helps us keep improving it.

⌂ 换网址