GitHub Public Profile Phone Field Scraper avatar

GitHub Public Profile Phone Field Scraper

Pricing

from $2.99 / 1,000 profile phones

Go to Apify Store
GitHub Public Profile Phone Field Scraper

GitHub Public Profile Phone Field Scraper

Reads public GitHub user profile fields and returns an upstream phone field only if GitHub explicitly exposes one.

Pricing

from $2.99 / 1,000 profile phones

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

What does GitHub Public Profile Phone Field Scraper do?

This Actor extracts public GitHub profile fields from the GitHub REST user API and the anonymous GitHub profile page. It reports a phone number only when GitHub explicitly exposes it as an upstream phone field, a tel: link, or clearly labeled public profile contact text. It never infers a number from a biography, location, username, company, repository, commit, or external link.

Why use GitHub Public Profile Phone Field Scraper?

Use it for a small, auditable profile export, public contact-disclosure review, or scheduled monitoring of profiles you are authorized to analyze. Each row keeps the public source URLs, evidence type, bounded context, and a truthful negative observation when no supported phone disclosure is present. The Actor supports multiple usernames, case-insensitive deduplication, bounded concurrency, pacing, retries, run history, API access, scheduling, and Console monitoring. It does not use proxy rotation, login sessions, private endpoints, repository traversal, or external contact enrichment.

What data can GitHub Public Profile Phone Field Scraper extract?

FieldTypeDescription
login, recordId, recordTypestringStable public profile identity and row discriminator.
profileUrl, sourceUrl, publicPageUrlURLPublic profile/API provenance.
name, company, location, bio, blogstringPublic profile fields when GitHub returns them.
publicReposintegerPublic repository count reported by GitHub.
phone, phoneFieldAvailablestring, booleanExplicit phone value and availability flag.
phoneDisclosure, phoneEvidencestring, arrayEvidence classification and per-number source/context.
publicPageStatus, publicPageHttpStatusstring, integerAnonymous page coverage and HTTP status.
sourceFields, scrapedAtarray, date-timeObserved surfaces and row timestamp.

Diagnostics use recordType: "diagnostic", dataAvailable: false, a stable recordId, source URL, bounded error, error code, and timestamp.

How to scrape GitHub public profiles

  1. Open the Actor in Apify Console and enter one username or a usernames list in the Input tab.
  2. Set maxItems for the global number of deduplicated profiles, then choose concurrency and pacing appropriate for GitHub’s unauthenticated limits.
  3. Start the run and inspect the dataset rows plus the OUTPUT run summary. Download or connect the dataset through the API, an integration, or a schedule.

How much will it cost to scrape GitHub public profiles?

Apify charges according to the selected Actor pricing and the platform compute used by the run; this Actor does not promise a fixed price. Each profile makes up to two public requests (API and page), so more usernames, retries, concurrency, or long pacing increase run time and compute. Keep maxItems small for smoke tests and remember that unauthenticated GitHub responses can be rate-limited.

Input

See the input tab for the complete configuration. username is one login and is combined before usernames; values are trimmed, validated against GitHub’s 1–39 character login rules, deduplicated case-insensitively, and then capped globally by maxItems (1–20, default 20). With no username, the safe default is octocat. maxConcurrency is 1–5 (default 2), and delayMs is 0–5000 (default 250). Unknown properties, non-integers, invalid logins, and out-of-range values are rejected.

Minimal/default run

{}

Multiple profiles with deduplication

{
"username": "octocat",
"usernames": ["OCTOCAT", "github", "torvalds"],
"maxItems": 3,
"maxConcurrency": 1,
"delayMs": 250
}

Developer-controlled smoke run

{
"usernames": ["octocat", "github"],
"maxItems": 2,
"maxConcurrency": 2,
"delayMs": 0
}

Output

Normal profiles remain in the dataset even when no phone is exposed. not_exposed_by_public_sources means both supported public surfaces were checked without evidence; not_exposed_by_public_api_and_page_unavailable records that the API succeeded but the page could not be checked. A page failure does not discard a usable API profile. A request failure becomes a diagnostic row rather than fabricated profile data.

Normal negative observation

{
"recordType": "profile",
"recordId": "github-public-phone:octocat",
"dataAvailable": true,
"accessStatus": "public",
"extractionMethod": "github_rest_api_and_public_profile_page",
"login": "octocat",
"profileUrl": "https://github.com/octocat",
"apiPhoneFieldPresent": false,
"publicPageStatus": "checked",
"phoneFieldAvailable": false,
"phoneDisclosure": "not_exposed_by_public_sources",
"sourceUrl": "https://api.github.com/users/octocat",
"scrapedAt": "2026-09-08T00:00:00.000Z"
}

Explicit evidence and run summary

{
"recordType": "profile",
"recordId": "github-public-phone:public-contact",
"dataAvailable": true,
"login": "public-contact",
"phone": "+1 555 0100",
"phoneFieldAvailable": true,
"phoneDisclosure": "explicit_public_profile_contact_text",
"phoneEvidence": [
{
"number": "+1 555 0100",
"sourceUrl": "https://github.com/public-contact",
"evidenceType": "explicit_public_profile_contact_text",
"context": "Tel: +1 555 0100"
}
]
}

OUTPUT records status, profile/diagnostic counts, evidence counts by source, API field presence, page coverage, and completedAt. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Tips and advanced options

Start with maxItems: 1 and delayMs: 0 for a smoke test, then increase gradually. A successful profile without a phone is expected and is not a scrape failure. Evidence is intentionally narrow: a number in a bio or a linked website is not accepted. Retry backoff is bounded, while the configured delay paces work across the input order. The Actor uses only public GitHub sources and does not accept a proxy configuration.

FAQ, support, and responsible use

If a run has diagnostics, inspect OUTPUT, the diagnostic errorCode, and the source URL. GitHub profile markup and unauthenticated rate limits can change, so rerun with fewer profiles and more pacing when needed. Report bugs in the Actor’s Issues tab with the run ID, input, summary, and affected public URL. Use only data that profile owners chose to publish, follow GitHub’s terms and rate limits, respect privacy and applicable law, and obtain legal advice for personal-data processing. This Actor is not affiliated with or endorsed by GitHub.