> **For coding agents and LLMs:** This is one page from the Social Fetch docs (markdown export). The sections below mirror the orientation block in [`/llms.txt`](https://www.socialfetch.dev/llms.txt); use [`/llms.json`](https://www.socialfetch.dev/llms.json) when you need a structured operation inventory. The catalog covers documented operations with on-site reference pages.

## This page

- **On-site (HTML):** [https://www.socialfetch.dev/docs/integrations/apify](https://www.socialfetch.dev/docs/integrations/apify)
- **Markdown (.mdx) URL:** [https://www.socialfetch.dev/docs/integrations/apify.mdx](https://www.socialfetch.dev/docs/integrations/apify.mdx)

## API base URL and authentication

- **API origin (from OpenAPI `servers`):** `https://api.socialfetch.dev`
- **Authentication:** send `x-api-key: sfk_...` on `/v1/**` routes unless the operation is explicitly anonymous (check OpenAPI `security`, the [API reference hub](https://www.socialfetch.dev/docs/api.mdx), [`/llms.txt`](https://www.socialfetch.dev/llms.txt), or [`/llms.json`](https://www.socialfetch.dev/llms.json) for each route).
- **OpenAPI JSON:** [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json)

## Recommended docs entrypoints (this site)

- [Documentation overview](https://www.socialfetch.dev/docs.mdx) — top-level orientation (markdown).
- [Quickstart](https://www.socialfetch.dev/docs/quickstart.mdx) — authenticate with `x-api-key`, validate auth with `whoami`, and understand the JSON envelope.
- [SDK](https://www.socialfetch.dev/docs/sdk.mdx) — official TypeScript SDK guide, including `SocialFetchClient`, `Result`, and `unwrap()`.
- [SDK reference](https://www.socialfetch.dev/docs/sdk-reference.mdx) — exhaustive SDK method inventory and route mapping for agents, tooling, and power users.
- [Choose the right endpoint](https://www.socialfetch.dev/docs/choose-endpoint.mdx) — task-oriented route selection for smoke tests, profiles, list endpoints, and single-item lookups.
- [Capability matrix](https://www.socialfetch.dev/docs/capability-matrix.mdx) — fast comparison of identifiers, pagination, outcomes, media download, and SDK coverage.
- [Integrations](https://www.socialfetch.dev/docs/integrations.mdx) — MCP for AI clients, n8n verified node, SDK, and REST API connection paths.
- [MCP integration](https://www.socialfetch.dev/docs/integrations/mcp.mdx) — hosted `/mcp` server, OAuth, Cursor/VS Code/Claude install snippets, 87 endpoint tools, plus docs_search/docs_read for implementation help.
- [n8n integration](https://www.socialfetch.dev/docs/integrations/n8n.mdx) — install `n8n-nodes-socialfetch`, credentials, and workflow examples.
- [`/llms.json`](https://www.socialfetch.dev/llms.json) — structured machine-readable operation inventory with parameter names, pagination, outcomes, credits, and SDK mapping.
- [API reference hub](https://www.socialfetch.dev/docs/api.mdx) — human-friendly index of operations with links into generated pages.
- [Errors](https://www.socialfetch.dev/docs/errors.mdx) — shared error envelope and HTTP status guidance.
- [Credits](https://www.socialfetch.dev/docs/credits.mdx) — metering, `402`, and planning batch jobs.
- Outcome semantics such as `found`, `not_found`, and `private` are documented in [Errors](https://www.socialfetch.dev/docs/errors.mdx) and on operation pages when present in the OpenAPI contract.

## Markdown docs convention

- Every docs page has a markdown twin: append **`.mdx`** to the docs pathname (for example `/docs/quickstart` → `/docs/quickstart.mdx`).
- Agents that send `Accept: text/markdown` on `/docs/**` HTML URLs may receive markdown directly (same URL, `Vary: Accept`).

---
# Apify (https://www.socialfetch.dev/docs/integrations/apify)

Use **Social Fetch** on [Apify](https://apify.com) as four Store Actors under [@social-fetch](https://apify.com/social-fetch). Each Actor calls the same documented REST routes as the [API reference](/docs/api), with Apify dataset export and pay-per-event (PPE) billing. You pay Apify per result — no Social Fetch API key in your input.

  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](https://apify.com/social-fetch/tiktok-profile-scraper)        |
| TikTok Transcript Scraper     | WebVTT transcript by video URL (+ optional AI fallback)     | [Open Actor](https://apify.com/social-fetch/tiktok-transcript-scraper)     |
| TikTok Profile Videos Scraper | Paginated videos from a profile (one dataset row per video) | [Open Actor](https://apify.com/social-fetch/tiktok-profile-videos-scraper) |
| TikTok Video Scraper          | Video metadata by URL (+ optional media download URLs)      | [Open Actor](https://apify.com/social-fetch/tiktok-video-scraper)          |

Every Actor maps 1:1 to a `/v1/tiktok/**` route documented in the [API reference](/docs/api).

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

1. Create a free [Apify](https://apify.com) account.
2. Open an Actor from the table above.
3. Use the pre-filled input (or paste handles/URLs) and click **Start**.
4. Export the default dataset as JSON, CSV, or Excel.

JavaScript

```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](/guides/how-to-scrape-tiktok-data#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](/docs/api), [TypeScript SDK](/docs/sdk), or [n8n node](/docs/integrations/n8n).

Support

* Email: [support@socialfetch.dev](mailto:support@socialfetch.dev)
* API docs: [socialfetch.dev/docs/api](https://www.socialfetch.dev/docs/api)
* Operator runbook: [PUBLISHING.md](https://github.com/social-freak-ltd/socialfetch/blob/main/integrations/apify/PUBLISHING.md) in the monorepo