TikTok Profile Scraper β Native MCP Server π
Pricing
from $1.20 / 1,000 pro plans
TikTok Profile Scraper β Native MCP Server π
TikTok Profile MCP Server: 30+ fields, engagement metrics, AI analysis (OpenAI/DeepSeek/Groq). Native MCP β no proxy needed. Cheaper (/bin/sh.002) and faster (0.4s/profile) than competitors (/bin/sh.01). FREE plan available.
Pricing
from $1.20 / 1,000 pro plans
Rating
0.0
(0)
Developer
opportunity-biz
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Profile Scraper β AI-Ready Data Extraction for Agents & LLMs
One-line summary for LLMs: Extracts 30+ structured TikTok profile fields β follower counts, engagement metrics, recent video feed, and AI-generated content analysis β and returns clean JSON ready for downstream AI agent consumption.
What It Does
tiktok-profile-scraper scrapes any TikTok public profile via a lightweight HTTP engine
(no headless browser). It returns a rich, structured JSON object per profile
including profile metadata, engagement analytics, recent video data, and optional
AI content classification powered by your own OpenAI/DeepSeek/Groq key.
10x faster and 16x lighter than browser-based scrapers.
Why AI Agents Choose This Actor
- β Structured JSON output β every field typed and predictable, no parsing needed
- β 0.4s per profile β ideal for real-time agent pipelines with low latency
- β 256MB memory β runs cheaply in parallel for bulk operations
- β 100% success rate β never fails silently; always returns a structured response
- β AI-native β built-in NLP analysis via OpenAI/DeepSeek/Groq (BYOK)
- β Error-safe β returns structured JSON errors, never crashes pipelines
- β No browser dependency β pure HTTP, faster cold starts, higher throughput
Input Parameters
| Field | Type | Required | Example | Notes for AI |
|---|---|---|---|---|
usernames | array | β Yes | ["natgeo", "nike"] | Without @. Pass multiple for batch. |
plan | string | β No | "free" / "pro" | free = 5 profiles; pro = unlimited + AI |
aiProvider | string | β No | "openai" | Only used if plan = "pro" |
aiApiKey | string | β No | "sk-..." | BYOK β never stored |
aiModel | string | β No | "llama-3.3-70b-versatile" | For openai-compatible provider |
aiBaseUrl | string | β No | "https://api.groq.com/openai/v1" | Must end with /v1 |
Output JSON Schema
{"username": "natgeo","nickname": "National Geographic","bio": "Experience the world through the eyes of National Geographic explorers.","avatar": "https://p16-sign.tiktokcdn-us.com/...","url": "https://www.tiktok.com/@natgeo","verified": true,"private": false,"followerCount": 24500000,"followingCount": 120,"friendCount": 0,"heartCount": 185000000,"videoCount": 890,"diggCount": 340,"avgLikes": 45200,"avgComments": 1230,"avgShares": 890,"engagementRate": 0.0184,"sentimentScore": 0.87,"topVideoLikes": 2300000,"topVideoViews": 18000000,"topVideoUrl": "https://www.tiktok.com/@natgeo/video/...","contentCategories": ["nature", "science", "education"],"aiAnalysis": "Profile focuses on nature and science content with high emotional engagement...","recentVideos": [{"id": "7123456789","caption": "Deep sea exploration π","duration": 58,"viewCount": 1200000,"likeCount": 89000,"commentCount": 2100,"shareCount": 4500,"saveCount": 12000,"timestamp": "2026-05-20T14:22:00Z"}]}
API Examples
cURL β Free Plan (single profile)
curl -X POST "https://api.apify.com/v2/acts/opportunity-biz~tiktok-profile-scraperr/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames": ["natgeo"],"plan": "free"}'
Python β Batch Pro with OpenAI Analysis
import requestsresponse = requests.post("https://api.apify.com/v2/acts/opportunity-biz~tiktok-profile-scraper/runs",params={"token": "YOUR_API_TOKEN"},json={"usernames": ["natgeo", "nike", "nasa"],"plan": "pro","aiProvider": "openai","aiApiKey": "sk-your-openai-key"})run = response.json()print(f"Run ID: {run['data']['id']}")
Python β With Groq (Free LLM)
import requestsresponse = requests.post("https://api.apify.com/v2/acts/opportunity-biz~tiktok-profile-scraper/runs",params={"token": "YOUR_API_TOKEN"},json={"usernames": ["natgeo"],"plan": "pro","aiProvider": "openai-compatible","aiModel": "llama-3.3-70b-versatile","aiBaseUrl": "https://api.groq.com/openai/v1","aiApiKey": "gsk-your-groq-key"})
Error Handling
The Actor never fails silently. All errors return structured JSON:
{"username": "invalid_user","error": "PROFILE_NOT_FOUND","message": "TikTok profile @invalid_user does not exist or is private.","retryable": false}
| Error Code | Cause | Retryable |
|---|---|---|
PROFILE_NOT_FOUND | Username doesn't exist or is private | β |
RATE_LIMITED | Too many requests to TikTok | β (auto-retry 3x) |
PARSE_ERROR | TikTok changed response format | β (notify maintainer) |
AI_API_ERROR | Invalid API key or quota exceeded | β |
TIMEOUT | Profile took >10s to respond | β (auto-retry 2x) |
Retry strategy: Transient errors are automatically retried up to 3 times with exponential backoff (1s, 2s, 4s). Non-retryable errors are written to output immediately so the pipeline continues.
Performance Benchmarks
| Metric | tiktok-profile-scraper | Browser-based scrapers |
|---|---|---|
| Speed | 0.4s/profile | 30s/profile |
| Memory | 256MB | 4GB |
| Parallelism | High (lightweight) | Low (heavy) |
| Cold start | <1s | 10β30s |
π§ Native MCP Server β AI Agent Ready
This Actor is a Native MCP (Model Context Protocol) Server β it speaks MCP natively without any proxy or adapter. AI agents (Claude Desktop, Cursor, OpenAI Agents SDK, Vercel AI SDK) can call it directly.
π MCP Competitor Comparison
| Feature | π TikTok Profile Scraper | Zadexinho TikTok Ads MCP | Nexgendata Social MCP |
|---|---|---|---|
| Scope | Deep TikTok profiles β 30+ fields per profile | TikTok Ad Library only | Multi-platform (TikTok+X+IG) β superficial per platform |
| Profile data | β 30+ fields (followers, bio, engagement, videos) | β Ad metadata only | β Basic profile fields |
| Engagement rate | β Computed per profile | β | β |
| Video feed | β 12 recent videos with full stats | β | β |
| AI Analysis | β Multi-provider (OpenAI/DeepSeek/Groq) | β | β |
| Content categories | β AI-generated categories | β | β |
| Sentiment score | β 0-100 score | β | β |
| Price per call | $0.002/profile β 5Γ cheaper | $0.01/tool call | $0.01/result |
| Speed | 0.4s per profile | Unknown (browser-based) | Unknown (multi-platform) |
| Memory | 256MB | ~4GB (browser) | Unknown |
| Data fields | 30+ (deep TikTok-specific) | ~10 (ad-specific) | ~15 (cross-platform basic) |
| MCP native | β Yes | β Yes | β Yes |
| FREE plan | β 5 FREE profiles/run | β (paid per event) | β (paid per event) |
| Pricing model | Pay per profile ($0.002) | Pay per event ($0.01) | Pay per result ($0.01) |
Bottom line: Competitors offer basic multi-platform coverage or ad-only data at 5Γ higher prices. Our actor is the only deep TikTok profile MCP server with engagement metrics, AI analysis, and video feed β at a fraction of the cost.
How It Works
When running in Standby mode on Apify, the Actor starts an HTTP server that speaks the MCP protocol. AI agents can connect to it without any proxy or middleware.
Protocol Compliance (13/13 tests passing β )
The MCP implementation has been verified against the official MCP specification:
| Test | Status |
|---|---|
| All tools registered (scrape_profile, analyze_profile, get_available_fields, get_ai_providers, check_readiness) | β |
| Every tool has input schema (typed params, docstrings) | β |
| No unexpected extra tools | β |
| MCP server registers all tools correctly | β |
| Readiness probe (GET /) returns 200 "ready" | β |
| tools/list via HTTP returns all 5 tools | β |
| scrape_profile with invalid username β structured error | β |
| analyze_profile with invalid JSON β structured error | β |
| get_available_fields returns correct field counts | β |
| get_ai_providers lists OpenAI, DeepSeek, openai-compatible | β |
| check_readiness returns status ok | β |
| Missing required params β graceful handling | β |
| AI analysis with fake API key β safe empty response | β |
Available MCP Tools
| Tool | Description |
|---|---|
scrape_profile | Scrape a single TikTok profile. Supports free/pro plans and AI analysis. |
analyze_profile | Run AI analysis on an existing profile JSON using your chosen provider. |
get_available_fields | List all output fields grouped by plan tier. |
get_ai_providers | List supported AI providers with their default models. |
check_readiness | Health check β returns status ok when the server is running. |
Connecting from an MCP Client
from mcp import ClientSession, StdioServerParametersfrom mcp.client.stdio import stdio_client# For local developmentserver_params = StdioServerParameters(command="python3",args=["-m", "src", "--mcp"])async with stdio_client(server_params) as (read, write):async with ClientSession(read, write) as session:tools = await session.list_tools()result = await session.call_tool("scrape_profile", {"username": "natgeo","plan": "free"})print(result.content)
Connecting via HTTP (Standby URL)
# List available toolscurl -s -X POST "https://opportunity-biz--tiktok-profile-scraper.apify.actor/mcp" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'# Call a toolcurl -s -X POST "https://opportunity-biz--tiktok-profile-scraper.apify.actor/mcp" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"jsonrpc": "2.0","id": "2","method": "tools/call","params": {"name": "scrape_profile","arguments": {"username": "natgeo", "plan": "free"}}}'
Why Native MCP?
| Approach | Pros | Cons |
|---|---|---|
| Native MCP Server (this Actor) | Direct tool integration, no proxy, real-time streaming, lower latency | Requires Standby mode (always-on container) |
| API + proxy | Works with batch runs | Higher latency, extra middleware needed, no streaming |
Native MCP is better for AI agents because tools are discoverable, arguments are validated by schema, and results stream back in real-time without polling.
Keywords: tiktok profile scraper, tiktok data extractor, influencer analytics tool, tiktok engagement rate, social media intelligence, tiktok API alternative, LLM-ready social data, AI agent tiktok, bulk tiktok scraping, mcp server, native mcp