NameToProfile logo
Browser Extension Support

Email & Phone Extractor — Support

Get ContactHarvest

Add it to Chrome or Firefox and start in minutes.

Quick Start

  1. Register and create an API key from nametoprofile.com/register.
  2. 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.
  3. Open the extension popup and paste your API key. The popup unlocks once it validates.
  4. Browse to any page with contact information. The popup automatically scans and lists what it finds.
  5. Click any row to copy. Use the footer's Copy Emails / Copy Phones / Export buttons for batch operations.
Scope: The extension runs on any web page (<all_urls> host permission). It does not run on browser system / internal pages (chrome://, chrome-extension://, edge://, about:, moz-extension://) — those are off-limits to all extensions on every browser.

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).

Useful Links

Data handling notes

Email and phone extraction, local confidence scoring, capture, crawl, bulk, and export all run inside your browser, and results are stored in the browser's extension local storage. The only time contacts leave your device is the optional AI verification (off by default): when enabled and triggered, uncertain candidates plus short context and the page URL/title are sent for an AI confidence check. See the Privacy Policy for full details.

Clear data behavior

Options → About → Clear all stored data removes contacts, capture sessions, crawl / bulk job state, and the 24-hour request log; settings and the API key are kept. Use Options → Privacy → Sign out to remove the API key and cached auth state. Options → About → Reset settings to defaults restores every option. Uninstalling the extension removes everything.

Premium features and credits

The premium features (Capture, Crawl, Bulk, Site blacklist, Email filters, Phone filters) are gated by a credit-balance read: your account must have at least 250 credits available. The extension reads your balance via GET /v1/usage and unlocks premium UI when the balance is sufficient. Credits are never deducted — the threshold is advisory only.

Troubleshooting

API key invalid mid-session

  • Your key was deactivated or rotated.
  • Open the Options page, sign out, and paste a new key.
  • The mid-session 401 banner gives you a one-click jump to Options.

Backend unreachable

  • Check your internet connectivity.
  • The extension keeps using the cached auth state until it can re-validate; you may see stale credit numbers until it succeeds.
  • Hit the Retry button on the popup banner once you're back online.

Restricted page

  • The extension can't run on browser internal pages — chrome://, chrome-extension://, edge://, about:, and moz-extension:// are all off-limits to extensions across browsers.
  • Browse to a regular site and try again.

Empty list on a page that clearly has contacts

  • Hit the 🔄 Re-scan button — some pages render contacts via JavaScript a few seconds after loading.
  • Pages with cross-origin iframes are partially invisible to extensions (browser security boundary).
  • If the contact uses an unusual encoding, please email support with the page URL.

Premium tabs locked even though I have credits

  • Premium needs 250+ credits.
  • Click the credit chip in the popup header to refresh the cached balance.
  • Or hit Refresh balance in Options → Account.

Contacts disappearing

  • The 4.5 MB LRU eviction drops oldest contacts first.
  • The 30-day retention prune (default) is also active.
  • Export anything you want to keep, or change the retention window to 90 days / Never under Settings → Privacy.

Phone shown as "Low" even though it looks correct

  • Common reasons: a short code from a non-tel: source; libphonenumber said "possible" but couldn't pick a country; length is too long for any region; or it's a NANP non-geographic special prefix (500 / 700 / 900).
  • The Low tag is intentionally cautious — the contact is still in the list and exportable.

Popup is cut off or scrolling weirdly

  • The popup is fixed-width (380 px).
  • On very high-DPI screens at zoom > 200%, content can overflow.
  • Use a normal zoom level and reopen the popup.

FAQ

Which pages are supported?

Any page you actively load. The extension is not domain-restricted. It does not run on browser internal pages (chrome://, chrome-extension://, edge://, about:, moz-extension://) — those are off-limits to extensions on every browser.

Does the extension send my extracted contacts anywhere?

No. All extraction, scoring, capture, crawling, and export run inside your browser. The only API calls are /v1/auth/validate and /v1/usage — neither carries contacts or page content.

Are credits deducted when I extract contacts?

No. The 250-credit threshold is a read-only premium gate. The extension never calls /v1/usage/consume.

Why does my browser warn that the extension can read all your data on websites?

Every browser (Chrome, Firefox, Edge, and others) shows a permission warning at install time for the <all_urls> host permission, because the extraction logic must run on whatever page you ask it to. The extension never sends page data anywhere — see Privacy Policy section 5 for how to verify this.

How do I export my contacts?

Popup footer → Export → CSV / XLSX / JSON / TXT. The filename includes the date and contact count (e.g. contactharvest-2026-04-29-237contacts.csv).

Can I disable the extension on internal or banking pages?

Yes. Options → Site blacklist (premium) lets you list hostnames to skip. You can also sign out, which fully suspends the extension.

Where is my API key stored?

In your browser's extension local storage (chrome.storage.local in Chromium-based browsers, browser.storage.local in Firefox), protected by your browser's profile-level encryption at rest. Sign out from Options to wipe it, or uninstall the extension to wipe everything.

I'm a security researcher / regulator. How do I verify the no-telemetry claims?

The extension ships as un-minified JavaScript. Privacy Policy section 11 explains how to inspect the source. The only outbound endpoints are /v1/auth/validate and /v1/usage; grep the codebase for consume to confirm /v1/usage/consume is never called.

Contact Support

For setup help, extraction issues, premium-features questions, or API-key issues for the Email & Phone Extractor.

Email: info@nametoprofile.com

Need direct help?

Send your account email, the page URL where the issue occurred, a screenshot of the popup, and the exact error if available.

Email Support

We use privacy-friendly analytics to improve the site. No personal data is sold. You can opt out.