Extract Contacts from Any Website — Emails, Phones, and Decision-Makers via LLM
Feed in a list of company websites and get back structured contact data: emails, phone numbers, and decision-maker names. Our 2-phase crawler first discovers contact and team pages, then uses an LLM chain (Gemini, Groq, OpenRouter) to extract and structure the information. Automatic browser fallback for JS-heavy sites.
AI Engine
LLM chain (Gemini/Groq)
What You Can Scrape
- Email addresses — general and department-specific emails found on contact, imprint, and team pages
- Phone numbers — main, sales, and support phone numbers with international formatting
- Decision-makers — names and roles of CEO, CTO, sales directors, and other key contacts
- Social profiles — LinkedIn, Twitter, Facebook links when available
- Address data — street address, city, postal code, country
- Any website — works on company sites regardless of CMS, framework, or language
Primary Use Cases
- B2B lead enrichment — enrich a list of company domains with verified contact data
- Sales prospecting — find decision-maker contacts for outbound campaigns
- CRM data quality — verify and update existing contact records at scale
- Market research — build company profiles with complete contact information
- Partnership outreach — find the right contact person at potential partner companies
API Example
curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~website-contact-extractor/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://example.com", "https://another-company.de"],
"maxPagesPerDomain": 5
}'
Integrations
- n8n / Make / Zapier — trigger runs and process results via webhook
- AI Agents (MCP) — Claude Desktop, Cursor, VS Code, LangChain, LlamaIndex
- Python / Node.js — Apify SDK for programmatic access
- Google Sheets / Airtable — export via Apify integrations
How It Compares
| Feature | NanoScrape | Manual / Hunter.io |
| Cost per company | $0.01 | $0.03 - $0.10 |
| Decision-makers | LLM-extracted | Database lookup only |
| Phone numbers | Yes | Usually email-only |
| Works on any site | Yes (2-phase crawl) | Limited to indexed sites |
| Browser fallback | Automatic for JS sites | N/A |
| API access | Full Apify API | Separate subscription |
Output Fields
| Field | Type | Example |
| domain | string | example.com |
| emails | string[] | ["[email protected]", "[email protected]"] |
| phones | string[] | ["+49 89 123456", "+49 89 123457"] |
| contacts | object[] | [{"name": "Max Mustermann", "role": "CEO"}] |
| address | string | Musterstr. 1, 80331 Munich |
| social_links | object | {"linkedin": "...", "twitter": "..."} |
| pages_crawled | number | 4 |