Apify
Run Social Fetch TikTok lookups as pay-per-event Apify Actors — profiles, videos, transcripts, and profile feeds without managing API keys in your input.
Use Social Fetch on Apify as four Store Actors under @social-fetch. Each Actor calls the same documented REST routes as the API reference, with Apify dataset export and pay-per-event (PPE) billing. You pay Apify per result — no Social Fetch API key in your input.
Platform key only
Actors use a publisher platform key (SOCIALFETCH_API_KEY secret). End users never paste an sfk_ key into Actor input.
Actors
| Actor | What it returns | Apify Store |
|---|---|---|
| TikTok Profile Scraper | Followers, bio, avatar, metrics by handle | Open Actor |
| TikTok Transcript Scraper | WebVTT transcript by video URL (+ optional AI fallback) | Open Actor |
| TikTok Profile Videos Scraper | Paginated videos from a profile (one dataset row per video) | Open Actor |
| TikTok Video Scraper | Video metadata by URL (+ optional media download URLs) | Open Actor |
Every Actor maps 1:1 to a /v1/tiktok/** route documented in the API reference.
Pricing (PPE)
Platform API usage is included in the event price.
| Actor | Event | Price (USD) |
|---|---|---|
| Profile | tiktok-profile | $0.0025 per profile result |
| Transcript (captions) | tiktok-transcript | $0.0030 per URL |
| Transcript (AI fallback) | tiktok-transcript-ai | $0.0250 per URL |
| Profile videos | tiktok-profile-video | $0.0025 per video row |
| Video metadata | tiktok-video | $0.0025 per URL |
| Video + media URLs | tiktok-video-media | $0.0250 per URL |
You are charged for completed lookups, including lookupStatus: not_found. The synthetic apify-default-dataset-item event is $0.00 on all Actors.
Quick start
- Create a free Apify account.
- Open an Actor from the table above.
- Use the pre-filled input (or paste handles/URLs) and click Start.
- Export the default dataset as JSON, CSV, or Excel.
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });
const run = await client.actor("social-fetch/tiktok-profile-scraper").call({
handles: ["n8n"],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);lookupStatus
HTTP 200 does not always mean data was found. Check lookupStatus on each dataset item — not_found and private still exit successfully and are billed. See Get a profile for the same envelope in raw API form.
Compare with the REST API
| Apify Actors | REST API / SDK | |
|---|---|---|
| Auth | Apify token only | Your sfk_ API key |
| Billing | Apify PPE per result | Social Fetch credits |
| Best for | No-code pipelines, Apify ecosystem, scheduled runs | Product backends, custom code |
For Instagram, YouTube, X, and the full route surface, use the REST API, TypeScript SDK, or n8n node.
Support
- Email: support@socialfetch.dev
- API docs: socialfetch.dev/docs/api
- Operator runbook: PUBLISHING.md in the monorepo