# Crevideo TikTok Shop Creator Analytics Scraper (`automation-lab/crevideo-tiktok-shop-creator-analytics-scraper`) Actor

Extract public TikTok Shop creator sales, content, engagement, and GMV analytics from Crevideo profiles by handle or URL.

- **URL**: https://apify.com/automation-lab/crevideo-tiktok-shop-creator-analytics-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Crevideo TikTok Shop Creator Analytics Scraper

Extract public TikTok Shop creator commerce and content analytics from Crevideo profile pages.

Provide TikTok handles or Crevideo profile URLs and receive one normalized dataset row per creator.
The Actor captures profile identity, followers, public 30-day sales ranges, content performance, engagement, and GMV splits.

It is designed for brands, affiliate agencies, creator-discovery products, and analysts who refresh creator shortlists or campaign dashboards repeatedly.

### What this Actor does

The Actor requests public pages such as:

`https://crevideo.com/tiktok/dealswithty`

It reads Crevideo's server-rendered profile payload without opening a browser.
It then validates and normalizes the creator record into stable JSON.

The Actor does not sign into Crevideo or TikTok.
It does not expose gated audience details.
It does not turn displayed ranges into invented exact numbers.

### Who should use it

- TikTok Shop brands comparing creators before outreach
- Affiliate agencies refreshing creator shortlists
- Campaign teams monitoring public commerce-performance changes
- Creator-discovery platforms enriching profiles by handle
- Analysts building scheduled TikTok Shop creator dashboards
- Data teams joining public sales signals with internal campaign results

### Why use this Actor

- **Handle and URL inputs:** use the identifier already present in your workflow.
- **Commerce-focused output:** collect GMV, units, GPM, commission, and category signals.
- **Content context:** compare videos, likes, average views, and engagement.
- **Honest ranges:** preserve source values such as `$150K+` instead of guessing.
- **Efficient HTTP extraction:** avoid unnecessary browser runtime and transfer.
- **Automation-ready errors:** receive an explicit row for an invalid or missing creator.
- **Safe retries:** retry only transient network, rate-limit, and server failures.

### Data extracted

| Group | Fields |
| --- | --- |
| Identity | handle, username, nickname, avatar URL, verified status |
| Profile | region, follower count, bio, product categories |
| Source freshness | source URL, source `updatedAt`, scrape timestamp |
| Sales | products per sale (PPS), 30-day GMV range, units range |
| Economics | 30-day GPM range, average commission-rate range |
| Content | video count, total likes, average views, engagement rate |
| Channel mix | video, live, and showcase GMV percentages |
| Category mix | category names and GMV percentages |
| Diagnostics | status, error type, and error message |

Field availability follows the public Crevideo payload.
A missing optional value is returned as `null` or an empty array.

### Pricing

This Actor uses pay-per-event pricing.

- Start fee: **$0.005 per run**
- Successful creator extraction: **$0.00001 per creator on every Apify tier**
- Invalid, missing, or failed creators are not charged as creator results

Example FREE-tier estimates:

| Workflow | Estimated Actor charge |
| --- | ---: |
| 1 creator | $0.00501 |
| 100 creators | $0.006 |
| 1,000 creators | $0.015 |

Apify platform usage and proxy usage, if enabled, are separate from Actor event charges.
The default direct HTTP route normally does not need a proxy.

### Getting started

1. Open the Actor in Apify Console.
2. Add one or more values under **TikTok creator handles**.
3. Alternatively, add public Crevideo profile URLs.
4. Leave concurrency at `3` for ordinary runs.
5. Set the maximum creators you want processed.
6. Click **Start**.
7. Open the default dataset when the run finishes.
8. Filter rows by `status` to separate successful records from diagnostics.

A minimal input is:

```json
{
  "handles": ["dealswithty"]
}
```

### Input parameters

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `handles` | string array | example handle | TikTok handles, with or without `@` |
| `startUrls` | request list | example profile | Crevideo `/tiktok/{handle}` profile URLs |
| `maxItems` | integer | `100` | Maximum unique valid creators requested |
| `maxConcurrency` | integer | `3` | Simultaneous requests, from 1 to 10 |
| `proxyConfiguration` | object | disabled | Optional Apify Proxy configuration |

