A few months ago someone left a comment under a popular Virlo tutorial asking which part of Virlo the author had used: "comet/orbit/etc?" Nobody answered. If you go looking for Comet or Orbit today you'll find both labeled deprecated in Virlo's docs, which says a lot about how fast this product has moved since January.
I do data plumbing for a couple of small creator agencies. Virlo comes up in almost every planning call now, usually as "can we just pull this from Virlo?", so I spent some time reading the current docs end to end and wiring it into a scratch project. This is the write-up I wish I'd had: what Virlo is in October 2026, how the API bills you, a Python starter that tracks its own spend, and where I reach for something else.
Quick disclosure on that last part: Virlo is a discovery tool, and for the narrower job of watching what one named competitor posts on TikTok each week, I use Reachara. More on that split near the end.
So what is Virlo, exactly?
Virlo's homepage calls it social listening for TikTok, Reels and Shorts. In practice it's a large database of short-form videos (the homepage says 14.7M+ outlier videos) plus an AI layer that explains why they worked.
The core idea is the outlier: a video that beat its own creator's usual views. Their example is a creator who normally gets about 2.5K views and suddenly gets 2.8M. That video ranks above a big account having a normal week. It's the right instinct, because raw view counts mostly tell you who is already famous.
On top of that sit:
- Content research agents. You describe a niche in a sentence, the agent writes search terms, and it pulls matching videos across TikTok, Instagram and YouTube, once or on a schedule.
- Breakdowns. Hook, format and angle per video, plus a copilot called Vee that answers questions like "best hooks in my niche this week".
- Outputs. Scripts, creative briefs, and reports exported as PDF, Excel, CSV or JSON.
The site also lists competitor tracking, Meta Ads Library research and audience insights read from comments.
The app and the API are separate products
This tripped up two people I work with, so it's worth stating plainly. The Virlo app is a subscription; the homepage lists Starter at $49/month (2,000 credits), Pro at $199/month (12,000 credits) and Enterprise from $499/month, each with a 7-day $0 trial. The Virlo API is separate, and you don't need an app subscription to use it. You add funds to a prepaid balance that never expires and pay per successful request.
The API lives at https://api.virlo.ai/v1 and authenticates with a bearer key that starts with virlo_tkn_. You need a balance before you can generate a key, and the key is shown once.
Here's what the calls I care about cost, from the billing docs:
| Endpoint | What it returns | Price |
|---|---|---|
GET /v1/account/balance |
Your balance | Free |
GET /v1/trends/digest |
Today's 15 to 20 trending topics for a region | $0.25 |
GET /v1/hashtags |
Top hashtags for a date range (max 90 days) | $0.05 |
GET /v1/hashtags/:hashtag/performance |
One hashtag's video count, views, likes, comments | $0.05 |
GET /v1/videos/digest |
Most-viewed videos of the last 48 hours | $0.25 |
POST /v1/satellite/video-outlier |
Did this one video beat its creator's baseline? | $0.50 |
POST /v1/agents |
A content research agent run | $0.50, or $1.50 with Data Intelligence |
Errors are free, and re-reading results you already paid for is free. Every successful response carries an X-Cost header with the exact charge in dollars, which is the single most useful thing in the whole API for anyone who has to explain a bill.
What happened to Orbit and Comet?
They were Virlo's older agent endpoints: Orbit for one-time research, Comet for recurring. Both now sit under "Legacy (deprecated)" in the docs, which point you to POST /v1/agents instead. One endpoint now covers both cases with an is_recurring flag. A one-time agent is charged when you create it; a recurring agent is free to create and charged $0.50 after each run. The rate-limit docs add that the old agent endpoints go as low as 2 requests per minute, while the replacement has the normal limit. If an older tutorial or your own code still calls /v1/orbit or /v1/comet, migrate it.
A Python starter that watches its own spend
This is the script I start every Virlo experiment from. It checks the balance (free), pulls today's US trends (25 cents), checks one hashtag (5 cents), handles 429s the way the docs describe, and adds up X-Cost so I know what the run cost.
import os
import time
import requests
API = "https://api.virlo.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['VIRLO_API_KEY']}"}
spent = 0.0
def get(path, **params):
"""GET a Virlo endpoint, honour Retry-After on 429, and tally X-Cost."""
global spent
for attempt in range(4):
r = requests.get(f"{API}{path}", headers=HEADERS, params=params, timeout=30)
if r.status_code == 429:
time.sleep(int(r.headers.get("Retry-After", 2 ** attempt)))
continue
r.raise_for_status() # 402 = balance too low, 404 = hashtag has no videos
spent += float(r.headers.get("X-Cost", "0"))
return r.json()["data"]
raise RuntimeError(f"still rate limited on {path}")
print("balance:", get("/account/balance")["balance"]) # free
for group in get("/trends/digest", region="us", top_exemplars=0): # $0.25
print(group["title"], "| local_date:", group["local_date"])
for item in group["trends"][:5]:
status = (item["momentum"] or {}).get("status", "not measured yet")
print(f' {item["ranking"]:>2}. {item["trend"]["name"]} [{status}]')
tag = get("/hashtags/mealprep/performance", # $0.05, no '#' in the path
start_date="2026-07-08", end_date="2026-10-05")
print(f'#{tag["hashtag"]}: {tag["video_count"]} videos, avg {tag["avg_views"]:.0f} views')
print(f"this run cost ${spent:.2f}")
Set VIRLO_API_KEY in your environment and run it. Everything in the response lives under data, field names are snake_case, and momentum can be null until Virlo has measured a trend, hence the or {}.
Details that will bite you
These are all in the docs, but scattered across pages:
-
The daily trend list rolls over at 7:00 New York time. Call before that and you get yesterday's list, even if
titlesays today. Checklocal_date, nottitle. Trends are added again at 13:00 and 19:00. -
Hashtag ranges max out at 90 days, and stats start on 1 June 2024. A 91-day range returns a
400withinvalid_date_range. -
Never put
#in the path. A raw#breaks the URL; use the bare tag or%23. -
There's no
platformparameter on hashtags. For one platform, call/v1/tiktok/hashtags,/v1/youtube/hashtagsor/v1/instagram/hashtags. Passingplatformgets you a400. -
Top-hashtag lists aren't niche-specific, so
fypandshortslead. For niche hashtags the docs point you to a content research agent. -
countis Virlo's count, not TikTok's. It's how many videos in Virlo's data used the tag in your dates. Views freeze about a week after posting. - The outlier check charges every time. Creator, sound and hashtag lookups are served free from cache for 6 hours; the video outlier check isn't, and it's billed even if the check fails.
- Rate limits are per key, per endpoint, resetting on the clock in UTC. Hashtag stats and trends allow 50 requests a minute; creator lookups and outlier checks only 5.
For AI-assistant workflows there's also an MCP server, which the developer site says exposes 46 tools to clients like Claude, Cursor and VS Code. I haven't moved anything to it yet, but it's the obvious next step for anyone already living in an agent.
Where I stop using Virlo
Virlo is excellent at the question "what's working in this niche right now?" It's less suited, at least for my clients, to "what did our competitor post on TikTok this week, and did any of it travel?" You can approximate it with tracking and agents, but you end up writing the glue: deciding which hashtags the competitor actually lives under, re-running, diffing.
That narrower job is what Reachara is built for. You name a competitor by website, @handle or hashtag; it infers up to 12 TikTok hashtags their videos run under, sweeps them on a schedule (weekly on the entry plan, daily above it), and ranks posts by plays divided by the posting account's followers. It's TikTok-only, it starts at $99/month for two monitored competitors with no free tier, and it doesn't do audience demographics or ad spend, which it says up front. For broad discovery, Virlo. For a fixed watchlist of rivals on TikTok, Reachara.
FAQ
Is Virlo free?
The app has a 7-day $0 trial, then starts at $49/month. The API has no subscription; you prepay a balance and most requests cost $0.50 or less. The balance check and re-reads of paid results are free.
Does Virlo have an API?
Yes, at https://api.virlo.ai/v1, with 25+ endpoints for trends, creators, hashtags, sounds, hooks and research agents, plus webhooks and an MCP server. Docs are at dev.virlo.ai.
What platforms does Virlo cover?
TikTok, YouTube Shorts and Instagram Reels, with the Meta Ad Library available inside research agents.
What replaced Virlo Orbit and Comet?
POST /v1/agents. Set is_recurring to false for what Orbit did and true for what Comet did.
Final notes
If you're evaluating Virlo for a team, start with the balance check and one trends call; the whole quickstart costs a quarter. Keep the API docs open, because the pricing table and rate limits are spelled out there more precisely than anywhere else. And if the real ask turns out to be "keep an eye on these three competitors on TikTok," look at Reachara before you build that pipeline yourself.
Top comments (0)