Tiktok Contact Extractor
Pricing
from $4.80 / 1,000 contact results
Tiktok Contact Extractor
TikTok Contact Extractor finds public contact details from TikTok creators, including emails, phones, websites, Instagram, YouTube, and profile data. Use it for influencer outreach, lead generation, creator partnerships, and contact-ready CRM exports.
Pricing
from $4.80 / 1,000 contact results
Rating
0.0
(0)
Developer
Delowar Munna
Actor stats
0
Bookmarked
6
Total users
3
Monthly active users
6 days ago
Last modified
Categories
Share
Extract public emails, phones, websites, and outreach clues from TikTok creators with source attribution, confidence scoring, and contact-ready lead exports.
What does this actor do?
TikTok Contact Extractor is an Apify Actor that extracts publicly available contact details from TikTok creators, including:
- Emails — extracted from bios and linked websites
- Phone numbers — extracted from bios and linked websites when public
- Instagram handles — from bios or linked pages
- YouTube handles — from bios or linked pages
- External URLs — bio links, websites, contact pages
- Profile metadata — followers, verification status, display name, bio text
- Source attribution — where each contact clue was found (bio, website, contact page)
- Confidence scores — how trustworthy each contact value is
- Lead quality indicators — outreach readiness and lead scoring
This actor is designed as a contact discovery and lead-enrichment tool, not a general TikTok scraper. It helps answer:
- Which TikTok creators have public contact information?
- Which creators are contactable right now?
- Which contact details came from bio text versus linked websites?
- Which creator leads look most trustworthy and complete?
Why use this actor?
- Multi-source contact extraction — bio text, link-in-bio websites, and contact pages
- Clear source attribution — every contact field shows where it was found
- Confidence scoring — heuristic scores per email and phone based on source quality
- Lead qualification — contact readiness levels and lead quality scores
- CRM-ready flat output — one row per creator, easy to import anywhere
- Multiple input modes — direct profiles, keyword discovery, and hashtag discovery
- Deduplication — creators found from multiple sources are merged automatically
- Filtering — filter for email-only, phone-only, verified-only, follower ranges
- Structured error handling — partial results with error details, not broken runs
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
profiles | string[] | [] | TikTok profile URLs or @usernames |
keywords | string[] | [] | Keywords to discover creators (e.g. "ugc creator skincare") |
hashtags | string[] | [] | Hashtags to discover creators from |
maxCreators | integer | 500 | Maximum creator records to return |
extractFromBio | boolean | true | Parse bios for contact data |
followExternalLinks | boolean | true | Visit bio links for more contacts |
extractEmails | boolean | true | Extract email addresses |
extractPhones | boolean | true | Extract phone numbers |
extractInstagram | boolean | true | Extract Instagram handles |
extractYoutube | boolean | true | Extract YouTube handles |
emailOnly | boolean | false | Only return creators with emails |
phoneOnly | boolean | false | Only return creators with phones |
mustHaveExternalLink | boolean | false | Only return creators with websites |
mustHaveContactClue | boolean | false | Only return creators with any contact data |
minFollowers | integer | 0 | Minimum follower count filter |
maxFollowers | integer | 0 | Maximum follower count filter (0 = no limit) |
verifiedOnly | boolean | false | Only return verified creators |
includeConfidenceScores | boolean | true | Include confidence and quality fields |
includeContactSourceDetails | boolean | true | Include source attribution fields |
deduplicateCreators | boolean | true | Deduplicate across input sources |
countryHint | string | "" | Country code hint for phone parsing |
debugMode | boolean | false | Verbose logging |
proxyConfiguration | object | — | Apify proxy (residential recommended) |
At least one of profiles, keywords, or hashtags is required.
Sample input 1: Keyword discovery with email filter
Find contactable creators related to specific keywords, only return those with email addresses:
{"keywords": ["swift", "taylor"],"maxCreators": 50,"emailOnly": true,"followExternalLinks": true,"extractEmails": true,"extractPhones": true,"extractInstagram": true,"extractYoutube": true,"includeConfidenceScores": true,"includeContactSourceDetails": true,"deduplicateCreators": true,"proxyConfiguration": { "useApifyProxy": true }}
Sample input 2: Direct profile enrichment with hashtag discovery
Enrich a known list of profiles and discover more creators from hashtags:
{"profiles": ["@taylorfrankiepaul","@taylor_thatdancer","https://www.tiktok.com/@paigetaylor.s"],"hashtags": ["beautytok", "gymtok"],"maxCreators": 200,"followExternalLinks": true,"mustHaveContactClue": true,"minFollowers": 1000,"extractEmails": true,"extractPhones": true,"extractInstagram": true,"extractYoutube": true,"includeConfidenceScores": true,"includeContactSourceDetails": true,"proxyConfiguration": { "useApifyProxy": true }}
Output
Each output row represents one creator with normalized contact data and source metadata. Results are available in four dataset views:
Overview tab
Key identity fields, primary contacts, lead score, and discovery source.
{"username": "taylorfrankiepaul","displayName": "Taylor Paul","profileUrl": "https://www.tiktok.com/@taylorfrankiepaul","isVerified": true,"followersCount": 6086356,"primaryEmail": "taylorfrankiepaul@select.co","primaryPhone": null,"externalUrl": "https://www.ulta.com/p/purity-one-step-meltaway-cleansing-balm-pimprod2056354?sku=2649051","instagramHandle": null,"youtubeHandle": null,"contactReadiness": "high","leadQualityScore": 60,"discoveredVia": ["keyword"],"scrapedAt": "2026-03-21T05:01:23.943Z"}
Contact Details tab
Full contact data including all emails, phones, handles, and links.
{"username": "paigetaylor.s","displayName": "Paige Taylor","bio": "✝️\npaige@insightmedia.com","primaryEmail": "paige@insightmedia.com","allEmails": ["paige@insightmedia.com"],"primaryPhone": "68608721562","allPhones": ["68608721562"],"externalUrl": "https://linktr.ee/paigetaylor.s","externalDomain": "linktr.ee","instagramHandle": null,"youtubeHandle": null,"tiktokBioLink": "https://linktr.ee/paigetaylor.s","contactPageUrl": "https://linktr.ee/s/about/trust-center/report/?field86145911=https%3A%2F%2Flinktr.ee%2Fpaigetaylor.s","otherPublicLinks": ["https://linktr.ee/s/about/trust-center/report/?field86145911=https%3A%2F%2Flinktr.ee%2Fpaigetaylor.s","https://linktr.ee/connectartech"],"followersCount": 6778715,"isVerified": false}
Lead Quality tab
Confidence scores, readiness levels, quality scores, and business signals.
{"username": "taylor_thatdancer","displayName": "taylor pierce 🖤🤖","followersCount": 5295218,"primaryEmail": "nickyahid1@gmail.com","emailConfidence": 0.8,"primaryPhone": null,"phoneConfidence": null,"contactReadiness": "high","contactReadinessReason": "Public email and website found","leadQualityScore": 60,"leadQualityReason": "+25 email, +10 website, +10 high followers, +5 verified, +10 business profile","isBusinessLikeProfile": true,"isLikelyCreatorLead": true,"isVerified": true}
Source Attribution tab
Where each contact was found, website visit status, and discovery lineage.
{"username": "lojaswift","primaryEmail": null,"emailSource": null,"primaryPhone": "68608721562","phoneSource": "website_homepage","instagramHandle": null,"instagramSource": null,"youtubeHandle": "andywso","youtubeSource": "website_homepage","contactSourceSummary": "Phone found on website. YouTube: andywso","bioContainsEmail": false,"bioContainsPhone": false,"websiteContainsEmail": false,"websiteContainsPhone": true,"websiteVisited": true,"websiteVisitStatus": "success","discoveredVia": ["keyword"],"sourceProfiles": [],"sourceKeywords": ["swift"],"sourceHashtags": []}
Full output (all fields)
Each record contains 47+ fields across identity, stats, contact, source attribution, confidence, lineage, and metadata:
{"username": "taylor_pfeffer","profileUrl": "https://www.tiktok.com/@taylor_pfeffer","userId": "6532052352982056962","displayName": "taylor","bio": "be kind \n✨taylorxhairstyles✨\n💌pfeffertaylor@gmail.com💌","profilePictureUrl": "https://p16-common-sign.tiktokcdn-us.com/...","isVerified": false,"accountPrivate": false,"followersCount": 2562922,"followingCount": 139,"likesCount": 80529449,"videosCount": 1396,"primaryEmail": "pfeffertaylor@gmail.com","allEmails": ["pfeffertaylor@gmail.com"],"primaryPhone": "68608721562","allPhones": ["68608721562"],"externalUrl": "https://linktr.ee/taylor_pfeffer","externalDomain": "linktr.ee","instagramHandle": null,"youtubeHandle": null,"tiktokBioLink": "https://linktr.ee/taylor_pfeffer","contactPageUrl": "https://linktr.ee/s/about/trust-center/report/?field86145911=https%3A%2F%2Flinktr.ee%2Ftaylor_pfeffer","contactFormUrl": null,"otherPublicLinks": ["https://linktr.ee/s/about/trust-center/report/?field86145911=https%3A%2F%2Flinktr.ee%2Ftaylor_pfeffer"],"emailSource": "bio","phoneSource": "website_homepage","instagramSource": null,"youtubeSource": null,"contactSourceSummary": "Email found in bio. Phone found on website","bioContainsEmail": true,"bioContainsPhone": false,"websiteContainsEmail": false,"websiteContainsPhone": true,"websiteVisited": true,"websiteVisitStatus": "success","emailConfidence": 0.75,"phoneConfidence": 0.7,"contactReadiness": "high","contactReadinessReason": "Public email and website found","leadQualityScore": 60,"leadQualityReason": "+25 email, +15 phone, +10 website, +10 high followers","isBusinessLikeProfile": false,"isLikelyCreatorLead": true,"discoveredVia": ["keyword"],"sourceProfiles": [],"sourceKeywords": ["taylor"],"sourceHashtags": [],"discoveryCount": 1,"scrapedAt": "2026-03-21T05:01:40.504Z","isPartial": false,"errorType": null,"errorMessage": null}
Output fields
Creator identity fields
| Field | Description |
|---|---|
username | TikTok username |
profileUrl | Full profile URL |
userId | TikTok internal user ID (if available) |
displayName | Display name / nickname |
bio | Full bio text |
profilePictureUrl | Avatar URL |
isVerified | Verified badge status |
accountPrivate | Whether the account is private |
Public stats fields
| Field | Description |
|---|---|
followersCount | Follower count |
followingCount | Following count |
likesCount | Total likes/hearts received |
videosCount | Total videos posted |
Contact fields
| Field | Description |
|---|---|
primaryEmail | Best email found (first from bio, then website) |
allEmails | All unique emails found across sources |
primaryPhone | Best phone number found |
allPhones | All unique phone numbers found |
externalUrl | Bio link URL |
externalDomain | Domain of bio link |
instagramHandle | Instagram username |
youtubeHandle | YouTube handle |
tiktokBioLink | Raw bio link from TikTok profile |
contactPageUrl | Contact/about page URL from website |
contactFormUrl | Contact form URL if detected |
otherPublicLinks | Other URLs found in bio or website |
Source attribution fields
| Field | Description |
|---|---|
emailSource | Where the email was found: bio, website_homepage, bio_and_website |
phoneSource | Where the phone was found |
instagramSource | Where Instagram handle was found |
youtubeSource | Where YouTube handle was found |
contactSourceSummary | Human-readable summary of all contact sources |
bioContainsEmail | Whether bio text contained an email |
bioContainsPhone | Whether bio text contained a phone number |
websiteContainsEmail | Whether linked website contained an email |
websiteContainsPhone | Whether linked website contained a phone |
websiteVisited | Whether the bio link was visited |
websiteVisitStatus | success or error |
Confidence and quality fields
| Field | Description |
|---|---|
emailConfidence | Email confidence score (0.0–1.0) |
phoneConfidence | Phone confidence score (0.0–1.0) |
contactReadiness | high, medium, low, or none |
contactReadinessReason | Why this readiness level was assigned |
leadQualityScore | Lead quality score (0–100) |
leadQualityReason | Scoring breakdown |
isBusinessLikeProfile | Whether bio contains business/outreach keywords |
isLikelyCreatorLead | Whether creator has contacts + meaningful following |
Discovery lineage fields
| Field | Description |
|---|---|
discoveredVia | How this creator was found: profile_input, keyword, hashtag |
sourceProfiles | Which profile inputs led to this creator |
sourceKeywords | Which keyword searches led to this creator |
sourceHashtags | Which hashtag searches led to this creator |
discoveryCount | Number of input sources that found this creator |
Run metadata fields
| Field | Description |
|---|---|
scrapedAt | ISO 8601 timestamp |
isPartial | Whether extraction was incomplete |
errorType | Error type if failed |
errorMessage | Error message if failed |
Contact extraction logic
Bio extraction
The actor parses public TikTok bios for:
- Email addresses (regex-based)
- Phone numbers (various formats)
- Instagram handles (
ig: @handle,instagram.com/handle) - YouTube handles (
yt: @handle,youtube.com/@handle) - Website URLs
- Business/outreach hints (collabs, partnerships, inquiries, etc.)
Link-in-bio extraction
When followExternalLinks is enabled, the actor visits the public bio link and extracts:
- Email addresses from page text and HTML
- Phone numbers
- Contact/about page links (and visits them too)
- Instagram and YouTube links
- Contact form detection
Confidence scoring
Confidence increases when:
- A contact value appears in multiple sources (bio + website)
- An email uses a brand/custom domain
- The bio contains business context keywords
Confidence decreases when:
- The email uses a disposable domain
- The value is ambiguous or partial
- Only a single low-quality source is available
Confidence scores are heuristics, not guarantees. They indicate relative trustworthiness.
Lead quality scoring
Lead quality is scored 0–100 based on:
- Having an email (+25), phone (+15), website (+10)
- Multi-source confirmation (email in bio AND website)
- Social presence (Instagram, YouTube)
- Follower count and verification
- Business-oriented bio
Use cases
- Influencer outreach — find creators with public emails for sponsorship pitches
- Lead generation — build niche-specific lists of contactable creators
- Creator partnerships — identify business-ready creators with complete contact info
- CRM enrichment — enrich existing creator lists with contact data and quality scores
- Campaign sourcing — find outreach-ready creators in target niches
- Affiliate recruiting — discover creators open to business inquiries
Tips and best practices
- Start with direct profiles for highest accuracy — the actor visits each profile page
- Use
emailOnly: trueto focus on creators with confirmed email addresses - Enable
followExternalLinksfor more complete contact data (visits bio link websites) - Use
includeConfidenceScoresto prioritize high-confidence leads - Check
contactReadiness— "high" means strong public contact data - Use
leadQualityScoreto sort and prioritize leads for outreach - Start small — test with a few profiles before running large discovery batches
- Schedule for monitoring — run periodically to discover new contactable creators
Proxy configuration
Residential proxies are recommended for reliable TikTok access.
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Pricing
This actor uses pay-per-event pricing. You are charged per creator contact record returned — not for compute time or failed requests.
- Event:
contact-result— charged once per creator record pushed to the dataset - Price: Set in the Apify Console (see actor pricing page)
- Spending limit: If your spending limit is reached, the actor stops automatically
Memory is capped at 4 GB. Higher memory does not improve results — TikTok rate-limits concurrent requests regardless of available resources.
Important notes
- All data comes from public sources only. This actor does not access private or login-only data.
- Emails and phones are extracted on a best-effort basis. Not all creators have public contact information.
- Website-derived contacts may vary by page structure. Some websites block scraping or use dynamic rendering.
- Confidence scores are heuristics, not guarantees. They indicate relative trustworthiness, not verified accuracy.
- Some creators will have no public contact information. Use
mustHaveContactClue: trueto filter these out. - This actor does not send messages, validate inboxes, or verify contacts. It extracts and scores publicly available data.
Integrations
- Google Sheets — export contact records to spreadsheets for team use
- CRM systems — flat output is ready for direct CRM import
- Airtable — structured records map cleanly to Airtable bases
- Webhooks — trigger outreach workflows when a run completes
- API — access results programmatically via the Apify API
Limitations
- Contact extraction depends on what creators make public. Many creators have no public email or phone.
- Website visits may fail for sites with aggressive bot protection.
- Phone number parsing is best-effort and may include false positives from numeric strings in bios.
- Keyword and hashtag discovery depend on TikTok search results, which vary by region and time.
- The actor does not bypass any TikTok restrictions or access private content.
FAQ
How many creators can I extract contacts for?
Up to 5,000 per run via maxCreators. Actual results depend on how many creators are discoverable from your inputs.
Why are some fields null?
Fields like primaryEmail, primaryPhone, and instagramHandle are only populated when public data is found. Not all creators share contact information publicly.
What is the difference between primaryEmail and allEmails?
primaryEmail is the first/best email found. allEmails contains all unique emails found across bio and website sources.
What does contactReadiness: "high" mean?
It means the creator has strong public contact data — typically an email plus a website or multiple confirmed sources.
Does this actor validate email addresses? No. It extracts publicly visible email addresses and scores their confidence based on source quality. It does not verify that an inbox exists.
What happens if a profile is private or unavailable?
A partial result is emitted with isPartial: true and an error message, so you can identify failures without the whole run breaking.

