virlo

Virlo social media intelligence — viral video analytics, hashtag rankings, trend digests, and social listening across YouTube, TikTok, and Instagram. Use for content strategy, trend discovery, competitive analysis, and niche monitoring.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "virlo" with this command: npx skills add VirloGit/virlo-short-form-video-training-data

Virlo

Social media intelligence for short-form video — Bloomberg for viral content.

Homepage: https://dev.virlo.ai Source: https://github.com/CalciferFriend/virlo-skill Full API docs: https://dev.virlo.ai/docs | Playground: https://dev.virlo.ai/docs/playground

Config

Set VIRLO_API_KEY environment variable. Your API key has the format virlo_tkn_<your_key> and can be obtained from the Virlo dashboard.

Context

The Virlo API provides cross-platform analytics across YouTube, TikTok, and Instagram. Key capabilities:

  • Hashtags — 500K+ hashtags ranked by usage count and total views
  • Trends — Daily curated trending topics updated at 1am UTC
  • Videos — 2M+ viral video performance data (views, likes, shares, comments)
  • Orbit — Keyword-based social listening with async analysis jobs
  • Comet — Automated niche monitoring with scheduled scraping

API Access

All endpoints use base URL https://api.virlo.ai/v1, snake_case naming, and return data in a { "data": ... } envelope.

Making Requests

Use curl directly with the VIRLO_API_KEY environment variable:

# GET request
curl -s -X GET "https://api.virlo.ai<endpoint>" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# POST request with JSON body
curl -s -X POST "https://api.virlo.ai<endpoint>" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '<json-body>'

Examples

# List top hashtags
curl -s -X GET "https://api.virlo.ai/v1/hashtags" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# Top 10 viral videos
curl -s -X GET "https://api.virlo.ai/v1/videos?limit=10" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# Daily trend digest
curl -s -X GET "https://api.virlo.ai/v1/trends" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json"

# Create an Orbit search
curl -s -X POST "https://api.virlo.ai/v1/orbit" \
  -H "Authorization: Bearer ${VIRLO_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"name":"AI research","keywords":["artificial intelligence","AI tools"]}'

API Reference

Authentication

All requests require a Bearer token:

Authorization: Bearer virlo_tkn_<your_key>

Never commit API keys to version control. Regenerate compromised keys from the dashboard.

Response Envelope

All responses use a { "data": ... } envelope. List endpoints include pagination metadata:

{
  "data": {
    "total": 500,
    "limit": 50,
    "offset": 0,
    "items": [ ... ]
  }
}

Pagination

List endpoints use offset-based pagination via limit and page query parameters:

ParameterTypeDefaultDescription
limitinteger50Items per page (1-100)
pageinteger1Page number (1-indexed)

Maximum of 1000 total results accessible via pagination.

Common Query Parameters

Many video-related endpoints support these filters:

ParameterTypeDescription
min_viewsintegerMinimum view count threshold
platformsstringComma-separated: youtube, tiktok, instagram
start_datestringISO 8601 date filter (earliest publish date)
end_datestringISO 8601 date filter (latest publish date)
order_bystringSort field (varies per endpoint)
sortstringSort direction: asc or desc (default: desc)

Platforms

  • youtube — YouTube Shorts and videos
  • tiktok — TikTok videos
  • instagram — Instagram Reels

Hashtags

Virlo tracks 500K+ hashtags ranked by usage count and total views.

List Hashtags

GET /v1/hashtags

Standard pagination (limit, page).

Response:

