Hollerdex — Contact Details Scraper: Emails, Phones & Socials avatar

Hollerdex — Contact Details Scraper: Emails, Phones & Socials

Pricing

$4.00 / 1,000 domain with contacts founds

Go to Apify Store
Hollerdex — Contact Details Scraper: Emails, Phones & Socials

Hollerdex — Contact Details Scraper: Emails, Phones & Socials

Website contact finder and email finder by domain (contact details scraper): ranked emails (sales, support, press), phones in E.164, LinkedIn, X, Instagram and more, contact page, form and address. Monitor mode alerts you when contacts change. $0.004 per domain with contacts; misses are free.

Pricing

$4.00 / 1,000 domain with contacts founds

Rating

0.0

(0)

Developer

CyberMax

CyberMax

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Hollerdex: website contact finder for emails, phones & social profiles

Give it a company domain, get back one clean contact card. Hollerdex returns the best email to write to, a phone number in international format, the company's LinkedIn, X, Instagram, Facebook, YouTube and TikTok, plus the contact page, the contact form and the postal address. It costs $0.004 per domain, and domains where nothing is found are free.

Why Hollerdex

  • One flat price per domain, not per page. Page-based scrapers visit up to 20 pages per site and charge for each one. Hollerdex goes straight to the pages that hold contact details (contact, impressum/imprint, about, support) and charges once per domain. Blocked, empty and unreachable domains cost nothing.
  • Ranked and labelled, ready for an agent or a CRM. Every email is tagged role (sales, support, press, legal, careers…) or personal, the best address is picked for you, and emails that belong to other organisations (a regulator or an agency named in an imprint) are moved to otherEmails. Phones come in E.164 (+12122542246), including national numbers such as 030 1234567 on a .de site.
  • Finds what simple scrapers miss. It decodes Cloudflare-protected emails, reads name [at] domain [dot] com and schema.org Organization data (emails, phones, sameAs profiles, address), and ignores share buttons, tracking addresses and logo@2x.png lookalikes.

Real example summary (from a live run, 2026-09-23):

katzsdelicatessen.com: 1 email (best: press@katzsdelicatessen.com); 1 phone; 3 social profiles (x, facebook, instagram); contact form. Checked 5 page(s).

In our test run of 40 well-known domains (SaaS, shops, restaurants, banks, EU publishers), 32 returned contacts, in about 10 seconds for the whole run. 5 were behind strong bot protection and came back blocked: true at no charge.

What you get (one record per domain)

  • companyName from schema.org, the site name or the page title
  • primaryEmail and emails[]: { email, type: "role" | "personal", role, onDomain, foundOn }
  • primaryPhone and phones[]: { phone, e164, via: "tel-link" | "text" | "schema.org", foundOn }
  • socials: the main profile per platform: linkedin, x, facebook, instagram, youtube, tiktok, github, threads, bluesky, telegram, discord, pinterest, whatsapp, crunchbase (allSocialProfiles lists every one found)
  • contactPageUrl, contactFormUrl, addresses[]
  • otherEmails: addresses on other domains that appeared on the site
  • summary: one line an LLM can quote; found, blocked, statusCode, pagesChecked, errors

Input

{ "domains": ["apify.com", "https://www.katzsdelicatessen.com/menu", "n26.com"] }

First try: the prefilled input (apify.com, basecamp.com) runs in about 10 s and costs at most $0.008.

Options: maxPagesPerDomain (default 6, max 15; the price is the same), includePersonalEmails (default true; set false to keep only role addresses such as info@ or sales@), timeoutSecs, maxConcurrency and an optional proxyConfiguration. Monitoring: monitor and monitorKey (below).

Ready-made inputs (first try in one click)

No account yet? See real results first on the free demo page: contact cards for well-known SaaS companies.

