TikTok Profile Scraper β€” Native MCP Server πŸš€ avatar

TikTok Profile Scraper β€” Native MCP Server πŸš€

Pricing

from $1.20 / 1,000 pro plans

Go to Apify Store
TikTok Profile Scraper β€” Native MCP Server πŸš€

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

opportunity-biz

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

TikTok Profile Scraper – AI-Ready Data Extraction for Agents & LLMs

AI-Ready Speed Memory Success Rate

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

FieldTypeRequiredExampleNotes for AI
usernamesarrayβœ… Yes["natgeo", "nike"]Without @. Pass multiple for batch.
planstring❌ No"free" / "pro"free = 5 profiles; pro = unlimited + AI
aiProviderstring❌ No"openai"Only used if plan = "pro"
aiApiKeystring❌ No"sk-..."BYOK β€” never stored
aiModelstring❌ No"llama-3.3-70b-versatile"For openai-compatible provider
aiBaseUrlstring❌ 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 requests
response = 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 requests
response = 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 CodeCauseRetryable
PROFILE_NOT_FOUNDUsername doesn't exist or is private❌
RATE_LIMITEDToo many requests to TikTokβœ… (auto-retry 3x)
PARSE_ERRORTikTok changed response formatβœ… (notify maintainer)
AI_API_ERRORInvalid API key or quota exceeded❌
TIMEOUTProfile 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

Metrictiktok-profile-scraperBrowser-based scrapers
Speed0.4s/profile30s/profile
Memory256MB4GB
ParallelismHigh (lightweight)Low (heavy)
Cold start<1s10–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 ScraperZadexinho TikTok Ads MCPNexgendata Social MCP
ScopeDeep TikTok profiles β€” 30+ fields per profileTikTok Ad Library onlyMulti-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
Speed0.4s per profileUnknown (browser-based)Unknown (multi-platform)
Memory256MB~4GB (browser)Unknown
Data fields30+ (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 modelPay 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:

TestStatus
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

ToolDescription
scrape_profileScrape a single TikTok profile. Supports free/pro plans and AI analysis.
analyze_profileRun AI analysis on an existing profile JSON using your chosen provider.
get_available_fieldsList all output fields grouped by plan tier.
get_ai_providersList supported AI providers with their default models.
check_readinessHealth check β€” returns status ok when the server is running.

Connecting from an MCP Client

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
# For local development
server_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 tools
curl -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 tool
curl -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?

ApproachProsCons
Native MCP Server (this Actor)Direct tool integration, no proxy, real-time streaming, lower latencyRequires Standby mode (always-on container)
API + proxyWorks with batch runsHigher 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