Retrieve viral TikTok content filtered by categories, countries, views, virality and follower ranges, dates, music and hook, AI tag arrays and text-contains fields, and boolean content flags. See ViralPostsRequest in components/schemas.
API key for TopYappers API authentication
Results are always sorted by post creation time, newest first. There are no sortBy/sortOrder fields; use dateCreatedFrom/dateCreatedTo to limit the time range. For array fields of analyzed tags, the API matches posts where the corresponding field equals any one of the supplied values (logical OR per field). Omit optional filters or use empty arrays / null to leave them unset.
Filter by content categories
Arts, Automotive, Beauty & Personal Care, Books & Literature, Business, Finance, Career & Jobs, Collectibles & Hobbies, Community, Ecommerce, Crafts & DIY, Culture, Education, Technology, Entertainment, Environment, Family, Parenting, Fashion, Film, Fitness, Health, Food, Gaming, Gardening & Agriculture, History, Home, Humor, Law, Government, Lifestyle, Marketing, Mental Health, Music, News & Media, Outdoors, Nature, Pets, Animals, Philosophy, Spirituality, Photography, Videography, Politics, Relationships, Religion, Science, Self-Improvement, Shopping, Social Media, Social Issues & Activism, Sports, Travel, Vehicles & Transportation, Virtual Reality, Weapons & Defense, Writing, Kids ["comedy"]Filter by countries (use full country names)
United States, China, Japan, Germany, United Kingdom, India, France, Canada, Italy, South Korea, Australia, Brazil, Spain, Mexico, Indonesia, Netherlands, Saudi Arabia, Turkey, Switzerland, Taiwan, Poland, Sweden, Belgium, Thailand, Argentina, Nigeria, Austria, Iran, Norway, United Arab Emirates, Ireland, Israel, South Africa, Denmark, Singapore, Malaysia, Philippines, Hong Kong, Colombia, Bangladesh, Egypt, Finland, Chile, Vietnam, Czechia, Romania, New Zealand, Portugal, Greece, Iraq, Qatar, Peru, Hungary, Kuwait, Ukraine, Morocco, Slovakia, Puerto Rico, Ecuador, Oman, Kenya, Luxembourg, Cuba, Sri Lanka, Uzbekistan, Bulgaria, Croatia, Côte d'Ivoire, Belarus, Uruguay, Panama, Slovenia, Turkmenistan, Lithuania, Lebanon, Tanzania, Jordan, Bahrain, Serbia, Cameroon, Bolivia, Paraguay, Ghana, Estonia, Uganda, Zambia, Afghanistan, Bosnia and Herzegovina, Mozambique, Armenia, Georgia, Honduras, Albania, Madagascar, Namibia, Senegal, Malta, Chad, Niger, Mali, Kyrgyzstan, Malawi, Rwanda, Burundi, Comoros, Lesotho, Tajikistan, Suriname, Montenegro, Eswatini, Sierra Leone, Gambia, Guyana, Timor-Leste, Mauritania, Burkina Faso, Liberia, Cape Verde, Mauritius, Bhutan, Benin, Central African Republic, Togo, Guinea, Gabon, São Tomé and Príncipe, Equatorial Guinea, Antigua and Barbuda, Belize, Barbados, Saint Kitts and Nevis, Vanuatu, Solomon Islands, Saint Vincent and the Grenadines, Fiji, Samoa, Tonga, Dominica, Russia, Other ["United States"]Minimum number of views
100000
Maximum number of views
10000000
Minimum virality score
0.5
Maximum virality score
1
Minimum number of followers
1000
Maximum number of followers
1000000
Filter posts created on or after this date (YYYY-MM-DD)
"2024-01-01"
Filter posts created on or before this date (YYYY-MM-DD)
"2024-12-31"
Filter by music/sound title (case-insensitive, partial match)
"original sound"
Filter by video hook text (case-insensitive, partial match)
"wait for it"
Exact match on analyzed content_format. Posts matching any listed value are included.
Analyzed primary content format (stored as content_format). Must match exactly.
talking_head, voiceover, slideshow, skit, tutorial, vlog, challenge, reaction, product_review, asmr, before_after, storytime, grwm, unboxing, compilation, interview, day_in_life, pov, dance, lip_sync, cooking, fitness, diy, meme, music_video, podcast_clip, gaming, other Exact match on analyzed content_tone. Posts matching any listed value are included.
Analyzed content tone (stored as content_tone). Must match exactly.
funny, serious, educational, emotional, shocking, inspiring, controversial, relatable, aesthetic, dramatic, wholesome, sarcastic, informative, provocative, calming, energetic, nostalgic, suspenseful, motivational, romantic Exact match on analyzed visual_style. Posts matching any listed value are included.
Analyzed visual style (stored as visual_style). Must match exactly.
minimalist, colorful, dark, bright, pastel, neon, vintage, natural, cinematic, raw, polished, lo_fi, high_contrast, warm, cool, aesthetic, luxurious, gritty Exact match on analyzed filming setting (stored as setting). Posts matching any listed value are included.
Analyzed filming setting (stored as setting; request field videoSettings). Must match exactly.
indoor, outdoor, studio, car, gym, kitchen, bedroom, bathroom, office, nature, restaurant, store, street, beach, travel, event, school, medical, other Exact match on analyzed target_demographic. Posts matching any listed value are included.
Analyzed target audience (stored as target_demographic). Must match exactly.
gen_z, gen_alpha, millennial, gen_x, boomer, all_ages, teens, young_adults, parents, professionals, students, women, men Exact match on analyzed production_quality. Posts matching any listed value are included.
Analyzed production quality tier (stored as production_quality). Must match exactly.
low, medium, high, professional Exact match on analyzed cta_type. Posts matching any listed value are included.
Analyzed call-to-action type (stored as cta_type). Must match exactly.
none, follow, like, comment, share, link_in_bio, shop, subscribe, download, save, other Exact match on analyzed primary_emotion. Posts matching any listed value are included.
Analyzed dominant emotion (stored as primary_emotion). Must match exactly.
joy, surprise, fear, anger, sadness, neutral, excitement, curiosity, amusement, awe, desire, nostalgia, satisfaction, empathy Case-insensitive substring match on analyzed video topic (video_topic). The string is matched literally (special regex characters are escaped).
Case-insensitive substring match on analyzed content niche / category (content_category).
Case-insensitive substring match on analyzed product category (product_category).
Case-insensitive substring match on analyzed brand mention text (brand_mentioned).
Case-insensitive substring match on analyzed color palette description (color_palette).
When true, only posts analyzed as having a visible face. When false, only posts without. Omit for no filter.
When true, only posts with a visible product. When false, only without. Omit for no filter.
When true, only branded or sponsored-style posts. When false, exclude those. Omit for no filter.
When true, only promotional posts. When false, only non-promotional. Omit for no filter.
When true, only posts with on-screen text overlay. When false, only without. Omit for no filter.
When true, only posts tagged as a trending format. When false, only not. Omit for no filter.
When true, only posts with an AI-generated look. When false, only not. Omit for no filter.
Page number for pagination
x >= 11
Number of results per page (default: 12)
1 <= x <= 10012
Successful response with viral posts
"OK"
Results are always sorted by post creation time, newest first. There are no sortBy/sortOrder fields; use dateCreatedFrom/dateCreatedTo to limit the time range. For array fields of analyzed tags, the API matches posts where the corresponding field equals any one of the supplied values (logical OR per field). Omit optional filters or use empty arrays / null to leave them unset.