Lead generation from public profiles

Read the links and contact details creators publish about themselves.

The job

Creators put their business email and links in their bio and link-in-bio page. Read what they published, and nothing else.

Endpoints

EndpointReturnsCost
GET /v1/creators/emailsFind a creator's public emails1 credit
GET /v1/creators/social-profilesFind a creator's other social profiles1 credit
GET /v1/linktreeLinktree page1 credit
GET /v1/tiktok/profileTikTok profile1 credit
GET /v1/instagram/profileInstagram profile1 credit

Failed requests and cached repeats cost 0 credits. Send max_age_days to accept a recent cached copy. See credits and caching.

Recipe

  1. Start from a handle you already have.
  2. Read the addresses and profiles they publish.
  3. Keep the source url next to every address.
Preview
The API is in early access. Calls use api.socialscrape.io and return the shapes in the reference.
Python
import os
import requests

API = "https://api.socialscrape.io"
HEADERS = {"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]}


def get(path, **params):
    res = requests.get(API + path, headers=HEADERS, params=params, timeout=60)
    res.raise_for_status()
    return res.json()["data"]

# Find a creator's public emails
contacts = get("/v1/creators/emails", handle="khaby.lame", platform="tiktok")
# Find a creator's other social profiles
linked = get("/v1/creators/social-profiles", handle="khaby.lame", platform="tiktok")

print(contacts)
for p in linked["items"]:
    print(p["platform"], p["url"])
TypeScript
const API = "https://api.socialscrape.io";
const headers = { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! };

async function get(path: string, params: Record<string, string | number | boolean>) {
  const query = new URLSearchParams(Object.entries(params).map(([k, v]) => [k, String(v)]));
  const res = await fetch(`${API}${path}?${query}`, { headers });
  if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
  return (await res.json()).data;
}

// Find a creator's public emails
const contacts = await get("/v1/creators/emails", { handle: "khaby.lame", platform: "tiktok" });
// Find a creator's other social profiles
const linked = await get("/v1/creators/social-profiles", { handle: "khaby.lame", platform: "tiktok" });

console.log(contacts);
for (const p of linked.items) console.log(p.platform, p.url);

Good to know

Only addresses a creator published themselves are returned, each with where it was seen. Your outreach still has to follow the law where the person lives. See the acceptable use policy.

Questions

Is there a policy on this?
Yes. Read the acceptable use policy before you send anything.

Build on social data early.

Developers and agent builders get the first keys.

Get early access