TikTok Profile contact API
Find the public contact email behind a TikTok creator's profile: the address written into the bio plus any published on the site the profile links to, each labelled with where it came from. Returns the creator's profile stats and linked social accounts alongside.
Provider network
Providers ranked by traffic
Try it
Make your first request
{
"data": {
"avatarUrl": "https://example.com/image.jpg",
"bio": "A short example description of this item.",
"displayName": "Alex Rivera",
"emails": [
{
"domain": "example.com",
"domainHealth": "example.com",
"email": "alex@example.com",
"sourceType": "https://example.com/page",
"sourceUrl": "https://example.com/page"
}
],
"externalUrl": "https://example.com/page",
"followers": 12500,
"following": 12500,
"handle": "alex_rivera",
"likes": 12500,
"primaryEmail": "alex@example.com",
"private": false,
"profileUrl": "https://example.com/page",
"seller": true,
"socialLinks": [
{
"platform": "example",
"url": "https://example.com/page"
}
],
"userId": "a1b2c3d4",
"verified": true,
"videos": 248
},
"found": true
}interface TiktokProfileContactResponse {
data: {
avatarUrl?: string;
bio?: string;
displayName?: string;
emails: {
domain?: string;
domainHealth?: string;
email: string;
sourceType?: string;
sourceUrl?: string;
}[];
externalUrl?: string;
followers?: number;
following?: number;
handle: string;
likes?: number;
primaryEmail?: string;
private?: boolean;
profileUrl?: string;
seller?: boolean;
socialLinks?: {
platform: string;
url: string;
}[];
userId?: string;
verified?: boolean;
videos?: number;
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-14 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/tiktok.profile_contact \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"handle":"gordonramsayofficial"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| handle | string | "gordonramsayofficial"TikTok username without the leading @. |
| requireFields | array | Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `socialLinks` or `domain`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a profile that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge. |
| Response | ||
| data | object | The creator and the contact details published for them, or null when no public email was found. |
| data.avatarUrlcan require | string | Profile picture URL. TikTok signs this URL, so it expires; re-fetch rather than storing it. |
| data.biocan require | string | Profile biography text. |
| data.displayNamecan require | string | Account display name. |
| data.emails | object[] | Every public email the source publishes for the creator, each labelled with where it came from. Some sources report only the address they judge best, so a single entry does not mean a single address exists. Never empty: a creator with no public email returns found false instead. Populated whenever the provider has data for the entity. |
| data.emails[].domaincan require | string | The email address's own domain. Absent when the source that served the request does not report it. |
| data.emails[].domainHealthcan require | string | The source's verdict on whether the address can receive mail: healthy or unhealthy from a domain-level check, deliverable, risky or missing from a mailbox-level one. Which vocabulary you get varies with the source that served the request. |
| data.emails[].emailcan require | string | The email address as published. |
| data.emails[].sourceTypecan require | string | Where the address was read: the TikTok bio itself (tiktok_bio) or a page the profile links to (linked_page, website). An address read off a linked page may belong to a brand or a partner rather than the creator. The exact word varies with the source that served the request. |
| data.emails[].sourceUrlcan require | string | The page the address was read from. Absent for an address read from the TikTok bio itself. |
| data.externalUrlcan require | string | The single link the account publishes in its bio. Absent when the account publishes no link. |
| data.followerscan require | integer | Follower count. |
| data.followingcan require | integer | Number of accounts this account follows. |
| data.handle | string | TikTok username without the leading @. Populated whenever the provider has data for the entity. |
| data.likescan require | integer | Total likes across the account's videos. |
| data.primaryEmailcan require | string | The address the upstream considers the creator's best contact, chosen from emails. Absent when no email was found. |
| data.privatecan require | boolean | Whether the account is private. |
| data.profileUrlcan require | string | Canonical URL of the TikTok profile. |
| data.sellercan require | boolean | Whether the account sells through TikTok Shop. |
| data.socialLinkscan require | object[] | Other social accounts found for the creator on the page their profile links to. Empty when none were found. |
| data.socialLinks[].platformcan require | string | The platform the link points at, for example instagram, youtube, facebook. |
| data.socialLinks[].urlcan require | string | The account URL on that platform. |
| data.userIdcan require | string | TikTok's numeric internal user id for the account. Unlike the handle it never changes, so store it as the account's key. |
| data.verifiedcan require | boolean | Whether the account carries TikTok's verified badge. |
| data.videoscan require | integer | Number of videos the account has published. |
| found | boolean | True when at least one public email was found for the creator. A real account that publishes no email anywhere returns false, and the call is free. |
| Price | ||
| Price per request | USD | $0.00116 |
| Price /1k req | USD | $1.16 |
FAQ
About the TikTok Profile contact API
The AnyAPI TikTok Profile contact API returns TikTok profile contact data as normalized JSON from one POST call to /v1/run/tiktok.profile_contact. Find the public contact email behind a TikTok creator's profile: the address written into the bio plus any published on the site the profile links to, each labelled with where it came from. Returns the creator's profile stats and linked social accounts alongside. AnyAPI routes each request across 2 sources and falls back automatically when one fails. It costs from $1.16 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of TikTok profile contact calls through AnyAPI succeeded, with a median response time of 6.7 seconds across 11 measured calls.