# TikTok Engagement Rate Calculator - Real Or Bought? (`reapx/tiktok-creator-check`) Actor

"This account gained 40,000 followers in three days. Do I say something, or do I just book them and hope?" Get engagement rate against creators of the same size, posting cadence and the follower-growth shape that separates a real audience from a paid one.

- **URL**: https://apify.com/reapx/tiktok-creator-check.md
- **Developed by:** [Tarek Etman](https://apify.com/reapx) (community)
- **Categories:** For creators, Marketing, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $70.00 / 1,000 creator checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![reapX - the record of what changed](https://reapx.dev/reapx.gif)

## Real Audience, Or Bought?

> *"This account gained 40,000 followers in three days. Do I say something, or just book them
> and hope?"*

The profile will not tell you. A bought audience and an earned one show the same follower count,
the same tidy grid, the same confident rate card.

You get their engagement measured **against creators the same size** rather than against
nothing, how often they actually post, and the shape of the growth curve - because real growth
is a slope and bought growth is a step. The step is the whole tell, and one look at a profile
today cannot see it.

**What comes back reads like this:**

> *"@creator runs at 1.1% engagement where creators their size run at 3.0%. The gap opens right
> after a three-day jump of 40,000 followers in March."*

That is the sentence you send back when someone asks why you passed.

### ⬇️ Input

The actor accepts an array of TikTok handles (@uniqueId) and an optional maximum profile count limit.

| Field | Type | Description |
|---|---|---|
| `handles` | Array | List of TikTok creator @uniqueId handles to check. |
| `maxProfiles` | Integer | Maximum number of creator profiles to process in a single run. |

### ⬆️ Output

Every processed profile outputs a structured record to the default dataset.

- `uniqueId` (Stable per-row identifier. TikTok creator @handle)
- `engagementRate` (Computed video engagement rate)
- Derived answer metrics and profile attributes.

### How it works

1. **Profile Data Extraction**: Fetches creator profile HTML via direct HTTP and parses structured rehydration data without proxy spend.
2. **Peer Benchmarking**: Calculates creator engagement against size-band peer medians (<10k, 10k-100k, 100k-1M, 1M-10M, 10M+).
3. **The evidence**: every computed number ships what it was built from, so you can put it in front of a client.

### ❓ FAQ

#### How is the engagement rate calculated?

Engagement rate is calculated by dividing average likes per video by total follower count, then comparing the multiplier against creator peer medians in the same follower size band.

#### Why does followerGrowth30d return null on the first run?

Trend metrics require observed historical runs over time. On the first run, the actor returns `null` along with a `computedStatus` object noting that tracking begins today.

### 💬 Your feedback

Need additional derived metrics, custom cohort benchmarking, or integration assistance? Contact reapxdev@proton.me.

***

*Unofficial - not affiliated with TikTok. Collects only data visible without logging in.*
reapx · reapx.dev · reapxdev@proton.me

# Actor input Schema

## `handles` (type: `array`):

TikTok handles, one per line - the creators you are about to book. Paste a whole shortlist and check them together.

## `maxProfiles` (type: `integer`):

How many of the creators on your list we work through in one run. Raise it when you are checking a whole shortlist.

## Actor input object example

```json
{
  "handles": [
    "tiktok",
    "nike",
    "gymshark",
    "khaby.lame"
  ],
  "maxProfiles": 10
}
```

# Actor output Schema

## `items` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "handles": [
        "tiktok",
        "nike",
        "gymshark",
        "khaby.lame"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("reapx/tiktok-creator-check").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "handles": [
        "tiktok",
        "nike",
        "gymshark",
        "khaby.lame",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("reapx/tiktok-creator-check").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "handles": [
    "tiktok",
    "nike",
    "gymshark",
    "khaby.lame"
  ]
}' |
apify call reapx/tiktok-creator-check --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,reapx/tiktok-creator-check"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/55qT5R5mOvHemHQXk/builds/0vsckWsieSCiF9uae/openapi.json
