TikTok Profile Scraper API
Our TikTok profile scraper takes any @username or profile URL and returns structured JSON: follower count, following count, total hearts, video count, the bio, avatar, and verified flag, plus the exact string counts in one request.
Use it for
Influencer discovery
Competitor tracking
Creator databases
Audience history graphs
Quickstart
curl "https://api.tiktokscraperapi.com/api/v1/tiktok/profile?username=nba&api_key=$API_KEY" import requests
BASE = "https://api.tiktokscraperapi.com/api/v1"
API_KEY = "YOUR_API_KEY"
# Pass a bare @username, or a full profile URL via the url param.
data = requests.get(
f"{BASE}/tiktok/profile",
params={"username": "nba", "api_key": API_KEY},
timeout=30,
).json()
print(data["nickname"], "-", data["stats"]["followerCount"], "followers")
print("hearts:", data["stats"]["heartCount"], "| videos:", data["stats"]["videoCount"])
# statsV2 carries the exact string counts when TikTok ships them.
print("exact followers:", data["statsV2"]["followerCount"]) Response
{
"uniqueId": "nba",
"nickname": "NBA",
"signature": "NBA Summer action tips off Friday, July 3!\n\nCalifornia Classic: 7/3 - 7/6\nSalt Lake City: 7/4 - 7/7\nNBA Summer League in Las Vegas: 7/9 - 7/19",
"verified": true,
"secUid": "MS4wLjABAAAAsny0dcfyctb1_fdyyiu7JOLnblf8y3jd64yTHQLQoc9O5m57HhjT94OdgfSmNgaG",
"id": "134941634731003904",
"create_time": 1472544108,
"created_at": "2016-08-30T08:01:48.000Z",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/8beb8b849e725f2776a11575b1e7aebf~tplv-tiktokx-cropcenter:1080:1080.jpeg?x-expires=1783051200&x-signature=...",
"url": "https://www.tiktok.com/@nba",
"socialPlatform": "tiktok",
"stats": {
"followerCount": 27100000,
"followingCount": 266,
"heartCount": 1100000000,
"videoCount": 22600
},
"statsV2": {
"followerCount": "27067298",
"followingCount": "266",
"heartCount": "1119255388",
"videoCount": "22608"
}
} | Field | Type | Description |
|---|---|---|
uniqueId | string | The creator @handle, e.g. nba. |
nickname | string | The display name shown on the profile. |
signature | string | The profile bio text, newlines preserved. |
verified | boolean | True when the account carries TikTok's verified badge. |
secUid | string | The stable secondary user id TikTok keys its APIs by (never changes for the account). |
id | string | The numeric user id. |
create_time | integer | Account creation time as a Unix timestamp. |
created_at | string | Account creation time as an ISO 8601 string. |
How it works
- Send a GET request with your target and API key.
- We route through residential proxies, handle anti-bot, and parse the response.
- You get validated JSON back, ready to use.
How it compares
| Our API | DIY (requests / headless) | TikTok official API | |
|---|---|---|---|
| Input by handle or URL | Yes, username or url | Manual page fetch and parse | Research API, keyed by handle, US academics only |
| Follower and heart counts | Numeric plus exact strings | Possible but parser breaks often | Available to approved researchers |
| Setup | API key only | Proxies, headless browser, JSON parser | Application and approval process |
| Anti-bot and proxies | Built in, US residential | You build and maintain it | Not applicable |
| Access | Open, any public profile | Bound by your proxy pool | Gated to vetted use cases |
| Output | Flat JSON, stable schema | Raw HTML blob you parse | JSON, restricted fields |
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
What is a TikTok profile scraper?
A TikTok profile scraper is a tool that reads a creator's public profile and returns it in a structured format. Our TikTok profile scraper API takes an @username or profile URL and returns the nickname, handle, bio, avatar, verified flag, follower count, following count, total hearts, and video count as JSON from a single request.
How do I scrape a TikTok profile without writing a parser?
Send one GET request to our tiktok/profile endpoint with the username (or a profile url) and your API key. We route through US residential IPs, render nothing you have to script, handle anti-bot checks, retry on failure, and parse the embedded profile blob, so you get clean JSON back without maintaining selectors against TikTok's changing markup.
Can I get the exact follower count?
Yes. The stats block returns a rounded numeric followerCount (for example 27100000), and statsV2 carries the exact string count (for example "27067298") when TikTok includes it in the page. The same applies to heartCount and videoCount, so you can store either the rounded or the precise figure.
Do I need a TikTok API key or approval?
No. You only need a tiktokscraperapi key, passed as the api_key query parameter. TikTok's own Research API is gated to approved academic and non-profit use, but our endpoint reads the public profile a logged-out visitor sees, so there is no application to file. The free tier includes 1,000 requests per month.
Why does scraping TikTok from a server return empty data?
TikTok verify-walls datacenter and cloud IP ranges, so a request from AWS, GCP, or Azure often returns a CSR shell or a CAPTCHA page with no profile data, even though the identical request from a home connection works. Our API routes through US residential proxies so the user-detail blob actually hydrates, which is why the profile fields come back populated.
How fast is the TikTok profile scraper API?
Median end-to-end response is about 2.6 seconds, which includes residential proxy routing, anti-bot handling, retries, and parsing. One call returns the full profile, so you do not chain extra requests just to assemble the stats.