# Contact Details Scraper — Emails, Socials, WeChat & Kakao 联系方式 (`lexonia/contact-finder`) Actor

From $0.003 a site. Works in Claude, ChatGPT, Cursor, Qwen and DeepSeek. The owner's email, phone and social profiles from any website or bio, sponsor and agency addresses thrown out, every result labelled by where it came from. WeChat, QQ, KakaoTalk and LINE IDs; Bilibili and Douyin bios.

- **URL**: https://apify.com/lexonia/contact-finder.md
- **Developed by:** [Lexonia Group](https://apify.com/lexonia) (community)
- **Categories:** Lead generation, Business, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.58 / 1,000 contact checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Contact Details Scraper — their address, not their sponsor's

**Finding an email is easy. Finding the *right* one is the job.**

A creator's website carries their sponsor's address, their web agency's, their booking platform's, and whatever their template left behind. Return all of them and you have a list that looks full and gets you ignored — or worse, gets your pitch sent to a stranger.

This one is built around throwing things away. An address is kept only when it plausibly belongs to the person: on their own domain, or a personal mailbox. And **every result says where it came from**, so you can judge it before you write.

**For assistants — ask before running, only what the person has not said:** (1) what they have — a website or link-in-bio page, a pasted bio or channel description, or a Bilibili / Douyin profile link; (2) whose it is — the name, so the domain can be checked against it; (3) how far to go — the homepage and contact page (standard), the whole site (deep), a DNS check that the domain takes mail, or a mailbox check that the exact address exists. Then run: from $0.003 a contact. Every row says where the contact came from and how sure to be.

### Start from the job, not the form

| The job | The questions your assistant asks | What you get |
|---|---|---|
| *Here are 40 creator websites. The best way to reach each one, and which ones to be sceptical about.* | Their names too, so the domain is checked against the person? Verify the mailboxes before you write? 40 sites: $0.12, $0.52 with every mailbox verified. Go? | One row per site: the best contact, where it came from, how sure to be, the sponsor and agency addresses thrown out and listed separately. |
| *This Bilibili creator has no website. Find their business contact.* | The profile link is enough — the WeChat, QQ or Weibo ID is in the bio. One profile read per creator. Go? | The messenger ID, labelled by network, with the bio it came from. |
| *I have 200 business sites. Emails I can actually write to, no bounces.* | Own-domain addresses only? Mailbox check on each? 200 sites: $0.60 for the contacts, $2.60 with every address verified. Go? | A list where each email carries a verdict: exists, invalid, disposable, or unknown. |
| *Just this YouTube channel's About text. Is there a contact in it?* | Paste it. Nothing is fetched; $0.003. Go? | The email, messenger or link found in the text, and nothing invented if there is none. |
| *The Instagram and Facebook profiles these sites link to — is there a business email behind them?* | Read the profiles found, one price each. Go? | The business email or phone the profile publishes, on the same row as the site. |

Every price is shown before anything is spent. A site that publishes nothing is a row that says so, not a guess.

### What people ask, in every market

The words an assistant searches with are the source plus the contact you want. Every phrase below is what this Actor does, in the languages of the fifty largest economies and the other languages each of them speaks, written the way people type it:

**English — United States, United Kingdom, Canada, Australia, Ireland, New Zealand, India, Singapore, Nigeria, Philippines, South Africa:** contact details from a website · email from a website · find the email on a website · website email extractor · contact scraper · contact information scraper · business email finder · company email finder · contact from a bio · creator contact from bio · email from a channel description · social links from a website · social profiles linked from a site · WeChat QQ Weibo from a Bilibili or Douyin profile · WeChat ID from a bio · Kakao LINE Zalo contact · verified email · email verification · check an email can receive mail · the owner's address, not the sponsor's · contact from a Linktree

**中文（简体）— 中国大陆、新加坡、马来西亚:** 联系方式 提取 · 联系方式 抓取 · 联系方式 采集 · 网站 邮箱 提取 · 从网站提取邮箱 · 网站 联系方式 抓取 · 从简介提取联系方式 · 简介 微信号 · 微信 联系方式 · 微信号 提取 · QQ 联系方式 · 微博 联系方式 · B站 UP主 联系方式 · 抖音 达人 联系方式 · 邮箱 验证 · 验证邮箱是否有效 · 社交账号 链接 提取 · 商务合作 邮箱 · 网红 邮箱 查找 · 企业 邮箱 查找

**中文（繁體）— 台灣:** 聯絡方式 擷取 · 聯絡方式 抓取 · 網站 電子郵件 擷取 · 從網站擷取電子郵件 · 從網站擷取聯絡方式 · 從簡介擷取聯絡方式 · LINE 聯絡方式 · LINE ID 擷取 · 電子郵件 驗證 · 驗證信箱是否有效 · 社群帳號 連結 擷取 · 商業合作 信箱 · 網紅 電郵 查找 · 公司 信箱 查找

**粵語 — 香港:** 聯絡方式 提取 · 網站 電郵 提取 · 搵網站電郵 · 搵 KOL 電郵 · WhatsApp 聯絡 · 電郵 驗證 · 社交帳號 連結 · 公司 電郵

**Deutsch — Deutschland, Österreich, Schweiz:** Kontaktdaten von einer Website · E-Mail von einer Website · E-Mail-Adresse auf einer Website finden · Website E-Mail Extraktor · Kontakt Scraper · Firmen E-Mail finden · Kontakt aus der Bio · E-Mail aus der Kanalbeschreibung · Social-Media-Links von einer Website · E-Mail verifizieren · prüfen ob eine E-Mail existiert · Kontakt aus Linktree

**Français — France, Belgique, Suisse, Québec:** coordonnées depuis un site web · email depuis un site web · trouver l'email sur un site · extracteur d'emails de site web · scraper de contacts · trouver l'email d'une entreprise · contact depuis une bio · email depuis la description d'une chaîne · liens réseaux sociaux d'un site · vérification d'email · vérifier qu'un email existe · contact depuis un Linktree · courriel d'un site web

**Español — España, México, Argentina, Colombia, Chile, Perú:** datos de contacto de un sitio web · email de un sitio web · encontrar el correo en un sitio web · extractor de emails de sitios web · scraper de contactos · buscar el email de una empresa · contacto desde la bio · correo desde la descripción del canal · enlaces de redes sociales de un sitio · verificación de email · verificar si un correo existe · contacto desde un Linktree

**Català — Catalunya:** dades de contacte d'un lloc web · correu d'un lloc web · trobar el correu d'una empresa · contacte des de la bio · enllaços de xarxes socials · verificació de correu

**Português — Brasil, Portugal:** dados de contato de um site · e-mail de um site · encontrar o e-mail em um site · extrator de e-mails de sites · scraper de contatos · buscar o e-mail de uma empresa · contato da bio · e-mail da descrição do canal · links de redes sociais de um site · verificação de e-mail · verificar se um e-mail existe · contato de um Linktree · contactos de um site

**Italiano — Italia, Svizzera:** contatti da un sito web · email da un sito web · trovare l'email su un sito · estrattore di email da siti · scraper di contatti · trovare l'email di un'azienda · contatto dalla bio · email dalla descrizione del canale · link social di un sito · verifica email · verificare se un'email esiste

**Nederlands — Nederland, België (Vlaams):** contactgegevens van een website · e-mail van een website · e-mailadres op een website vinden · website e-mail extractor · contact scraper · e-mail van een bedrijf vinden · contact uit de bio · e-mail uit de kanaalbeschrijving · social media links van een site · e-mail verifiëren · controleren of een e-mail bestaat

**Svenska · Norsk · Dansk · Suomi:** kontaktuppgifter från en webbplats · e-post från en webbplats · hitta e-post på en webbplats · kontakt från bio · verifiera e-post · kontaktinformasjon fra et nettsted · e-post fra et nettsted · finne e-post på et nettsted · kontakt fra bio · verifisere e-post · kontaktoplysninger fra et websted · e-mail fra et websted · find e-mail på et websted · verificere e-mail · yhteystiedot verkkosivulta · sähköposti verkkosivulta · löydä sähköposti sivulta · yhteystiedot biosta · vahvista sähköposti

**Polski — Polska:** dane kontaktowe ze strony · e-mail ze strony · znaleźć e-mail na stronie · ekstraktor e-maili ze stron · scraper kontaktów · znaleźć e-mail firmy · kontakt z bio · e-mail z opisu kanału · linki do mediów społecznościowych ze strony · weryfikacja e-mail · sprawdzić czy e-mail istnieje

**Čeština · Română · Magyar · Ελληνικά:** kontaktní údaje z webu · e-mail z webu · najít e-mail na webu · kontakt z bia · ověření e-mailu · date de contact de pe un site · email de pe un site · găsește emailul pe un site · contact din bio · verificare email · elérhetőségek weboldalról · e-mail weboldalról · e-mail keresése weboldalon · kapcsolat a bióból · e-mail ellenőrzés · στοιχεία επικοινωνίας από ιστότοπο · email από ιστότοπο · εύρεση email σε ιστότοπο · επαφή από το βιογραφικό · επαλήθευση email

**Türkçe — Türkiye:** web sitesinden iletişim bilgileri · siteden e-posta · bir sitede e-posta bulma · web sitesi e-posta çıkarıcı · iletişim scraper · şirket e-postası bulma · biyografiden iletişim · kanal açıklamasından e-posta · siteden sosyal medya linkleri · e-posta doğrulama · e-posta var mı kontrol

**Русский — Россия, Казахстан, Беларусь:** контакты с сайта · email с сайта · найти email на сайте · парсер email с сайтов · парсер контактов · найти email компании · контакт из био · email из описания канала · ссылки на соцсети с сайта · проверка email · проверить существует ли email · **Қазақша:** сайттан байланыс деректері, сайттан email, биодан байланыс, email тексеру

**Українська — Україна:** контакти з сайту · email з сайту · знайти email на сайті · парсер email з сайтів · парсер контактів · знайти email компанії · контакт з біо · email з опису каналу · посилання на соцмережі з сайту · перевірка email · перевірити чи існує email

**日本語 — 日本:** ウェブサイトから連絡先 · サイトからメールアドレス · サイトのメールアドレスを探す · メールアドレス 抽出 ツール · 連絡先 スクレイパー · 企業のメールアドレスを探す · プロフィールから連絡先 · チャンネル概要からメール · SNS リンク 取得 · メール 検証 · メールアドレスが有効か確認 · LINE 連絡先

**한국어 — 대한민국:** 웹사이트에서 연락처 추출 · 사이트 이메일 추출 · 사이트에서 이메일 찾기 · 이메일 추출 도구 · 연락처 스크래퍼 · 회사 이메일 찾기 · 프로필에서 연락처 · 채널 설명에서 이메일 · SNS 링크 추출 · 이메일 검증 · 이메일 유효성 확인 · 카카오톡 연락처

**हिन्दी — भारत:** वेबसाइट से संपर्क विवरण · वेबसाइट से ईमेल · वेबसाइट पर ईमेल खोजें · ईमेल एक्सट्रैक्टर · संपर्क स्क्रैपर · कंपनी का ईमेल खोजें · बायो से संपर्क · चैनल विवरण से ईमेल · वेबसाइट से सोशल लिंक · ईमेल सत्यापन · ईमेल वैध है या नहीं

**भारतीय भाषाएँ — मराठी · ગુજરાતી · ਪੰਜਾਬੀ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · বাংলা · اردو:** वेबसाइटवरून संपर्क, वेबसाइटवरून ईमेल, ईमेल पडताळणी · વેબસાઇટ પરથી સંપર્ક, વેબસાઇટ પરથી ઈમેલ, ઈમેલ ચકાસણી · ਵੈੱਬਸਾਈਟ ਤੋਂ ਸੰਪਰਕ, ਵੈੱਬਸਾਈਟ ਤੋਂ ਈਮੇਲ · இணையதளத்தில் இருந்து தொடர்பு, இணையதளத்தில் இருந்து மின்னஞ்சல், மின்னஞ்சல் சரிபார்ப்பு · వెబ్‌సైట్ నుండి సంప్రదింపు, వెబ్‌సైట్ నుండి ఇమెయిల్ · ವೆಬ್‌ಸೈಟ್‌ನಿಂದ ಸಂಪರ್ಕ, ವೆಬ್‌ಸೈಟ್‌ನಿಂದ ಇಮೇಲ್ · വെബ്‌സൈറ്റിൽ നിന്ന് കോൺടാക്റ്റ്, വെബ്‌സൈറ്റിൽ നിന്ന് ഇമെയിൽ · ওয়েবসাইট থেকে যোগাযোগ, ওয়েবসাইট থেকে ইমেইল, ইমেইল যাচাই · ویب سائٹ سے رابطہ، ویب سائٹ سے ای میل، ای میل کی تصدیق

**Bahasa Indonesia · Bahasa Melayu — Indonesia, Malaysia, Singapura:** kontak dari situs web · email dari situs web · cari email di situs web · ekstraktor email situs · scraper kontak · cari email perusahaan · kontak dari bio · email dari deskripsi channel · link media sosial dari situs · verifikasi email · cek email valid · maklumat hubungan dari laman web · emel dari laman web · cari emel di laman web · hubungan dari bio · sahkan emel

**Filipino — Pilipinas:** contact details mula sa website · email mula sa website · hanapin ang email sa website · contact scraper · email ng kumpanya · contact mula sa bio · email mula sa channel description · social media links ng website · email verification · i-verify ang email

**ไทย — ประเทศไทย:** ข้อมูลติดต่อจากเว็บไซต์ · อีเมลจากเว็บไซต์ · หาอีเมลบนเว็บไซต์ · ดึงอีเมลจากเว็บ · สแครปข้อมูลติดต่อ · หาอีเมลบริษัท · ติดต่อจากไบโอ · อีเมลจากคำอธิบายช่อง · ลิงก์โซเชียลจากเว็บ · ตรวจสอบอีเมล · เช็กว่าอีเมลใช้ได้ · LINE ติดต่อ

**Tiếng Việt — Việt Nam:** thông tin liên hệ từ website · email từ website · tìm email trên website · trích xuất email từ web · scraper liên hệ · tìm email công ty · liên hệ từ bio · email từ mô tả kênh · link mạng xã hội từ website · xác minh email · kiểm tra email có tồn tại · Zalo liên hệ

**العربية — السعودية، الإمارات، مصر، قطر، الكويت، العراق:** بيانات الاتصال من موقع · بريد إلكتروني من موقع · إيجاد الإيميل في موقع · استخراج الإيميلات من المواقع · أداة جمع جهات الاتصال · إيجاد إيميل شركة · جهة اتصال من البايو · إيميل من وصف القناة · روابط التواصل الاجتماعي من موقع · التحقق من البريد الإلكتروني · التأكد أن الإيميل شغال · **مصري:** إيميل من موقع، دور على إيميل شركة، تأكد إن الإيميل شغال · **خليجي:** إيميل من الموقع، جهات اتصال من الموقع، تحقق من الإيميل

**עברית — ישראל:** פרטי קשר מאתר · אימייל מאתר · למצוא אימייל באתר · חילוץ אימיילים מאתרים · סקרייפר אנשי קשר · למצוא אימייל של חברה · איש קשר מהביו · אימייל מתיאור הערוץ · קישורים לרשתות חברתיות מאתר · אימות אימייל · לבדוק שאימייל קיים

**Afrikaans · isiZulu · isiXhosa — Suid-Afrika:** kontakbesonderhede van 'n webwerf · e-pos van 'n webwerf · vind die e-pos op 'n webwerf · kontak uit die bio · e-pos verifieer · imininingwane yokuxhumana kusuka kuwebhusayithi, i-imeyili kusuka kuwebhusayithi · iinkcukacha zoqhagamshelwano kwiwebhusayithi, i-imeyili kwiwebhusayithi

**Hausa · Yorùbá · Igbo — Nigeria:** bayanan tuntuɓa daga gidan yanar gizo · imel daga gidan yanar gizo · tabbatar da imel · àlàyé olùbásọ̀rọ̀ láti ojú-òpó wẹ́ẹ̀bù · ímeèlì láti ojú-òpó wẹ́ẹ̀bù · ìfẹ̀rí ímeèlì · nkọwa kọntaktị site na weebụsaịtị · email site na weebụsaịtị · nyocha email

### You don't fill in a form. You just ask.

This runs inside the **Claude or ChatGPT you already use**:

> **You** — Here are 40 creator websites. Find me the best way to contact each one, and tell me which ones I should be sceptical about.
>
> **Your AI** — 33 of 40 published a contact. 21 are high confidence — their own domain or their own bio. 8 are social profiles only. 4 look like a sponsor's address, flagged. 7 published nothing; here's the list so you don't waste time.

### Say it in your own words

Any of these, typed into Claude or ChatGPT with Apify connected, runs this Actor:

- *Find the email on this website.* · *Here are 40 sites — the best contact for each.*
- *Which of these email addresses actually exist? I don't want bounces.*
- *This Bilibili creator's WeChat.* · *The Douyin account's business contact.*
- *Here's a channel description — is there a contact in it?*
- *Only their own addresses. No sponsors, no agencies, no booking platforms.*
- *Follow this Linktree to their real site and get the contact there.*
- *Read the whole site, not just the contact page.* · *Check the Instagram profiles they link to.*

When it finishes, your assistant offers the next step itself: verify the mailboxes, go deeper on the empty ones, read the social profiles.

#### Connect it once — five minutes

1. Free account at [apify.com](https://apify.com) — $5 credit. A site costs $0.003, so that goes far.
2. **Settings → Integrations** → copy your **Personal API token**.
3. **Claude:** Settings → Connectors → Add custom connector → `https://mcp.apify.com` → authorise.
   **ChatGPT / Cursor / Qwen / DeepSeek** — the same address. Qwen and DeepSeek run it through **Cherry Studio** or **Dify** inside China; Cursor, Windsurf and any other MCP client take the same connector.

### What "where it came from" means

| Confidence | What it means | Act on it? |
|---|---|---|
| **High** | Their own bio, their own domain, or a messenger ID they published | Yes |
| **Medium** | A page on their site that also lists other companies, or a social profile | Probably — read it first |
| **Low** | Only a handle or a phone number | It's a lead, not a contact |

### It works outside the English-speaking web

Most contact tools only read links. That quietly fails in half the world, because plenty of creators never publish a URL — they write an ID and expect you to use it.

This reads all of it:

- **Addresses written to dodge scrapers** — `hello (at) mysite (dot) com` comes back as `hello@mysite.com`
- **Messenger IDs** — WeChat, QQ, Weibo, KakaoTalk, LINE, Viber, Telegram, WhatsApp, Zalo. In China, Korea, Ukraine, Vietnam and Thailand this *is* how business contact happens
- **Handles typed rather than linked** — `IG: @coffeeguy`, `인스타 @foo`

Measured across 109 creators in five markets: reading links alone reaches 75%. Reading these too reaches **82%** — and the gain lands exactly where link culture is thinnest (Korea 53% → 63%, China 64% → 71%).

#### How often does the link-in-bio route matter?

Measured on 143 real videos, **about 2% of creators** published a link-in-bio page. So it is not the common case — it is the case that is otherwise impossible, because those creators have no website to read at all. Worth switching on when a basic check found nothing.

### Chinese creators: there is no website to read

On Bilibili and Douyin most creators never publish a site. The business contact is a
**WeChat, QQ or Weibo ID written into the profile bio** — and that bio does not appear in
search results, so anything that only reads links reports these creators as unreachable
when they are not.

Give it the profile link instead of a website:

- `https://space.bilibili.com/123456`
- `https://www.douyin.com/user/MS4wLjAB…`

It fetches the profile, reads the bio, and runs the same extraction and the same judgement
as it would on a website. On these platforms a **messenger ID outranks an email** — that is
how business contact actually happens there, and a creator who published one expects to be
reached on it.

**$0.010 per profile.** Dearer than a website check because the profile has to be fetched
from the platform itself.

### No website? Paste their bio instead

Give it a YouTube About text, a TikTok bio, an email signature. Nothing is fetched — it just reads. Often that's all you need, and it's instant.

### In n8n, Make or Zapier — no code, no chat

The same app runs inside a workflow. Apify's own n8n node (search **Apify** in n8n Cloud's node panel, or install `@apify/n8n-nodes-apify` on a self-hosted instance) runs any Actor; Make and Zapier have the same Apify module.

1. **Run Actor** — Actor: `lexonia/contact-finder`; Custom input: the same JSON you would type in the form; Wait for finish: on.
2. **Get Dataset Items** — Dataset ID: `{{ $json.defaultDatasetId }}` from the step before.
3. Send the rows where they go: Google Sheets, Slack, Notion, your CRM.

Ready-made workflow to import: [`integrations/n8n/contact-finder.json`](https://github.com/Lexonia-AI-APIFY/audience-intel/blob/main/integrations/n8n/contact-finder.json) — a list of websites in, the owner's verified email out. Pair the Apify node with n8n's **AI Agent** node and the assistant fills the input from a sentence, exactly as Claude does.

### What you get per person

| | |
|---|---|
| **Best contact** | the one to actually try, with its source and confidence |
| **Emails** | split into *on their own domain* and *elsewhere — may be a sponsor* |
| **Messengers** | WeChat / QQ / Weibo / KakaoTalk / LINE / Viber / Telegram / WhatsApp / Zalo, labelled by network |
| **Socials** | their profiles, share buttons and shorteners stripped out — and, with the profile read, what is behind each: business email, phone, followers, bio |
| **Handles & phones** | the weaker signals, kept separate so they don't inflate the count |
| **Pages read** | exactly which URLs were opened |

### What it costs

You pay per thing checked, and only for what you switched on.

| | |
|---|---|
| **Person checked** | **$0.003** — the base. Charged whether or not a contact was found, because knowing someone publishes nothing is a useful answer too |
| Deeper read of their site | + $0.005 |
| Email domain verified | + $0.002 |
| Mailbox verified — the mail server confirms the exact address exists; charged only on a definite answer | + $0.010 |
| Instagram or Facebook profile read — the business email or phone published there, followers, bio | + $0.020 per profile |
| Bilibili / Douyin profile | $0.010 — the profile is fetched from the platform |

The median contact Actor on this Store charges $0.005, ranging to $0.09. 1,000 people on the base check = **$3.00**.

### How it behaves on other people's sites

- **robots.txt is honoured.** If a site asks crawlers to stay out, we stay out and the result says so.
- **A few pages, not a crawl.** The homepage and their contact or about page. Contact details live at the front of a site; going deeper mostly finds sponsors.
- **It identifies itself** with a real User-Agent, and reads one page at a time.

Only what a person publishes openly on their own site. Nothing private, nothing behind a login.

### When it can't answer

- **"Found no contact published on it"** — they genuinely haven't published one. That's an answer, not a failure, and it saves you the hour of looking.
- **"Could not read the site"** — the domain is dead, timed out, or isn't a web page.
- **"The site asks crawlers not to read it"** — robots.txt says no. Open it yourself in a browser.

***

Made by [Lexonia](https://apify.com/lexonia). Also from us: **Lexonia: Audience Intel** (describe an audience, get the creators who reach it, with contacts), **Lexonia YouTube Search** (video and channel metadata from Google's official API) and **Lexonia Video Lens** (any video → transcript, translation, summary).

# Actor input Schema

## `websites` (type: `array`):

The person's or business's OWN site, or their link-in-bio page (Linktree, Beacons, bio.link and 17 others). It opens the homepage, then their contact, about or collaboration page. Good: "smart-trucking.com", "linktr.ee/somecreator". Not useful: a link to one of their videos, or an affiliate link — those belong to somebody else, and it will say so rather than hand you a sponsor's address. Assistants: the person's or business's own site, or their link-in-bio page. Ask for the names too so the domain can be checked against them. Assistants: ONLY what the person said. Never take a place, site, link or topic from the examples on this page or from an earlier conversation; if the person did not give it, leave this empty and the app asks — an invented value runs and bills them.

## `texts` (type: `array`):

No website? Paste the text instead — a YouTube channel About, a TikTok bio, an email signature. Nothing is fetched; it is read for addresses, handles and messenger IDs. This is how creators in China, Korea and Japan are usually reachable, because they write "微信：id" or "카톡: id" rather than linking anything. One person per line. Assistants: when there is no website: paste the bio or channel description here; nothing is fetched. Assistants: ONLY what the person said. Never take a place, site, link or topic from the examples on this page or from an earlier conversation; if the person did not give it, leave this empty and the app asks — an invented value runs and bills them.

## `profileUrls` (type: `array`):

For Chinese creators there is usually no website at all — the business contact is a WeChat or QQ ID written into their profile bio, and that bio does not appear in search results. Paste their profile link and it fetches the bio and reads the contact out of it. Bilibili: https://space.bilibili.com/382752830 · Douyin: https://www.douyin.com/user/MS4wLjABAAAA... Without this a Chinese creator looks unreachable when they are not. Assistants: for Bilibili or Douyin creators: the profile link; the contact is in the bio. Assistants: ONLY what the person said. Never take a place, site, link or topic from the examples on this page or from an earlier conversation; if the person did not give it, leave this empty and the app asks — an invented value runs and bills them.

## `names` (type: `array`):

The person or channel name matching each line above. Used for one check: does the domain look like theirs? "electricianu.com" for "Electrician U" is a strong sign you are on the right site. Leave empty and everything still works; you just lose that signal. Assistants: do not ask for it; use it only when the person already gave a name.

## `deepCheck` (type: `boolean`):

OFF (default): the homepage plus their contact page — right for a normal business site, and the cheaper price. ON: also follows every link on a Linktree-style page, reads up to 15 pages, and looks inside embedded booking and contact widgets. Worth switching on for creators, who often have no website at all — just a link-in-bio whose links hold the business address. Charged as an add-on only on the rows where it actually did extra work. Assistants: offer after a standard run for the sites that returned nothing. Assistants: do not ask; switch on only for a link-in-bio page.

## `checkEmailDomains` (type: `boolean`):

Asks DNS whether each address's domain is set up to receive mail at all — it catches dead domains and typos before you send. It does not check the individual mailbox; switch on "Verify the mailboxes" for that. Every result says which of the two it checked.

## `verifyEmails` (type: `boolean`):

Asks each address's mail server whether that exact mailbox exists — the same question a mail server asks in the first second of delivery — then hangs up without sending anything. You are charged only for a definite answer: the mailbox exists, it does not, or it is a throwaway address. Some servers accept every address or refuse to answer; those come back as "could not confirm" and cost nothing. Good: switch it on before a campaign to 200 creators. Not needed: when you only want to know who published a contact. Assistants: ask "verify the mailboxes before you write?" — $0.010 an address, only definite answers charged.

## `readSocialProfiles` (type: `boolean`):

On: every Instagram and Facebook link found is opened and the profile read — the business email or phone published there, follower count, bio, whether the account is verified or a business account. Measured on ten real businesses: three Instagram bios and six Facebook pages carried a contact the website did not. Off: you get the links only. Switch on for an outreach list; leave off when the website was enough.

## `maxPagesPerSite` (type: `integer`):

The homepage plus this many of their contact/about pages. 3 is right for almost everything — contact details live at the front of a site, not buried in it. Raising this mostly adds sponsor pages, which is where wrong addresses come from.

## `strictOwnDomain` (type: `boolean`):

ON (default): keep an address only if it is on the site's own domain or is a personal mailbox (Gmail, Naver, QQ and the like). Everything else belongs to another company — a sponsor, an agency, a supplier. OFF returns every address on the page, which is faster to collect and far more likely to put you in touch with the wrong person. Assistants: keep on unless the user explicitly wants every address on the page, sponsors included.

## `respectRobots` (type: `boolean`):

ON (default): if a site asks crawlers to stay out, we do, and the result says so plainly. Leave this on — it is the difference between a tool you can use at work and one you cannot.

## Actor input object example

```json
{
  "websites": [
    "https://www.smart-trucking.com",
    "seattlecoffeegear.com"
  ],
  "texts": [
    "Business enquiries: hello (at) mysite (dot) com · IG @coffeeguy · 商务微信：coffee2026"
  ],
  "profileUrls": [
    "https://space.bilibili.com/382752830"
  ],
  "names": [
    "Smart Trucking",
    "Seattle Coffee Gear"
  ],
  "deepCheck": false,
  "checkEmailDomains": false,
  "verifyEmails": false,
  "readSocialProfiles": false,
  "maxPagesPerSite": 3,
  "strictOwnDomain": true,
  "respectRobots": true
}
```

# Actor output Schema

## `contacts` (type: `string`):

The best contact for each person, labelled by source and confidence. High means their own bio or their own domain; medium means a page that may also list sponsors; low means a handle or phone only.

## `allSignals` (type: `string`):

Every email, messenger ID, social profile, handle and phone number found, with their own-domain emails separated from addresses that may belong to somebody else.

## `runSummary` (type: `string`):

How many were checked, how many had a contact published, and the confidence split.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "websites": [
        "https://www.smart-trucking.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexonia/contact-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "websites": ["https://www.smart-trucking.com"] }

# Run the Actor and wait for it to finish
run = client.actor("lexonia/contact-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "websites": [
    "https://www.smart-trucking.com"
  ]
}' |
apify call lexonia/contact-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lexonia/contact-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/chr2XAUS3NnPskuhJ/builds/5aqxD1RXUPnV9aVWd/openapi.json
