Lead enrichment with social data: an API workflow
Lead enrichment with social data adds public facts such as follower counts, posting activity, linked accounts and business emails to each lead, so sales can qualify and prioritize. Running cheap checks first and expensive lookups last, enriching 2,000 creator leads down to 200 qualified contacts costs 11,300 credits on ScrapeIO, about $21.24, or roughly 11 cents per qualified lead.
Lead enrichment adds facts to a list of names so a sales team knows who to call first. For anyone selling to creators, shops or brands, the most telling facts are public social data: how big the account is, whether it is active, which other platforms it is on, and how to reach the owner. The trick is the order: run cheap checks on everyone and expensive lookups only on leads that pass.
Who does this and why
- Sales teams selling to creators: creator tools, agencies, merch and finance products.
- B2B teams that add company social activity (hiring posts, launches, audience size) to accounts in a CRM.
- Partnerships teams that qualify shops and brands before outreach.
The data you need
| Step | Platform | Endpoint | Credits |
|---|---|---|---|
| 1. Size and bio | TikTok, Instagram, YouTube | TikTok profile, Instagram profile, YouTube channel | 1 |
| 2. Is it active? | TikTok, Instagram | TikTok profile videos, Instagram user posts | 1 |
| 3. Link-in-bio page | Linktree and others | Linktree, link.me, Komi | 1 |
| 4. Other accounts | Cross-platform | find social profiles | 10 |
| 5. Business email | Cross-platform | find creator emails | 10 |
| B2B: company page | LinkedIn company | 1 | |
| B2B: recent posts | LinkedIn, X | LinkedIn company posts, X user posts | 1 |
| B2B: a person's public profile | LinkedIn profile | 1 |
Worked example: 2,000 creator leads
You have 2,000 TikTok handles from an event list and want qualified contacts: 10,000 to 500,000 followers, posting in the last 30 days.
| Tier | Who | Calls | Credits |
|---|---|---|---|
| 1. Profile | All 2,000 | 1 each | 2,000 |
| 2. Newest videos (activity) | All 2,000 | 1 each | 2,000 |
| 3. Link-in-bio | 300 of the 500 that qualify have one | 1 each | 300 |
| 4. Other accounts | The 500 that qualify | 10 each | 5,000 |
| 5. Email | The top 200 | 10 each | 2,000 |
| Total | 11,300 | ||
11,300 credits is $21.24 on the $47 pack, or about $0.11 per qualified lead with an email. If you ran the two 10-credit lookups on all 2,000 leads instead, they alone would cost 40,000 credits. Tiering cuts the bill by more than 70 percent. Handles that no longer exist cost nothing.
A B2B version is smaller: 500 target accounts x (1 LinkedIn company call + 1 page of company posts) = 1,000 credits to start, then 500 credits a month to refresh posts. That is $1.88, then $0.94 a month.
Code: tiered enrichment
import requests, datetime
KEY = "YOUR_KEY"
H = {"x-api-key": KEY}
B = "https://scrapeio.com"
get = lambda path, **p: requests.get(B + path, params=p, headers=H, timeout=60).json()
cutoff = (datetime.datetime.utcnow() - datetime.timedelta(days=30)).isoformat()
def enrich(handle):
prof = get("/v1/tiktok/profile", handle=handle)
if not prof.get("success"):
return None
p = prof["data"]
if not 10_000 <= (p["followers"] or 0) <= 500_000:
return None
vids = get("/v3/tiktok/profile/videos", handle=handle)
items = vids["data"]["items"] if vids.get("success") else []
if not any((v["created_at"] or "") >= cutoff for v in items):
return None
lead = {"handle": handle, "followers": p["followers"], "bio": p["bio"],
"link": p.get("external_url")}
lead["profiles"] = get("/v1/find-social-profiles", platform="tiktok", handle=handle).get("data")
return lead
Run the email lookup as a last, separate step on the leads sales actually wants, after a person has looked at the list.
Fields that predict a good lead
- Activity = posts in the last 30 days. Inactive accounts rarely buy.
- Size band, from followers. Price and pitch differ a lot between 20,000 and 2 million.
- Growth = follower change between two snapshots a few weeks apart. Fast-growing accounts have new problems to solve.
- Business signals in the bio and link page: "for business", a booking link, a shop, a manager's address.
- Platform count from the linked accounts. A creator on four platforms has more need for tools that save time.
- B2B intent: company posts that mention hiring, launches, funding or a new market.
Pitfalls
- Privacy law applies to public data. Names, handles and emails are personal data in many places, including under the GDPR. Have a lawful basis, keep only what you use, and honor opt-outs. This is not legal advice; read is web scraping legal and get your own review.
- Wrong matches. Two accounts with the same handle on different platforms may be different people. Confirm with the name, avatar or a link between them.
- Normalize handles. Lowercase them and strip the @ before you dedupe against the CRM.
- Data gets stale. Follower counts and emails change. Store the date with every field and refresh before a campaign.
- Outreach etiquette. A public business email is an invitation to relevant business mail, not to a sequence of ten follow-ups. See influencer email finders for an outreach checklist.
Run it from an AI agent
With the MCP server connected to Claude Code or Cursor:
For each TikTok handle in leads.csv, get followers and whether
they posted in the last 30 days. Keep 10k to 500k followers and active.
For those, find their other social profiles and read their Linktree
if they have one. Write qualified.csv. Do not look up emails yet.
Telling the agent which expensive steps to skip keeps the cost where you planned it. The tools it uses are tiktok_profile, tiktok_profile_videos, find_social_profiles and linktree.
Doing it with ScrapeIO
Profiles, activity, link-in-bio pages, linked accounts, emails and LinkedIn company data are on one key. Profile and post calls are 1 credit, the two cross-platform lookups are 10, and failed lookups are free, so tiering does the rest.
100 free credits, no card. Credits never expire.
Get API key