All tutorials

How to scrape TikTok profiles with Node.js (2026)

A Node.js walkthrough for GET /v1/tiktok/profiles/{handle}. Copy the snippet, run it, then read the JSON.

GET /v1/tiktok/profiles/{handle} · 1 credit per successful request.

Also available in

You'll pull a public TikTok profile and see the fields you get back.

Example job: refresh a creator roster from TikTok handles you already have.

Get ready

You need a Social Fetch API key and a working Node.js environment. New accounts include 100 free credits.

  • API key. Create a Social Fetch account and copy an API key. New accounts include 100 free credits.

  • Node.js setup. Node 18+ (native fetch). Export SOCIALFETCH_API_KEY.

When you're done, SOCIALFETCH_API_KEY is set in your shell.

Make the request

Copy the Node.js snippet, keep SOCIALFETCH_API_KEY in the environment, and send GET /v1/tiktok/profiles/{handle} with the x-api-key header. Example path: /v1/tiktok/profiles/mkbhd. The sample uses public values for profiles.

Request
Node.js

You should see HTTP 200 and a JSON body. Native fetch does not throw on 4xx/5xx, so check response.ok before parsing.

Read the response

A JSON body with data (the profiles) and meta (creditsCharged, requestId). The sample below is illustrative; field-level docs live on the endpoint page. Credits charge on completed lookups, not transport failures.

Request
Sample response

Branch on data.lookupStatus when present, then keep meta.requestId if a row looks wrong.

HTTP 200 with lookupStatus private is not a full public card — limited fields may still appear; do not upsert them as if the account were public. not_found means no match; do not invent a stub row. Confirm the handle before spending credits on videos, followers, or Shop routes.

You finished

Same path and credits in playground, docs, and production. Pick a next action below.

Common questions

Do I need an official TikTok developer account?

No. Social Fetch authenticates with your Social Fetch API key. You call GET /v1/tiktok/profiles/{handle} and we handle upstream access. You still need to follow each platform's terms for how you use public data.

What does the tiktok profiles endpoint return?

A JSON envelope with data (the profiles) and meta (creditsCharged, requestId). Shape details and field docs live on the endpoint page and in the OpenAPI docs.

What does lookupStatus mean on a TikTok profile?

found means you got a public profile card and metrics. not_found means no public profile matched. private means the account is private — you may still see limited fields, but do not treat it as a full public card. Always branch on lookupStatus before writing rows.

Should I look up the TikTok profile before listing that handle's videos?

Yes when you need an explicit found / not_found / private outcome before interpreting an empty video list. Profile lookup is the identity card; GET /v1/tiktok/profiles/{handle}/videos is a separate operation for recent uploads.

How much does a successful request cost?

1 credit per successful request.

Is this okay for production?

Yes. Same production API as the rest of Social Fetch: typed errors, requestId on every response, and credit charges only on completed lookups (not infrastructure failures). New accounts get 100 free credits.

Any Node.js-specific tips for this request?

Yes. Native fetch does not throw on 4xx/5xx — check response.ok (or status) before parsing JSON. Read meta.requestId from the body when you need support on a bad row.