TikTok API

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.

POST/v1/run/tiktok.profile_contact
Uptime
100.00%
30d · 11 calls
Requests
11
30d
Response
6.7s
median · 30d

Try it

Make your first request

requireFieldsarray
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.
Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "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
}
Response interface
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 30d
POST /v1/run/tiktok.profile_contact
curl -X POST https://api.getanyapi.com/v1/run/tiktok.profile_contact \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"handle":"gordonramsayofficial"}'
FieldTypeExample value
Request body
handlestring"gordonramsayofficial"TikTok username without the leading @.
requireFieldsarrayOptional; 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
dataobjectThe creator and the contact details published for them, or null when no public email was found.
data.avatarUrlcan requirestringProfile picture URL. TikTok signs this URL, so it expires; re-fetch rather than storing it.
data.biocan requirestringProfile biography text.
data.displayNamecan requirestringAccount display name.
data.emailsobject[]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 requirestringThe email address's own domain. Absent when the source that served the request does not report it.
data.emails[].domainHealthcan requirestringThe 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 requirestringThe email address as published.
data.emails[].sourceTypecan requirestringWhere 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 requirestringThe page the address was read from. Absent for an address read from the TikTok bio itself.
data.externalUrlcan requirestringThe single link the account publishes in its bio. Absent when the account publishes no link.
data.followerscan requireintegerFollower count.
data.followingcan requireintegerNumber of accounts this account follows.
data.handlestringTikTok username without the leading @. Populated whenever the provider has data for the entity.
data.likescan requireintegerTotal likes across the account's videos.
data.primaryEmailcan requirestringThe address the upstream considers the creator's best contact, chosen from emails. Absent when no email was found.
data.privatecan requirebooleanWhether the account is private.
data.profileUrlcan requirestringCanonical URL of the TikTok profile.
data.sellercan requirebooleanWhether the account sells through TikTok Shop.
data.socialLinkscan requireobject[]Other social accounts found for the creator on the page their profile links to. Empty when none were found.
data.socialLinks[].platformcan requirestringThe platform the link points at, for example instagram, youtube, facebook.
data.socialLinks[].urlcan requirestringThe account URL on that platform.
data.userIdcan requirestringTikTok's numeric internal user id for the account. Unlike the handle it never changes, so store it as the account's key.
data.verifiedcan requirebooleanWhether the account carries TikTok's verified badge.
data.videoscan requireintegerNumber of videos the account has published.
foundbooleanTrue 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 requestUSD$0.00116
Price /1k reqUSD$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.

It costs from $1.16 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

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. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

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. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.