Top-performing hooks corpus-wide
The strongest verbatim hooks across the whole Virlo corpus (~970k video hooks + ~440k slideshow hooks, growing daily), ranked by Virality Score (default) or raw views over a 7/14/30-day publish window. Each item carries the exact opening line, both hook classifications, the source post with metrics, and usage_count (how many posts open with the same hook; identical hooks are collapsed to their strongest source). Filter by platform, category, hook_type, visual_hook_type, language, or min_views. Use this for "what hooks are working right now"; use /v1/hooks/search to find hooks with a given phrasing and /v1/agents/{id}/hooks for a niche you already track. Never rank by raw views across platforms: the default Virality Score is the cross-platform signal. Top 1,000 results. $0.25 per call.
Request
- Base URL: https://api.virlo.ai
- URL: https://api.virlo.ai/v1/hooks/trending
- Auth: HTTP bearer
Query parameters
Items per page (1-100, default 20). Values above 100 are clamped.
Page number, 1-indexed (default 1).
Corpus slice: video (default), slideshow (TikTok carousels), or all.
Only hooks from this platform. Omit for all platforms.
Content category of the source video. One of the listed slugs; anything else is a 400.
Only hooks of this spoken/text hook type (e.g. tutorial_promise). The list grows over time: GET /v1/hooks/types has the current values. An unknown value is a 400 that lists them.
Filter to one first-frame visual hook type (e.g. text_hook).
ISO language code of the hook text (e.g. en, es, pt). Detected per video.
Only hooks from videos with at least this many views.
Publish-date window in days.
weighted_score (default) ranks by the Virality Score — ln(views/followers) × ln(followers) — which is comparable across creator sizes and platforms. views ranks by raw view count (never compare raw views across platforms).
Response
Example response
{
"data": [
{
"hook_text": "Stop doing this if you want clear skin",
"hook_type": "negation",
"visual_hook_type": "person_speaking_to_camera",
"language": "en",
"outlier_ratio": 27.3,
"weighted_score": 37.6,
"usage_count": 1
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 42,
"total_pages": 3,
"has_next_page": true
}
}Changes
No recorded changes to this operation across all 1 revision of this API.