Quick Start
- Register and create an API key from nametoprofile.com/register.
- Install the Email & Phone Extractor from your browser's extension store — Chrome Web Store, Firefox Add-ons, Microsoft Edge Add-ons, or whichever store applies to your browser.
- Open the extension popup and paste your API key. The popup unlocks once it validates.
- Browse to any page with contact information. The popup automatically scans and lists what it finds.
- Click any row to copy. Use the footer's Copy Emails / Copy Phones / Export buttons for batch operations.
How the workflow behaves
- Opening the popup automatically scans the current page for emails and phones with confidence scoring (High / Medium / Low).
- Each row shows the value, a confidence dot, the source it came from (mailto, tel_link, schema, text, etc.), and a copy button.
- Use the Filter dropdown to narrow by confidence. Use Highlight Page to overlay matches on the live page.
- The 🔄 Re-scan button forces a fresh DOM pass — useful on pages that load content asynchronously after a few seconds.
Confidence scoring
Each contact gets a High / Medium / Low confidence tag based on where it was found:
- Emails — High: mailto: links, <link rel="me"> tags, schema microdata, JSON-LD email fields.
- Emails — Medium: decoded obfuscation (e.g. info AT example DOT com) or contact-block context.
- Emails — Low: plain page-text matches without strong source signals.
- Phones — High: tel: / sms: / wa.me/ links, [itemprop="telephone"] microdata.
- Phones — Medium: libphonenumber-validated values or JSON-LD phone fields.
- Phones — Low: page-text matches without strong source, short codes outside tel: links, NANP non-geographic prefixes (500 / 700 / 900), unparseable country, or length too long for any region.
Stored locally
The extension stores extracted contacts, capture sessions, settings, and your API key in your browser's extension local storage (chrome.storage.local in Chromium-based browsers, browser.storage.local in Firefox), so your data and in-progress work survive popup closes and service-worker / background-script restarts. A 30-day default time-based prune (configurable to 7 / 30 / 90 days, or Never) plus a 4.5 MB LRU eviction (oldest contacts dropped first) keep local storage healthy. Nothing is uploaded except the NameToProfile API calls described next (free account checks, plus the optional AI verification, which you turn on yourself).
AI verification (optional — sends candidates to the API)
AI verification is off by default. When you turn it on (Options → AI verification) and use it — clicking Verify with AI, or via auto-verify at the end of a Crawl or Bulk job — the extension sends the uncertain candidates (low/medium confidence or locally-rejected; high-confidence contacts are never sent), plus short surrounding context and the page URL/title, to POST https://api.nametoprofile.com/v1/contact/verify for an AI confidence check.
- 1 credit per request (one request covers up to 25 candidates).
- It never sends full page HTML, cookies, form fields, or high-confidence contacts.
- With AI verification off, no extracted contact leaves your device.
API key usage
Apart from AI verification, the extension uses your API key only for free, non-consuming calls:
- GET /v1/auth/validate — on key save and on optional 5-minute background re-validation
- GET /v1/usage — on Refresh balance clicks and the same 5-minute cadence
These endpoints are free. Premium features (Capture, Crawl, Bulk, Site blacklist, Email filters, Phone filters) require a balance of 250+ credits, but the threshold is read-only — credits are inspected, never deducted. The extension never calls POST /v1/usage/consume; only AI verification consumes credits (charged server-side).
Export formats
CSV — UTF-8 with BOM, 13 columns including Country and Session ID.
XLSX — full Excel workbook (SheetJS-based).
JSON — full records plus session metadata.
TXT — grouped by domain.
Copy Emails / Copy Phones — newline-separated string copied to clipboard.
Copy CSV Row / Copy Pairs (TSV) — single-row variants, ready to paste into a spreadsheet.
Filename pattern: contactharvest-YYYY-MM-DD-Ncontacts.{ext}.
Capture mode (premium, requires 250+ credits)
- Click Start Capturing in the popup's capture bar. A red dot appears on the toolbar icon.
- Browse normally. Every page you visit adds its contacts to the active session, deduplicated by canonical value across domains.
- Click Stop to end the session. The session lands in the Sessions tab with date, duration, page count, contact count, and the domain list.
- Each session can be viewed, exported as CSV, or deleted.
Crawl mode (premium)
Same-domain crawler with depth and page limits, per-page delay, optional robots.txt Safe Mode, and pause / resume / stop controls. Job state survives popup close.
Bulk mode (premium)
Paste a list of URLs, validate, then sequentially open / extract / close each one. Pause / resume / stop controls. A resume banner appears when you reopen the popup mid-job. The last 5 completed jobs are kept in history.
Privacy mode and the 24-hour request counter
- Settings → Privacy → Privacy mode suppresses the 5-minute background re-validation; the extension only contacts the API on your explicit click after that.
- The popup brand strip shows a 🔒 Privacy · N calls (24h) chip with a rolling 24-hour counter so you can audit outbound activity at a glance.
Toolbar icon states
- Normal — standard ContactHarvest icon (signed in, not capturing).
- Locked — grey-tinted icon with an amber padlock badge (no API key validated).
- Capturing — red dot in the corner (active capture session, takes precedence over the Locked state).