Provide at least one value in `handles` or `startUrls`.
Duplicates are removed case-insensitively.
The maximum applies after validation and deduplication.

### Output example

The default dataset contains success and error rows.
This abbreviated example reflects a real public profile while omitting bio and signed image parameters:

```json
{
  "status": "ok",
  "handle": "dealswithty",
  "sourceUrl": "https://crevideo.com/tiktok/dealswithty",
  "scrapedAt": "2026-07-25T07:00:00.000Z",
  "updatedAt": "2026-07-06",
  "profile": {
    "nickname": "Ty",
    "username": "dealswithty",
    "avatarUrl": null,
    "region": "US",
    "followerCount": 148403,
    "bio": null,
    "verified": false,
    "productCategories": ["Kitchenware", "Household Appliances"]
  },
  "salesMetrics": {
    "productsPerSale": 4,
    "gmv30Days": { "range": "$150K+" },
    "unitsSold30Days": { "range": "1K+" },
    "gpm30Days": { "range": "$0-$5k" },
    "averageCommissionRate": { "range": "5%-10%" }
  },
  "contentMetrics": {
    "videoCount": 2143,
    "totalLikes": 5226543,
    "averageViews": 261474.8,
    "engagementRate": 1.1
  },
  "gmvChannelSplit": {
    "video": 100,
    "live": 0,
    "showcase": 0
  },
  "gmvCategorySplit": [
    { "name": "Household Appliances", "percentage": 60.7 }
  ]
}
```

### Error records and run failures

Invalid input entries produce `status: "error"` rows with `errorType: "invalid_input"`.
A nonexistent public profile produces `errorType: "not_found"`.
These rows are not charged as extracted creators.

Transient network, HTTP 429, and selected 5xx responses receive bounded retries with backoff.
If every creator fails because the source or parser is unavailable, the Actor preserves diagnostic rows and fails the run with a non-zero status.
An empty top-level input also fails immediately.

### Tips for reliable results

- Start with the default concurrency of 3.
- Deduplicate your source list before scheduling very large jobs.
- Use the source `updatedAt` field to judge snapshot freshness.
- Treat range fields as categorical public estimates, not exact transactions.
- Enable a proxy only after direct requests show repeatable access problems.
- Schedule refreshes at a cadence appropriate for your campaign decisions.
- Join records by lowercase `handle` in downstream systems.

### Limitations

Crevideo controls the public profile data and can change field names or availability.
Some creators may not have a public Crevideo profile.
Public snapshots may lag activity on TikTok Shop.
Sales figures are often ranges rather than exact values.
Audience-demographic details that require signup are intentionally excluded.
The Actor does not search for creators; it enriches supplied handles or URLs.

### Workflow ideas

#### Creator shortlist refresh

Run a saved task every week with agency shortlist handles.
Compare follower, average-view, engagement, and public GMV range changes.
Send accepted rows to a spreadsheet or warehouse.

#### Campaign dashboard enrichment

Call the Actor from your pipeline after a creator is added.
Store `updatedAt` with the campaign record.
Refresh only creators whose source snapshot changed.

#### Category-fit analysis

Expand `gmvCategorySplit` into one warehouse row per category.
Compare creator category shares with campaign product categories.
Use the percentages as public directional signals.

### API with cURL

Start a synchronous run and return dataset items:

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~crevideo-tiktok-shop-creator-analytics-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"handles":["dealswithty"],"maxItems":1}'
```

Keep your Apify token in an environment variable.
Do not commit it to source control.

### API with JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor(
  'automation-lab/crevideo-tiktok-shop-creator-analytics-scraper'
).call({ handles: ['dealswithty'], maxItems: 1 });

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API with Python

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor(
    'automation-lab/crevideo-tiktok-shop-creator-analytics-scraper'
).call(run_input={'handles': ['dealswithty'], 'maxItems': 1})

items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### Use with Apify MCP

Add the Apify MCP server to Claude Code:

```bash
claude mcp add --transport http apify \
  "https://mcp.apify.com?tools=automation-lab/crevideo-tiktok-shop-creator-analytics-scraper"
