3 documented operations. Query and path fields are listed separately from JSON request-body fields.
GET/v1/hooks/types
Path and query parameters
- dimension
- string (query) · optional · values: hook_type, visual_hook_type · default: "hook_type"
- platform
- string (query) · optional · values: tiktok, youtube, instagram
- category
- string (query) · optional · values: art_design, automotive, beauty, business_career, crafts_diy, education, entertainment, fashion, finance, fitness, food_beverage, gaming, health_wellness, home_garden, kids_content, lifestyle, music, news_politics, parenting_family, pets, real_estate, relationships_dating, religion_spirituality, science_nature, sports, tech, travel, other
- sort
- string (query) · optional · values: video_count, strong_hit_rate, median_weighted_score, p90_weighted_score · default: "video_count"
Documented response fields
- data
- object · required
- data.dimension
- string · required · values: hook_type, visual_hook_type
- data.platform
- string · required
- data.category
- string · required
- data.snapshot_date
- string | null · optional
- data.types
- array · required
- data.types[].value
- string · required
- data.types[].video_count
- number · required
- data.types[].share_of_corpus
- number | null · optional
- data.types[].total_views
- number | null · optional
- data.types[].avg_views
- number | null · optional
- data.types[].median_views
- number | null · optional
- data.types[].avg_weighted_score
- number | null · optional
- data.types[].median_weighted_score
- number | null · optional
- data.types[].p90_weighted_score
- number | null · optional
- data.types[].strong_hit_rate
- number | null · optional
Documented HTTP responses: 200, 401, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/hooks/trending
Path and query parameters
- limit
- number (query) · optional · default: 20 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- content_type
- string (query) · optional · values: video, slideshow, all · default: "video"
- platform
- string (query) · optional · values: tiktok, youtube, instagram
- category
- string (query) · optional · values: art_design, automotive, beauty, business_career, crafts_diy, education, entertainment, fashion, finance, fitness, food_beverage, gaming, health_wellness, home_garden, kids_content, lifestyle, music, news_politics, parenting_family, pets, real_estate, relationships_dating, religion_spirituality, science_nature, sports, tech, travel, other
- hook_type
- string (query) · optional
- visual_hook_type
- string (query) · optional · values: text_hook, extreme_closeup, before_state, shocking_image, aesthetic_setup, person_speaking_to_camera, motion_action, crowded_scene, mystery_object, dramatic_zoom, animal_pet, product_reveal
- language
- string (query) · optional
- min_views
- number (query) · optional · minimum: 0
- days
- number (query) · optional · values: 7, 14, 30 · default: 7
- sort
- string (query) · optional · values: weighted_score, views · default: "weighted_score"
Documented response fields
- data
- array · required
- data[].hook_text
- string · required
- data[].hook_type
- string | null · optional
- data[].visual_hook_type
- string | null · optional
- data[].content_type
- string · required · values: video, slideshow
- data[].platform
- string · required · values: tiktok, youtube, instagram
- data[].category
- string | null · optional
- data[].language
- string | null · optional
- data[].brand_safety_tier
- string | null · optional
- data[].outlier_ratio
- number | null · optional
- data[].weighted_score
- number | null · optional
- data[].usage_count
- number · required
- data[].video
- object · required
- data[].video.video_id
- string · required
- data[].video.url
- string | null · optional
- data[].video.thumbnail_url
- string | null · optional
- data[].video.views
- number | null · optional
- data[].video.likes
- number | null · optional
- data[].video.comments
- number | null · optional
- data[].video.shares
- number | null · optional
- data[].video.duration
- number | null · optional
- data[].video.publish_date
- string | null · optional
- data[].video.author_handle
- string | null · optional
- data[].video.author_followers
- number | null · optional
- data[].video.is_paid
- boolean · required
- pagination
- object · required
- pagination.page
- number · required
- pagination.limit
- number · required
- pagination.total
- number | null · required
- pagination.total_pages
- number | null · required
- pagination.has_next_page
- boolean · required
- pagination.has_prev_page
- boolean · required
Documented HTTP responses: 200, 401, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/hooks/search
Path and query parameters
- limit
- number (query) · optional · default: 20 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- q
- string (query) · optional
- content_type
- string (query) · optional · values: video, slideshow, all · default: "video"
- platform
- string (query) · optional · values: tiktok, youtube, instagram
- category
- string (query) · optional · values: art_design, automotive, beauty, business_career, crafts_diy, education, entertainment, fashion, finance, fitness, food_beverage, gaming, health_wellness, home_garden, kids_content, lifestyle, music, news_politics, parenting_family, pets, real_estate, relationships_dating, religion_spirituality, science_nature, sports, tech, travel, other
- hook_type
- string (query) · optional
- visual_hook_type
- string (query) · optional · values: text_hook, extreme_closeup, before_state, shocking_image, aesthetic_setup, person_speaking_to_camera, motion_action, crowded_scene, mystery_object, dramatic_zoom, animal_pet, product_reveal
- language
- string (query) · optional
- min_views
- number (query) · optional · minimum: 0
Documented response fields
- data
- array · required
- data[].hook_text
- string · required
- data[].hook_type
- string | null · optional
- data[].visual_hook_type
- string | null · optional
- data[].content_type
- string · required · values: video, slideshow
- data[].platform
- string · required · values: tiktok, youtube, instagram
- data[].category
- string | null · optional
- data[].language
- string | null · optional
- data[].brand_safety_tier
- string | null · optional
- data[].outlier_ratio
- number | null · optional
- data[].weighted_score
- number | null · optional
- data[].usage_count
- number · required
- data[].video
- object · required
- data[].video.video_id
- string · required
- data[].video.url
- string | null · optional
- data[].video.thumbnail_url
- string | null · optional
- data[].video.views
- number | null · optional
- data[].video.likes
- number | null · optional
- data[].video.comments
- number | null · optional
- data[].video.shares
- number | null · optional
- data[].video.duration
- number | null · optional
- data[].video.publish_date
- string | null · optional
- data[].video.author_handle
- string | null · optional
- data[].video.author_followers
- number | null · optional
- data[].video.is_paid
- boolean · required
- data[].match_type
- string | null · optional · values: exact, contains, similar
- data[].match_score
- number | null · optional
- pagination
- object · required
- pagination.page
- number · required
- pagination.limit
- number · required
- pagination.total
- number | null · required
- pagination.total_pages
- number | null · required
- pagination.has_next_page
- boolean · required
- pagination.has_prev_page
- boolean · required
Documented HTTP responses: 200, 401, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.