Quickstart

Get an API key and make your first successful call. Around five minutes, no card required.

1. Get a key

Sign up, confirm your email to unlock your free credits, then open the API Explorer. Choose an API and create a key there without leaving your request. The secret is shown once at creation and never again. We store only a hash of it, so we cannot recover it for you. Copy it somewhere safe; if you lose it, revoke it and issue another.

Keys look like sv_live_ followed by a random string. The free tier includes 100 credits and needs no card.

2. Make a call

In your terminal, set the key you just saved (replace the placeholder):

export SOURCEVINE_API_KEY="YOUR_SAVED_KEY"

For a first result without writing code, use Use example in the Explorer, then press Send request. The button shows the credit cost; filling an example does not run it.

Send a public TikTok profile URL to /v1/tiktok/profile.

curl https://api.sourcevine.io/v1/tiktok/profile \
  -H "Authorization: Bearer $SOURCEVINE_API_KEY" \
  --data-urlencode "url=https://www.tiktok.com/@atlas.makes" -G
import os, httpx

r = httpx.get(
    "https://api.sourcevine.io/v1/tiktok/profile",
    headers={"Authorization": f"Bearer {os.environ['SOURCEVINE_API_KEY']}"},
    params={"url": "https://www.tiktok.com/@atlas.makes"},
)
r.raise_for_status()
print(r.json()["data"]["followerCount"])
const r = await fetch(
  "https://api.sourcevine.io/v1/tiktok/profile?url=" +
    encodeURIComponent("https://www.tiktok.com/@atlas.makes"),
  { headers: { Authorization: `Bearer ${process.env.SOURCEVINE_API_KEY}` } },
);
const { data } = await r.json();

3. Read the response

{
  "success": true,
  "available": true,
  "data": {
    "url": "https://www.tiktok.com/@atlas.makes",
    "username": "atlas.makes",
    "nickname": "Atlas Makes",
    "verified": true,
    "followerCount": 482300,
    "followingCount": 214,
    "videoCount": 618,
    "heartCount": 9140000,
    "fetchedAt": "2026-08-28T09:41:44Z"
  }
}

Three things to notice:

  • The field names are TikTok’s. heartCount is TikTok’s word for a profile’s lifetime like total; on /v1/youtube/channel the follower field is subscriberCount. Each API answers in its own platform’s vocabulary.
  • A field a platform does not publish is absent, not zero. TikTok reports no lifetime profile view count, so there is no viewCount key here at all.
  • fetchedAt is when we read the platform, so you always know how old a number is. The call cost what the X-Credits-Charged header says; see credits & billing.

4. Handle the cases that are not success

A profile can be missing, private, or temporarily unreachable. Those are different situations and you should treat them differently:

body = r.json()

if body["available"]:
    followers = body["data"]["followerCount"]
elif body["availability"]["status"] in ("not_found", "empty", "private"):
    pass          # a fact about the world - do not retry
else:
    pass          # transient - retry with backoff

The legacy generic endpoints return the availability block at the top level. Named APIs wrap platform-specific fields in data, so branch on available first and then read the field for the API you called.

Never retry a not_found or private against other endpoints. It is a fact, not a failure, and retrying only spends time and credits.

Next

Last updated 4 October 2026