```

#### Claude Desktop setup

Claude Desktop can use the JSON configuration below.

#### Cursor setup

Add the same remote MCP URL in Cursor under Settings → Tools & MCP.

#### VS Code setup

Add the same remote MCP server URL to your VS Code MCP configuration.

Desktop and editor clients can use:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/crevideo-tiktok-shop-creator-analytics-scraper"
    }
  }
}
```

Example prompts:

- “Extract public commerce analytics for these TikTok creator handles.”
- “Compare GMV ranges and engagement rates for my creator shortlist.”
- “Return error rows separately and summarize the successful creator category mix.”

### Responsible use

Use this Actor only for lawful purposes and public data you are entitled to process.
Respect applicable privacy, marketing, intellectual-property, and data-protection rules.
Do not use output for harassment, discrimination, or invasive profiling.
Review Crevideo and TikTok terms relevant to your use case.
You are responsible for retention, sharing, and downstream decisions.

### Troubleshooting

#### Why did I get `not_found`?

The handle may not have a public Crevideo profile, or it may be misspelled.
Open the generated `sourceUrl` to verify it.

#### Why is a sales value a string range?

Crevideo publicly presents many commerce metrics as ranges.
The Actor preserves that representation to avoid false precision.

#### Why did the whole run fail?

If all valid profiles encounter upstream or parser failures, the Actor fails instead of reporting a misleading successful empty run.
Inspect dataset error rows and the run log.

#### Should I enable a proxy?

Not normally.
The tested public profile route works with direct HTTP.
Enable an Apify Proxy configuration only if direct access repeatedly degrades in your environment.

### FAQ

#### Can I provide `@handle` values?

Yes.
The leading `@` is removed before the public Crevideo URL is built.

#### Are duplicate handles charged twice?

No.
Duplicates are removed before requests and successful-result charging.

#### Does the Actor return exact TikTok Shop revenue?

No.
It returns the values publicly displayed by Crevideo, including ranges.

#### Does it scrape gated audience demographics?

No.
The product scope is public anonymous profile analytics only.

#### Can I run it on a schedule?

Yes.
Save the input as an Apify task and attach a schedule or invoke it from your own orchestrator.

### Related Actors

Combine this Actor with other public automation-lab tools when your workflow needs broader TikTok data:

- [TikTok Shop Scraper](https://apify.com/automation-lab/tiktok-shop-scraper) for product-oriented TikTok Shop data
- [TikTok Search Scraper](https://apify.com/automation-lab/tiktok-search-scraper) for TikTok discovery workflows

These products have different outputs; choose them only when those additional workflows are needed.

### Support

When reporting an issue, include a sanitized input, run URL, expected behavior, and the affected handle.
Do not post Apify tokens or private campaign data.

# Actor input Schema

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

TikTok handles with or without @. Duplicate handles are ignored.

## `startUrls` (type: `array`):

Public profile URLs in the form https://crevideo.com/tiktok/{handle}.

## `maxItems` (type: `integer`):

Maximum number of unique valid creator profiles to request. Input errors are reported separately.

## `maxConcurrency` (type: `integer`):

Number of simultaneous Crevideo requests. Keep the default unless you have a large list.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy configuration. Direct requests work for the observed public pages.

## Actor input object example

```json
{
  "handles": [
    "dealswithty"
  ],
  "startUrls": [
    {
      "url": "https://crevideo.com/tiktok/dealswithty"
    }
  ],
  "maxItems": 10,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Successful creator analytics and uncharged error records in the default dataset overview view.

# 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": [
        "dealswithty"
    ],
    "startUrls": [
        {
            "url": "https://crevideo.com/tiktok/dealswithty"
        }
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/crevideo-tiktok-shop-creator-analytics-scraper").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": ["dealswithty"],
    "startUrls": [{ "url": "https://crevideo.com/tiktok/dealswithty" }],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/crevideo-tiktok-shop-creator-analytics-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "dealswithty"
  ],
  "startUrls": [
    {
      "url": "https://crevideo.com/tiktok/dealswithty"
    }
  ],
  "maxItems": 10
}' |
apify call automation-lab/crevideo-tiktok-shop-creator-analytics-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/crevideo-tiktok-shop-creator-analytics-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/IP63Y7CWn9wR2pHFe/builds/9qb3vAMHAmBSHKrti/openapi.json