{
  "data": [
    {
      "hashtag": "#shorts",
      "count": 10926,
      "total_views": 869912593
    }
  ]
}
FieldTypeDescription
hashtagstringThe hashtag text (may or may not include #)
countintegerNumber of videos using this hashtag
total_viewsintegerSum of views across all videos with this tag

Trends

Daily curated trending topics updated at 1am UTC.

List Trend Groups

GET /v1/trends

Standard pagination (limit, page).

Response:

{
  "data": [
    {
      "id": "b88c0c23-8501-4975-a1e9-b7c1160c6342",
      "title": "Trends for Oct 15th",
      "trends": [
        {
          "id": "132ea402-804d-4515-b706-f3ff9c698c5e",
          "trend_id": "8ab75d1a-cb50-4885-b9b3-2e4ede2a3620",
          "trend_group_id": "b88c0c23-8501-4975-a1e9-b7c1160c6342",
          "ranking": 1,
          "trend": {
            "id": "8ab75d1a-cb50-4885-b9b3-2e4ede2a3620",
            "name": "NBA Season Opening Night",
            "description": "The 2025-26 NBA season officially tipped off...",
            "trend_type": "content"
          }
        }
      ]
    }
  ]
}
FieldTypeDescription
idstringUUID of the trend group
titlestringDisplay title (e.g., "Trends for Oct 15th")
trendsarrayArray of ranked trend entries

Trend entry fields: id, trend_id, trend_group_id, ranking, trend (object with id, name, description, trend_type).


Videos

2M+ viral videos across YouTube, TikTok, and Instagram.

List Top Videos (Cross-Platform)

GET /v1/videos
ParameterTypeDescription
limitintegerItems per page (1-100, default 50)
pageintegerPage number (1-indexed, default 1)
min_viewsintegerMinimum view count filter
platformsstringComma-separated: youtube, tiktok, instagram
start_datestringISO 8601 earliest publish date
end_datestringISO 8601 latest publish date
order_bystringpublish_date, views, created_at
sortstringasc or desc (default: desc)

Platform-Specific Endpoints

GET /v1/youtube-videos
GET /v1/tiktok-videos
GET /v1/instagram-videos

Same parameters and response shape as /v1/videos, filtered to a single platform.

Video Object Fields

FieldTypeDescription
idstringVirlo UUID
urlstringOriginal video URL
publish_datestringISO 8601 publish timestamp
viewsintegerView count
number_of_likesintegerLike count
number_of_commentsintegerComment count
descriptionstringVideo description
thumbnail_urlstringThumbnail image URL
hashtagsstring[]Extracted hashtags
typestringPlatform: youtube, tiktok, instagram
nichestringContent niche category
author_idstringUUID of the video author
bookmarksintegerBookmark/save count
external_idstringPlatform-specific video ID
regionstring/nullGeographic region code
durationintegerDuration in seconds
transcript_rawstring/nullRaw video transcript (when available)

Orbit — Social Listening

Queue keyword-based video discovery jobs that search across platforms. Supports async analysis, Meta ads collection, and creator outlier detection.

Create Orbit Search

POST /v1/orbit
FieldTypeRequiredDescription
namestringYesDescriptive name for the search job
keywordsstring[]YesKeywords to search (1-10)
platformsstring[]NoPlatforms: youtube, tiktok, instagram. Default: all
min_viewsintegerNoMinimum view count threshold
time_periodstringNotoday, this_week, this_month, this_year
run_analysisbooleanNoEnable AI social intelligence analysis (default: false)
enable_meta_adsbooleanNoEnable Meta ads collection (default: false)
exclude_keywordsstring[]NoKeywords to exclude from results
exclude_keywords_strictbooleanNoAlso check transcripts for exclusions (default: false)

List Orbit Searches

GET /v1/orbit

Paginated list of all search jobs. Standard limit/page parameters.

Get Orbit Results

GET /v1/orbit/:orbit_id

Poll until job completes. When run_analysis: true, includes AI analysis report.

Query params: order_by (views, likes, shares, comments, bookmarks, publish_date, author.followers), sort (asc/desc).

Response fields: name, keywords, analysis (markdown AI report when ready), results (contains total_videos, platform counts, trends, videos, ads, creators).

Get Orbit Videos (Paginated)

GET /v1/orbit/:orbit_id/videos

Standard pagination plus min_views, platforms, start_date, end_date, order_by, sort.

Get Orbit Ads

GET /v1/orbit/:orbit_id/ads

Meta ads collected (requires enable_meta_ads: true). Pagination plus order_by (created_at, page_like_count), sort.

Get Creator Outliers

GET /v1/orbit/:orbit_id/creators/outliers

Creators outperforming their follower count. High outlier_ratio = content reaching far beyond follower base. Standard pagination.


Comet — Automated Niche Monitoring

Create niche configs that automatically discover videos, ads, and creator outliers on a schedule.

Create Comet Config

POST /v1/comet
FieldTypeRequiredDescription
namestringYesDescriptive name (e.g., "Tech Reviews")
keywordsstring[]YesKeywords to search (1-20)
platformsstring[]YesPlatforms: youtube, tiktok, instagram
cadencestringYesdaily, weekly, monthly, or cron expression
min_viewsintegerYesMinimum view count threshold
time_rangestringYestoday, this_week, this_month, this_year
is_activebooleanNoDefault: true. Set false to create paused
meta_ads_enabledbooleanNoEnable Meta ads collection (default: false)
exclude_keywordsstring[]NoKeywords to exclude
exclude_keywords_strictbooleanNoAlso check transcripts for exclusions (default: false)

List Comet Configs

GET /v1/comet

Add ?include_inactive=true to include deactivated configs.

Get / Update / Delete Comet Config

GET /v1/comet/:id
PUT /v1/comet/:id       # Full replacement — all required fields must be provided
DELETE /v1/comet/:id     # Soft-delete, returns 204

Get Comet Videos

GET /v1/comet/:id/videos

Standard pagination plus min_views, platforms, start_date, end_date, order_by, sort.

Get Comet Ads

GET /v1/comet/:id/ads

Requires meta_ads_enabled: true. Standard pagination plus order_by (created_at, page_like_count), sort.

Get Creator Outliers

GET /v1/comet/:id/creators/outliers

Standard pagination.


Error Handling

CodeNameDescription
200OKRequest processed successfully
201CreatedResource created
202AcceptedAsync job queued (e.g., Orbit search)
204No ContentSuccessful deletion
400Bad RequestInvalid request parameters
401UnauthorizedMissing or invalid API key
403ForbiddenInsufficient permissions
404Not FoundResource not found
422Unprocessable EntityValid syntax but cannot process
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer error

Error response format:

{
  "error": {
    "type": "validation_error",
    "message": "keywords is required",
    "param": "keywords"
  }
}

Rate Limits

  • Max limit per request: 100 items
  • Max total accessible results: 1,000 items per query
  • On 429, back off and retry after the retry_after value (in seconds)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

SQL Data Analyst

Natural language to SQL. Ask questions about your data in plain English, get queries, results, and explanations. Supports SQLite, PostgreSQL, and MySQL. Impo...

Registry SourceRecently Updated
721Profile unavailable
General

Video Analyzer (TikTok + YouTube + Instagram)

Analyze videos from TikTok, YouTube, Instagram, Twitter, and others by URL, transcribing audio locally and answering questions about the content.

Registry SourceRecently Updated
8995Profile unavailable
General

Data Engineering

Design and operate scalable data pipelines and architectures using best-fit patterns, tools, and modeling methodologies without external dependencies.

Registry SourceRecently Updated
4390Profile unavailable
Research

Social Insights

Social media analytics and performance tracking. Track engagement, optimal posting times, competitor analysis, AI-powered insights, auto-generated charts, an...

Registry SourceRecently Updated
1340Profile unavailable