# TikTok scraper API — $0.004 per profile

> TikTok scraper API: Public TikTok profile stats — followers, likes, videos, bio. $0.004 per delivered profile, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*TikTok scraper API*

# TikTok scraper API

A TikTok scraper API for public profiles: nickname, bio, verified and private flags, creator category, link in bio, follower and following counts, video count and total likes — exact numbers, from a list of handles or profile URLs.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/tiktok-scraper-api/#integration)

$0.004 per delivered profile · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/tiktok_profile/run

```
$ curl $QD/tiktok_profile/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"usernames": ["nasa", "@natgeo"], "max_results": 10}'
{ "status": "done", "count": 10,
  "results": [
    {
      "platform": "…",
      "username": "…",
      "user_id": "…",
      "full_name": "…" } ],
  "cost": 0.04 }
# 10 profiles × $0.004 · nothing delivered, nothing charged
```

**$0.004 / profile**500 profiles on the free $2 every month

**Semantic input**usernames, country, max_results — no URL lists

**Up to 50**profiles per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/tiktok-scraper-api/#what) [Output fields](/collectors/tiktok-scraper-api/#output) [Inputs](/collectors/tiktok-scraper-api/#input) [Pricing](/collectors/tiktok-scraper-api/#pricing) [Integration](/collectors/tiktok-scraper-api/#integration) [Use cases](/collectors/tiktok-scraper-api/#use-cases) [Versus the alternatives](/collectors/tiktok-scraper-api/#compare) [FAQ](/collectors/tiktok-scraper-api/#faq)

## What a TikTok scraper API does

TikTok publishes a profile's statistics as structured data inside the page, which means the counts you get are the platform's own integers rather than a rounded label scraped off the interface. For creator analytics that difference is the whole point.

The collector takes handles with or without the @, or full profile URLs, and returns one row each. Video-level metrics — views, comments, shares, saves — come from the companion TikTok video collector.

Input is meaning, not a URL *usernames* *country* *max_results*

## What one profile looks like

Every delivered profile carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `platform` | string | instagram or tiktok. |
| `username` | string | Handle. |
| `user_id` | string · nullable | Platform-side account id. |
| `full_name` | string · nullable | Display name. |
| `biography` | string · nullable | Bio text. |
| `verified` | boolean | Verified badge. |
| `is_private` | boolean | Private account. |
| `is_business` | boolean | Business/creator account. |
| `category` | string · nullable | Account category when set. |
| `external_url` | string · nullable | Link in bio. |
| `followers` | integer · nullable | Follower count. |
| `following` | integer · nullable | Following count. |
| `posts` | integer · nullable | Posts (Instagram) or videos (TikTok). |
| `likes` | integer · nullable | Total likes — TikTok only, null on Instagram. |
| `profile_pic` | string · nullable | Profile picture URL. |
| `url` | string | Profile URL. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `usernames` | array | yes | Handles (with or without @) or profile URLs. |
| `country` | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
| `max_results` | integer | no | How many profiles to deliver at most (1–50). You pay only for delivered profiles. |

Pricing

## TikTok scraper API pricing

$0.004 per delivered profile. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 500 profiles before you spend anything.

**$0.004**per delivered profile*$4 per 1,000 delivered profiles*

**500 profiles**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/tiktok_profile/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/tiktok_profile/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"usernames":["nasa","@natgeo"],"max_results":10}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/tiktok_profile/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "usernames": [
            "nasa",
            "@natgeo"
        ],
        "max_results": 10
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/tiktok_profile/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"usernames":["nasa","@natgeo"],"max_results":10}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the tiktok_profile collector with usernames=["nasa","@natgeo"] and max_results=10
```

## What people build with the TikTok scraper API

Three shapes of work this endpoint was designed around.

### Creator shortlisting

Rank a candidate list by followers and total likes in one run.

### Audience growth tracking

Re-run weekly and store the delta per creator.

### Category mapping

Group creators by the category TikTok assigns them.

## TikTok scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Counts | Rounded labels off the page | Exact integers from the page data |
| Login | Cookies and a burner account | None — public profiles only |

## Three official APIs, none of them this

TikTok's Display API returns data for users who have authorised your application, which works for creators who opt in and not at all for a list of handles you want to evaluate. The Research API does allow real public-data querying and is restricted to approved non-profit academic institutions in eligible regions. The Business and Marketing APIs cover your own ad accounts and content.

So the honest answer to "does TikTok have an API" is yes, and probably not one you can use. If you are an academic, apply for the Research API — it is a better dataset than anything scraped. Otherwise the public profile layer is what is available, and the lifetime `likes` total TikTok publishes makes it more analytically useful than most platforms' equivalent.

## Limits, exactness and the legal bit

Up to 50 profiles per run, public pages only. Counts come from the page's embedded data payload rather than from abbreviated display strings, so a creator shown as 1.2M returns the precise figure — which is what makes ratios computable. Throughput is your plan's rate limit rather than anything about the collector: 60 requests/minute on pay-as-you-go, up to 1,200 on the top tier.

Collecting publicly visible data is generally lawful in most jurisdictions, and courts have repeatedly declined to treat reading a public page as unauthorised access. Profile data is personal data under GDPR and similar regimes regardless of visibility, so a lawful basis is required and individuals retain rights. TikTok's terms restrict automated collection. None of this is legal advice — get some for your actual use case.

## FAQ

Questions we get about the TikTok scraper API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Are TikTok follower counts exact here?

Yes. TikTok publishes them as numbers in the page data, so no rounding is introduced. (Instagram does not, and our Instagram collector says so on its own page.)

### Can I get a creator's videos?

Per-video metrics come from [tiktok_video](https://quanticdata.io/collectors/tiktok-video-scraper-api/), which takes video URLs or ids and returns views, likes, comments, shares and saves.

### Is there a free TikTok scraper API?

Every account gets $2 of credit every month with no card, which is about 500 delivered profiles on this endpoint at $0.004 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.004. A run capped at 50 profiles — the maximum for this collector — costs $0.2 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

### Why is the total likes field useful?

Because dividing it by the video count gives an engagement proxy without any post-level access at all. TikTok is one of the few platforms that publishes a lifetime likes figure on the profile itself, which makes cheap creator screening possible.

### Are the numbers exact or rounded?

Exact. They are read from the page's data payload rather than from the interface's abbreviated strings, so ratios and deltas are computed on real integers rather than on a rounded 1.2M.

## Run the TikTok scraper API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 32 collectors](https://quanticdata.io/collectors/) [TikTok video scraper API](https://quanticdata.io/collectors/tiktok-video-scraper-api/) [Instagram scraper API](https://quanticdata.io/collectors/instagram-scraper-api/) [YouTube channel scraper API](https://quanticdata.io/collectors/youtube-channel-scraper-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/tiktok-scraper-api/ · Site index for AI: https://quanticdata.io/llms.txt