Paste one into the JSON tab of the input form (or send it to the API) and press Start. Each is sized so the first run is quick and cheap; you pay only for results (Apify's compute is included in the price).

PresetWhat you getCost
Contact cards for 2 companiesbest email with its label, phones, socials, contact page$0.008 or less
Company emails only (no personal names)sales/support/press addresses only$0.004 or less
Quick scan (3 pages per site)the same card from fewer pages, faster$0.008 or less

Contact cards for 2 companies

{"domains": ["basecamp.com", "zapier.com"]}

Company emails only (no personal names)

{"domains": ["mailchimp.com"], "includePersonalEmails": false}

Quick scan (3 pages per site)

{"domains": ["canva.com", "gumroad.com"], "maxPagesPerDomain": 3}

Same thing from a script (returns the results directly):

curl -s -X POST "https://api.apify.com/v2/acts/cybermax~website-contacts/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'content-type: application/json' -d '{"domains": ["basecamp.com", "zapier.com"]}'

Output (trimmed, real record)

{
"domain": "katzsdelicatessen.com",
"found": true,
"companyName": "Katz's Delicatessen",
"primaryEmail": "press@katzsdelicatessen.com",
"primaryPhone": "+12122542246",
"emails": [{ "email": "press@katzsdelicatessen.com", "type": "role", "role": "press", "onDomain": true,
"foundOn": "https://katzsdelicatessen.com/" }],
"phones": [{ "phone": "212-254-2246", "e164": "+12122542246", "via": "tel-link", "foundOn": "https://katzsdelicatessen.com/" }],
"socials": { "x": "https://twitter.com/KatzsDeli", "facebook": "https://www.facebook.com/katzsdeli",
"instagram": "https://www.instagram.com/katzsdeli" },
"contactPageUrl": "https://katzsdelicatessen.com/contact",
"contactFormUrl": "https://katzsdelicatessen.com/contact",
"blocked": false
}

Monitor mode: only contact cards that changed

Set "monitor": true to watch a list of domains. Hollerdex remembers each domain's contact card and, on the next monitor run, returns only domains whose card changed: an email, phone number or social profile was added or removed. Unchanged domains are left out of the dataset and not charged. The first monitor run returns every domain as "change": "new". Checks that read nothing (bot wall, site down, timeout) never count as "removed": the previous card is kept; if a contact page times out, only additions are reported.

{ "domains": ["apify.com", "basecamp.com"], "monitor": true, "monitorKey": "crm-accounts" }

Changed records carry three extra fields (structure shown; values depend on the site):

{
"domain": "acme.com",
"change": "changed",
"changedFields": ["emails", "socials"],
"changes": {
"emails": { "added": ["partners@acme.com"], "removed": [] },
"socials": { "added": ["tiktok: tiktok.com/@acme"], "removed": [] }
}
}

monitorKey names the watchlist (several can coexist; you can add domains without starting over). Without it, the state is tied to the exact domain list. A run summary (new, changed, unchanged, failed) is saved as the run's OUTPUT record.

Who it's for

  • AI agents and MCP clients asked "how do I contact acme.com?" or "find the LinkedIn and support email for these 50 companies".
  • Sales and lead-gen: enrich a list of domains from a CRM, Google Maps export or trade-show list.
  • Partnerships, PR and recruiting: find the right role address (press@, partners@, careers@) instead of a generic inbox.
  • Market research: which companies publish a phone number, use a contact form or are active on TikTok.

Pricing

EventPrice
Domain with contacts found (at least one email, phone or social profile)$0.004
Domain with nothing public, blocked by bot protection, or unreachablefree

1,000 domains with contacts cost $4. You can cap the spend of any run with Apify's maximum charge setting.

When not to use it

  • To find a specific person's private email: Hollerdex only reads what the company publishes on its own site.
  • For sites behind heavy bot protection (some big consumer brands): they come back blocked: true, free.
  • To send bulk unsolicited email: you are responsible for following anti-spam and privacy laws (CAN-SPAM, GDPR, CASL) when you use contact data.

Run it on a schedule

Apify Console → SchedulesCreate new → cron 0 8 * * * (daily 8 AM) → Add Actor → Hollerdex with your domain list and "monitor": true. With monitor mode a daily run is cheap: you only pay for domains whose contact card changed. The same schedule through the API:

POST https://api.apify.com/v2/schedules?token=YOUR_TOKEN
{
"name": "hollerdex-daily",
"cronExpression": "0 8 * * *",
"timezone": "America/New_York",
"isEnabled": true,
"actions": [{
"type": "RUN_ACTOR",
"actorId": "cybermax/website-contacts",
"runInput": {
"body": "{\"domains\":[\"apify.com\",\"basecamp.com\"],\"monitor\":true,\"monitorKey\":\"crm-accounts\"}",
"contentType": "application/json"
}
}]
}

To get notified, open the Actor → Integrations and add an email, Slack or webhook notification on "Run succeeded" (or use the Make/Zapier/n8n recipes below).

Integrations

Make: Apify app → "Run an Actor" (Actor cybermax/website-contacts, input {"domains": ["acme.com"]}, run synchronously) → "Get dataset items" → map primaryEmail, primaryPhone, socials.linkedin into your CRM.

Zapier: Apify app → "Run Actor" action (from a new CRM company or sheet row), or the "Finished Actor Run" trigger on a scheduled monitor run → "Fetch dataset items" → update the record.

n8n: the Apify node ("Run an Actor and get dataset"), or an HTTP Request node:

POST https://api.apify.com/v2/acts/cybermax~website-contacts/run-sync-get-dataset-items?token=YOUR_TOKEN
{"domains": ["apify.com", "basecamp.com"], "includePersonalEmails": false}

Google Sheets: Apify's Google Sheets integration (Actor → Integrations), or pull the last run into a cell:

=IMPORTDATA("https://api.apify.com/v2/acts/cybermax~website-contacts/runs/last/dataset/items?format=csv&token=YOUR_TOKEN")

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("cybermax/website-contacts").call(run_input={"domains": ["apify.com", "basecamp.com"]})
for card in client.dataset(run["defaultDatasetId"]).iterate_items():
print(card["domain"], card["primaryEmail"], card["socials"].get("linkedin"))

JavaScript (npm i apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('cybermax/website-contacts').call({ domains: ['apify.com', 'basecamp.com'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

AI agents (MCP): Hollerdex is a tool on Apify's MCP server, https://mcp.apify.com/?tools=cybermax/website-contacts (Authorization: Bearer YOUR_TOKEN). Claude Desktop / Cursor config:

{ "mcpServers": { "hollerdex": { "url": "https://mcp.apify.com/?tools=cybermax/website-contacts",
"headers": { "Authorization": "Bearer YOUR_TOKEN" } } } }

Each call is billed per domain with contacts to your Apify account.

Also from CyberMax

  • DomainDNA: tech stack, email security (MX/SPF/DMARC) and domain age for the same domains.
  • Logolark: company logo, icon and brand colour to complete each CRM record.
  • HireHeat: which of your accounts are hiring right now, a timing signal for outreach.
  • Linkheft: domain authority score and rank to prioritise the list.
  • SnapScout: a screenshot and page text for each site.

All tools: Boardroom Buys · Swellmeter · Gripeline · Keyfern · HireHeat Jobs · Printwren

Changelog

  • 2026-09-23: Monitor mode (monitor, monitorKey: only contact cards with an added or removed email, phone or social profile), schedule & integration recipes.

© 2026 CyberMax. All rights reserved.