TokScraperTokScraper logo ← Back to TokScraper

TokScraper API

Scrape TikTok followers, following, profiles, keyword results and sound users — and pull the emails found — programmatically. All endpoints are simple GET requests authenticated with your API key.

Base URL

https://tokscraper.io/api

Authentication

Every request must include your personal API key as the api_key query parameter. There are no auth headers. Create and manage your key in Account → API.

https://tokscraper.io/api/credits/?api_key=YOUR_API_KEY
Keep your API key secret. Most endpoints also require an active subscription, and you are charged 1 credit per email found.

How it works

Scraping runs asynchronously. A scrape endpoint starts a job and immediately returns a result id. Poll Result Status with that id until the status is done to retrieve the scraped users and their emails.

  • Start a scrape → you get back a result id.
  • Poll result statusin progress until finished.
  • Done → the response includes the array of users found (only users with a discovered email are returned).

/scrape-profile/ is the one exception — it runs synchronously and returns the profile data directly. Optional email_limit stops a scrape after a set number of emails are found.

Scrape Followers

GET /api/scrape-followers/

Scrapes the followers of a TikTok account and extracts their emails.

Parameters

NameTypeDescription
api_key requiredstringYour API key.
tiktok_username requiredstringThe TikTok username whose followers to scrape (with or without @).
email_limit optionalintegerStop after finding this many emails.

Example request

https://tokscraper.io/api/scrape-followers/?api_key=API_KEY&tiktok_username=parishilton

Response

{
  "message": "Your task has started. To check it's status, make a request to the endpoint api/result-status with the result id as a parameter (check our docs)",
  "result id": 12345
}

Scrape Following

GET /api/scrape-following/

Scrapes the accounts a TikTok user is following and extracts their emails.

Parameters

NameTypeDescription
api_key requiredstringYour API key.
tiktok_username requiredstringThe TikTok username whose following list to scrape.
email_limit optionalintegerStop after finding this many emails.

Example request

https://tokscraper.io/api/scrape-following/?api_key=API_KEY&tiktok_username=parishilton

Response

{
  "message": "Your task has started. To check it's status...",
  "result id": 12345
}

Scrape Profile

GET /api/scrape-profile/

Looks up a single TikTok profile and returns its data synchronously (no polling needed).

Parameters

NameTypeDescription
api_key requiredstringYour API key.
tiktok_username requiredstringThe TikTok username to look up.

Example request

https://tokscraper.io/api/scrape-profile/?api_key=API_KEY&tiktok_username=parishilton

Response

{
  "status": "done",
  "result_id": 12345,
  "data": [
    {
      "username": "parishilton",
      "name": "Paris Hilton",
      "first_name": "Paris",
      "email": "team@example.com",
      "signature": "Founder ...",
      "region": "US",
      "follower_count": 12148179,
      "following_count": 9955,
      "likes_count": 147309076,
      "video_count": 2331,
      "is_verified": true,
      "tiktok_url": "https://www.tiktok.com/@parishilton",
      "pfp": "https://..."
    }
  ]
}

Scrape Keywords

GET /api/scrape-keywords/

Scrapes users who posted videos matching your keywords. Pass multiple keywords as a comma-separated list — each is searched separately to maximize unique users found.

Parameters

NameTypeDescription
api_key requiredstringYour API key.
keywords requiredstringOne or more keywords, comma-separated. URL-encode the value (space → %20, comma → %2C).
email_limit optionalintegerStop after finding this many emails.

Example request (multiple keywords)

https://tokscraper.io/api/scrape-keywords/?api_key=API_KEY&keywords=cold%20email%2Cmarketing%2Cbusiness

That request searches three keywords: cold email, marketing, business.

Response

{
  "message": "Your task has started. To check it's status...",
  "result id": 12345
}

Scrape Sound

GET /api/scrape-sound/

Scrapes every user who posted a video using a specific TikTok sound.

Parameters

NameTypeDescription
api_key requiredstringYour API key.
sound_url requiredstringFull TikTok sound page URL (https://www.tiktok.com/music/...), URL-encoded.
email_limit optionalintegerStop after finding this many emails.

Example request

https://tokscraper.io/api/scrape-sound/?api_key=API_KEY&sound_url=https%3A%2F%2Fwww.tiktok.com%2Fmusic%2Foriginal-sound-7016548700980806

Decoded, sound_url is https://www.tiktok.com/music/original-sound-7016548700980806.

Response

{
  "message": "Your task has started. To check it's status...",
  "result id": 12345
}

Result Status

GET /api/result-status/

Checks the status of a scrape and returns the users found once it's done. Poll this until status is done.

Parameters

NameTypeDescription
api_key requiredstringYour API key.
result_id requiredintegerThe result id returned by a scrape endpoint.

Example request

https://tokscraper.io/api/result-status/?api_key=API_KEY&result_id=12345

Responses

While running (HTTP 202):

{ "status": "in progress" }

When finished — only users with a discovered email are returned:

{
  "status": "done",
  "data": [
    {
      "username": "someuser",
      "name": "Some User",
      "first_name": "Some",
      "email": "hello@example.com",
      "signature": "bio text...",
      "region": "US",
      "follower_count": 5300,
      "following_count": 412,
      "likes_count": 88000,
      "video_count": 120,
      "is_verified": false,
      "tiktok_url": "https://www.tiktok.com/@someuser",
      "pfp": "https://..."
    }
  ]
}

All Results

GET /api/all-results/

Lists all of your scrape results and their statuses.

Parameters

NameTypeDescription
api_key requiredstringYour API key.

Response

[
  { "id": 12345, "result_name": "parishilton", "scrape_method": "Followers", "status": "done" },
  { "id": 12346, "result_name": "Keywords: marketing", "scrape_method": "Keyword", "status": "in progress" }
]

Credits

GET /api/credits/

Returns your remaining credit balance.

Parameters

NameTypeDescription
api_key requiredstringYour API key.

Response

{ "credits": 89641 }

Authenticate

GET /api/authenticate/

Verifies your API key and returns the associated account email.

Parameters

NameTypeDescription
api_key requiredstringYour API key.

Response

{ "user_email": "you@example.com" }

Errors

Errors return a JSON body with an error message and an appropriate HTTP status:

StatusMeaning
400A required parameter is missing or invalid.
401Invalid API key, or no active subscription.
402No credits remaining.
404Profile / sound / result not found.
429Too many concurrent scrapes running.