Crawl a TikTok, Instagram or YouTube Profile: MCP Tool for AI Agents

Submits a public profile for crawling: profile metadata plus its recent posts, stats and thumbnails, after which it stays tracked and appears in searches. Asynchronous. Returns a job reference for get_job_status. If the profile is already tracked, this returns immediately without charging a full crawl. Credits are refunded automatically when a crawl fails.

Add any public TikTok, Instagram or YouTube profile to the tracked database on demand: give it a platform and handle and it crawls the profile plus its recent posts, stats and thumbnails, then keeps the account tracked and searchable. It is the "I need data on an account you do not have yet" call, the on-ramp that turns an untracked creator into something every other skill can query. Asynchronous, and a full new crawl costs 40 credits (1 credit = $0.01), refunded automatically if it fails.

40 credits ($0.40) per callAsynchronous (poll job)

How agents use it

Connect the Viral Outliers MCP server once and the crawl_profile tool becomes available to your agent alongside all other skills:

claude mcp add --transport http viral-outliers https://viraloutliers.com/api/mcp \
  --header "Authorization: Bearer so_live_YOUR_KEY"

In Claude.ai or ChatGPT, add a custom connector pointing at https://viraloutliers.com/api/mcp. Your agent then calls crawl_profile on its own whenever the task needs it.

Parameters

NameTypeDescription
platform*string"tiktok" | "instagram" | "youtube".
handle*stringPublic handle, without @.

What it returns

The call returns a job reference immediately, because crawling a whole profile and its recent posts takes longer than a single request. Poll that reference with get_job_status (free) until it reports completed; the profile and its posts are then searchable through search_profiles, search_outliers and get_profile like any other tracked account.

A full crawl brings in the profile metadata (follower count, bio), its recent posts with view/like/comment stats, and thumbnails. That is everything needed to start computing outlier scores against the account's own baseline. If the profile is already tracked, the call returns immediately without charging a full crawl, so re-requesting a known account is cheap.

How it works

You submit a platform and a public handle. The crawler fetches only public data (the same content any visitor sees), paginating through the account's recent posts and downloading a thumbnail per post. Credits are charged when the crawl is queued and refunded automatically if it ultimately fails, so a broken or private handle does not cost you.

Because it is deferred, the job does not block: submit it, poll, and collect. Once crawled, the account stays in the database; to keep it continuously fresh without re-crawling by hand, follow up with track_profile to schedule automatic refresh crawls. If you started from a link rather than a handle, resolve_post_url will tell you whether the profile needs crawling at all.

Common use cases

The "middleman scraping" pattern is the main one: your agent needs data on a creator the database does not track yet, so it calls crawl_profile, polls, and then searches and analyzes that account exactly like a pre-tracked one. No scraping stack on your side. Watchlist-building workflows crawl a competitor set once so they are all searchable, then hand them to track_profile to stay fresh.

It is also the fallback in link-first flows: when resolve_post_url reports profile_not_tracked, crawl_profile with the handle pulls in the profile and the post you were after arrives with the crawl.

vs. building your own scraping infrastructure

A DIY crawler across three platforms means rotating proxies, defeating bot detection, parsing private timeline APIs, keeping up with CDN signature changes, and normalizing three different post shapes into one: an operations burden that breaks whenever a platform ships a change. And you still have to store history to make the data useful.

crawl_profile absorbs all of that behind one authenticated call at a flat, predictable credit price, with automatic refunds when a crawl fails and the result landing in a database that already computes outlier scores and serves search. Compared with generic scraper marketplaces that return a raw dump you must parse and re-parse, here the crawled account becomes a first-class, query-ready record the moment the job completes.

Pricing

40 credits ($0.40) per call in prepaid credits (1 credit = $0.01). For example, 3 calls per dollar. Subscriptions include monthly credits; top-up packs start at $15. Failed asynchronous jobs are refunded automatically, and calls stop at a zero balance, never a surprise bill. See the full pricing table.

Agent workflows

  • Middleman scraping: your agent needs data on a profile we don't track yet → crawl_profile → poll → search/analyze like any tracked account.
  • Watchlist building: crawl a competitor set once → they stay tracked and re-crawled automatically.

Frequently asked questions

Can an AI agent scrape a TikTok or Instagram profile on demand?

Yes, crawl_profile takes a platform and handle, crawls the public profile and its recent posts, and makes everything searchable within minutes. No proxies, parsers or scraping infrastructure on your side.

Is scraping public social media profiles allowed?

Only public data is collected, the same content any visitor sees. You are responsible for using the data in line with the platforms' terms and applicable law. See our terms of service.

How much does a profile crawl cost?

A full crawl of a new profile costs 40 credits and includes the profile, recent posts, stats and thumbnails. Already-tracked profiles don't need a new crawl to be searched.

What happens if I crawl a profile that is already tracked?

The call returns immediately and does not charge a full 40-credit crawl: an already-tracked profile is searchable without re-crawling. To pull in an existing account's latest posts on a schedule, use track_profile, which runs cheaper refresh crawls at a cadence you choose rather than a fresh full crawl each time.