HonestHook

RankingsSign in

Tutorials

TikTok profile in curl

One authenticated call to /api/v1/tiktok/profile?handle=nasa, the response it returned, and the line that reads one field out of it.

What you need

curl ships with macOS and most Linux distributions, and with Windows 10 and later. There is nothing to install.

The call

curl -H "Authorization: Bearer $HH_KEY" \
  "https://honesthook.com/api/v1/tiktok/profile?handle=nasa"

What came back

{
  "success": true,
  "platform": "tiktok",
  "endpoint": "tiktok/profile",
  "data": {
    "author": {
      "id": "7664638705177150477",
      "handle": "nasa",
      "name": "NASA",
      "followers": 1711912,
      "following": 23,
      "posts_count": 44,
      "verified": true,
      "is_private": false
    }
  },
  "error": null,
  "cached": true
}

Recorded response, captured 15 Sep 2026. A live call returns the value at the moment you ask, not this one.

Every field in that capture

In curlType in this capture
.successboolean
.platformstring
.endpointstring
.data.author.idstring
.data.author.handlestring
.data.author.namestring
.data.author.followersnumber
.data.author.followingnumber
.data.author.posts_countnumber
.data.author.verifiedboolean
.data.author.is_privateboolean
.errornull
.cachedboolean

A field we cannot read comes back null, never 0. A zero would be a claim about the account; null is a fact about our collection.

Reading one field

curl -H "Authorization: Bearer $HH_KEY" \
  "https://honesthook.com/api/v1/tiktok/profile?handle=nasa" \
  | jq -r '.data.author.followers'

jq is a separate tool — it is not part of curl. Without it the command above prints the whole envelope, which is the block below.

The hard part of reading a TikTok profile is not parsing it. It is getting the real page at all: a request from a datacenter address gets served a challenge page that answers 200 OK and contains no data. Nothing errors. You get a page and no numbers.

That is the failure this endpoint exists to absorb.

What you are calling

You are calling our endpoint, not TikTok's. The request goes to honesthook.com with your key in an Authorization header. The residential exit and the browser-like handshake that turn that challenge page into the real one are on our side of the call.

The handle in the example is the one that produced the response below. Change it and you get another account; the envelope does not change shape.

Before you copy the block

Keep the key in an environment variable — all three examples read HH_KEY.

Then read the response. The profile endpoint answers about the account, not about its videos, and a count we cannot read is null rather than 0: a zero would be a claim about the account, and a null is a fact about our collection.

The endpoint itself

Parameters, the handle format and what a call costs: tiktok-api/profile.

The same call in Python · JavaScript.

Free key, 1,000 credits a month

Every example above runs against the real endpoint as soon as you have a key. No card, and the key arrives in seconds.

Get a key →

← Tutorials · tiktok-api · Pricing