What to build with it
- Find existing schedules and decide which should continue.
- Create an equivalent recurring agent and review cadence and autonomy explicitly.
- Stop the old schedule after verifying the replacement to avoid duplicate collection and billing.
Provider reference: Virlo documentation. Authentication uses a provider-issued Bearer token, stored on your server.
Endpoints and inputs
19 documented operations. Query and path fields are listed separately from JSON request-body fields.
POST/v1/cometDeprecated
No path or query parameters are declared in the captured schema.
JSON body fields
- name
- string · required
- keywords
- array · required
- platforms
- array · required
- cadence
- string · required
- min_views
- number · optional
- time_range
- string · optional · values: today, this_week, this_month, this_year
- is_active
- boolean · optional · default: true
- meta_ads_enabled
- boolean · optional · default: false
- exclude_keywords
- array · optional
- exclude_keywords_strict
- boolean · optional · default: false
- intent
- string · optional
- data_intelligence_enabled
- boolean · optional · default: false
- english_only
- boolean · optional · default: true
Documented response fields
- data
- object · required
- data.id
- string · required
- data.name
- string · required
- data.keywords
- array · required
- data.platforms
- array · required
- data.cadence
- string · required
- data.min_views
- number · required
- data.time_range
- string · required
- data.is_active
- boolean · required
- data.is_processing
- boolean · required
- data.meta_ads_enabled
- boolean · required
- data.data_intelligence_enabled
- boolean · required
- data.last_run_at
- string | null · optional
- data.next_run_at
- string | null · optional
- data.created_at
- string · required
- data.updated_at
- string · required
- data.initial_job_id
- string | null · optional
- message
- string · required
Documented HTTP responses: 201, 400, 401, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/cometDeprecated
Path and query parameters
- include_inactive
- string (query) · optional
Documented response fields
- data
- object · required
- data.total
- number · required
- data.configurations
- array · required
- data.configurations[].id
- string · required
- data.configurations[].name
- string · required
- data.configurations[].keywords
- array · required
- data.configurations[].platforms
- array · required
- data.configurations[].cadence
- string · required
- data.configurations[].min_views
- number · required
- data.configurations[].time_range
- string · required
- data.configurations[].is_active
- boolean · required
- data.configurations[].is_processing
- boolean · required
- data.configurations[].meta_ads_enabled
- boolean · required
- data.configurations[].data_intelligence_enabled
- boolean · required
- data.configurations[].last_run_at
- string | null · optional
- data.configurations[].next_run_at
- string | null · optional
- data.configurations[].created_at
- string · required
- data.configurations[].updated_at
- string · 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/comet/listDeprecated
No path or query parameters are declared in the captured schema.
Documented response fields
- data
- object · required
- data.total
- number · required
- data.configurations
- array · required
- data.configurations[].id
- string · required
- data.configurations[].name
- string · required
- data.configurations[].keywords
- array · required
- data.configurations[].platforms
- array · required
- data.configurations[].cadence
- string · required
- data.configurations[].min_views
- number · required
- data.configurations[].time_range
- string · required
- data.configurations[].is_active
- boolean · required
- data.configurations[].is_processing
- boolean · required
- data.configurations[].meta_ads_enabled
- boolean · required
- data.configurations[].data_intelligence_enabled
- boolean · required
- data.configurations[].last_run_at
- string | null · optional
- data.configurations[].next_run_at
- string | null · optional
- data.configurations[].created_at
- string · required
- data.configurations[].updated_at
- string · 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/comet/{id}Deprecated
Path and query parameters
- id
- string (path) · required
Documented response fields
- data
- object · required
- data.id
- string · required
- data.name
- string · required
- data.keywords
- array · required
- data.platforms
- array · required
- data.cadence
- string · required
- data.min_views
- number · required
- data.time_range
- string · required
- data.is_active
- boolean · required
- data.is_processing
- boolean · required
- data.meta_ads_enabled
- boolean · required
- data.data_intelligence_enabled
- boolean · required
- data.last_run_at
- string | null · optional
- data.next_run_at
- string | null · optional
- data.created_at
- string · required
- data.updated_at
- string · required
- data.intent
- string | null · optional
- data.analysis
- string | null · optional
- data.analysis_data
- object | null · optional
- data.analysis_batch_start
- string | null · optional
- data.analysis_batch_end
- string | null · optional
- data.finalized
- boolean · optional
- data.pending_jobs
- array · optional
- data.pending_jobs[].type
- string · required · values: viral_analysis, audience_demographics, audience_geography, tracking_report, data_intelligence
- data.pending_jobs[].status
- string · required · values: pending, processing
- data.pending_jobs[].job_id
- string · optional
- data.pending_jobs[].poll_url
- string · optional
- data.pending_jobs[].result_path
- string · optional
- data.pending_jobs[].webhook_event
- string · optional
- data.pending_jobs[].started_at
- string · optional
- data.pending_jobs[].retry_after_seconds
- number · optional
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
PUT/v1/comet/{id}Deprecated
Path and query parameters
- id
- string (path) · required
JSON body fields
- name
- string · optional
- keywords
- array · optional
- platforms
- array · optional
- cadence
- string · optional
- min_views
- number · optional
- time_range
- string · optional · values: today, this_week, this_month, this_year
- is_active
- boolean · optional · default: true
- meta_ads_enabled
- boolean · optional · default: false
- exclude_keywords
- array · optional
- exclude_keywords_strict
- boolean · optional · default: false
- intent
- string · optional
- data_intelligence_enabled
- boolean · optional · default: false
- english_only
- boolean · optional · default: true
Documented response fields
- data
- object · required
- data.id
- string · required
- data.name
- string · required
- data.keywords
- array · required
- data.platforms
- array · required
- data.cadence
- string · required
- data.min_views
- number · required
- data.time_range
- string · required
- data.is_active
- boolean · required
- data.is_processing
- boolean · required
- data.meta_ads_enabled
- boolean · required
- data.data_intelligence_enabled
- boolean · required
- data.last_run_at
- string | null · optional
- data.next_run_at
- string | null · optional
- data.created_at
- string · required
- data.updated_at
- string · required
- message
- string · required
Documented HTTP responses: 200, 400, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
DELETE/v1/comet/{id}Deprecated
Path and query parameters
- id
- string (path) · required
The captured schema does not enumerate structured response fields for this operation. Check its current provider reference.
Documented HTTP responses: 204, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/videosDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- min_views
- number (query) · optional
- platforms
- array (query) · optional
- start_date
- string (query) · optional
- end_date
- string (query) · optional
- order_by
- string (query) · optional · values: publish_date, views, created_at
- sort
- string (query) · optional · values: asc, desc · default: "desc"
- intent_match
- boolean (query) · optional
Documented response fields
- data
- object · required
- data.custom_niche_id
- string · required
- data.custom_niche_name
- string · optional
- data.total
- number · required
- data.limit
- number · required
- data.offset
- number · required
- data.videos
- array · required
- data.videos[].id
- string · required
- data.videos[].url
- string · required
- data.videos[].description
- string | null · optional
- data.videos[].hashtags
- array · optional
- data.videos[].publish_date
- string | null · optional
- data.videos[].created_at
- string · required
- data.videos[].views
- number · required
- data.videos[].number_of_comments
- number · required
- data.videos[].number_of_likes
- number · required
- data.videos[].number_of_shares
- number · required
- data.videos[].thumbnail_url
- string | null · optional
- data.videos[].platform
- string · required · values: tiktok, youtube, instagram
- data.videos[].type
- string · required
- data.videos[].author
- object | null · optional
- data.videos[].sound
- object | null · optional
- data.videos[].linked_at
- string · required
- data.videos[].intelligence
- object | null · optional
- data.videos[].intelligence_status
- string · optional · values: ready, pending, disabled, failed, skipped
- data.videos[].intelligence_skip_reason
- string | null · optional · values: intent_mismatch, too_old, under_followers
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/slideshowsDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- min_views
- number (query) · optional
- platforms
- array (query) · optional
- start_date
- string (query) · optional
- end_date
- string (query) · optional
- order_by
- string (query) · optional · values: publish_date, views, created_at
- sort
- string (query) · optional · values: asc, desc · default: "desc"
- intent_match
- boolean (query) · optional
Documented response fields
- data
- object · required
- data.custom_niche_id
- string · required
- data.custom_niche_name
- string · optional
- data.total
- number · required
- data.limit
- number · required
- data.offset
- number · required
- data.slideshows
- array · required
- data.slideshows[].id
- string · required
- data.slideshows[].url
- string · required
- data.slideshows[].description
- string | null · optional
- data.slideshows[].hashtags
- array · optional
- data.slideshows[].publish_date
- string | null · optional
- data.slideshows[].created_at
- string · required
- data.slideshows[].views
- number · required
- data.slideshows[].comments
- number · required
- data.slideshows[].likes
- number · required
- data.slideshows[].shares
- number · required
- data.slideshows[].bookmarks
- number | null · optional
- data.slideshows[].thumbnail_url
- string | null · optional
- data.slideshows[].images
- array · required
- data.slideshows[].platform
- string · required · values: tiktok, youtube, instagram
- data.slideshows[].type
- string · required
- data.slideshows[].author
- object | null · optional
- data.slideshows[].linked_at
- string · required
- data.slideshows[].intelligence
- object | null · optional
- data.slideshows[].intelligence_status
- string · optional · values: ready, pending, disabled, failed, skipped
- data.slideshows[].intelligence_skip_reason
- string | null · optional · values: intent_mismatch, too_old, under_followers
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/adsDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- order_by
- string (query) · optional · values: created_at, page_like_count · default: "created_at"
- sort
- string (query) · optional · values: asc, desc · default: "desc"
Documented response fields
- data
- object · required
- data.custom_niche_id
- string · required
- data.custom_niche_name
- string · optional
- data.total
- number · required
- data.limit
- number · required
- data.offset
- number · required
- data.ads
- array · required
- data.ads[].id
- number · required
- data.ads[].ad_archive_id
- string | null · required
- data.ads[].page_id
- string | null · required
- data.ads[].page_profile_url
- string | null · optional
- data.ads[].page_profile_picture_url
- string | null · optional
- data.ads[].is_active
- boolean | null · optional
- data.ads[].start_date
- string | null · optional
- data.ads[].end_date
- string | null · optional
- data.ads[].url
- string | null · optional
- data.ads[].caption
- string | null · optional
- data.ads[].body
- string | null · optional
- data.ads[].cta_type
- string | null · optional
- data.ads[].page_like_count
- number | null · optional
- data.ads[].title
- string | null · optional
- data.ads[].video_url
- string | null · optional
- data.ads[].created_at
- string · required
- data.ads[].linked_at
- string · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/creators/outliersDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- order_by
- string (query) · optional · values: outlier_ratio, avg_views, follower_count, weighted_score, rising · default: "outlier_ratio"
- sort
- string (query) · optional · values: asc, desc · default: "desc"
- platform
- string (query) · optional · values: youtube, tiktok, instagram
- follower_tier
- string (query) · optional · values: nano, micro, mid, macro
- category
- string (query) · optional
Documented response fields
- data
- object · required
- data.comet_id
- string · required
- data.comet_name
- string · optional
- data.total
- number · required
- data.limit
- number · required
- data.offset
- number · required
- data.hasMore
- boolean · required
- data.outliers
- array · required
- data.outliers[].author_id
- string | null · required
- data.outliers[].creator_url
- string | null · required
- data.outliers[].creator_avatar_url
- string | null · required
- data.outliers[].follower_count
- number | null · required
- data.outliers[].avg_views
- number | null · required
- data.outliers[].outlier_ratio
- number | null · required
- data.outliers[].weighted_score
- number · optional
- data.outliers[].videos_analyzed
- number · required
- data.outliers[].creator_topics
- array · required
- data.outliers[].matching_topics
- array · required
- data.outliers[].platform
- string | null · required
- data.outliers[].identified_at
- string | null · required
- data.outliers[].median_views
- number | null · optional
- data.outliers[].top_video_views
- number | null · optional
- data.outliers[].breakout_video_count
- number · optional
- data.outliers[].avg_engagement_rate
- number | null · optional
- data.outliers[].posts_per_week
- number | null · optional
- data.outliers[].content_angle
- string | null · optional
- data.outliers[].growth_followers
- number | null · optional
- data.outliers[].growth_views
- number | null · optional
- data.outliers[].growth_video_count
- number | null · optional
- data.outliers[].local_video_count
- number · optional
- data.outliers[].videos
- array · optional
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/hashtagsDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- sort
- string (query) · optional · values: volume, growth, avg_views · default: "volume"
Documented response fields
- data
- array · required
- data[].hashtag
- string · required
- data[].video_count
- number · required
- data[].total_views
- number · required
- data[].avg_views
- number · required
- data[].avg_engagement
- number · required
- data[].growth_video_count
- number | null · optional
- data[].lifecycle
- string · required · values: new, rising, steady, fading
- data[].top_creators
- array · required
- data[].top_creators[].username
- string · required
- data[].top_creators[].avatar_url
- string | null · optional
- data[].top_creators[].video_count
- number · required
- pagination
- object · required
- pagination.page
- number · required
- pagination.limit
- number · required
- pagination.total
- number · required
- pagination.total_pages
- number · required
- pagination.has_next_page
- boolean · required
- pagination.has_prev_page
- boolean · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/benchmarksDeprecated
Path and query parameters
- id
- string (path) · required
Documented response fields
- data
- array · required
- data[].follower_tier
- string · required · values: macro, mid, micro, nano, unknown
- data[].creator_count
- number · required
- data[].median_engagement_rate
- number | null · optional
- data[].median_followers
- number | null · optional
- data[].median_videos_in_niche
- number | null · optional
- data[].median_posting_frequency_days
- number | null · optional
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/affinityDeprecated
Path and query parameters
- id
- string (path) · required
Documented response fields
- data
- object · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/creators/{creator_id}/similarDeprecated
Path and query parameters
- id
- string (path) · required
- creator_id
- string (path) · required
- limit
- number (query) · optional · default: 20 · minimum: 1 · maximum: 100
Documented response fields
- data
- array · required
- data[].author_id
- string · required
- data[].username
- string · required
- data[].avatar_url
- string | null · optional
- data[].url
- string | null · optional
- data[].verified
- boolean · required
- data[].followers
- number | null · optional
- data[].shared_hashtag_count
- number · required
- data[].shared_sound_count
- number · required
- data[].similarity_score
- number · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/trends/latestDeprecated
Path and query parameters
- id
- string (path) · required
Documented response fields
- data
- object · required
- data.reference_id
- string · required
- data.insight_type
- string · required · values: custom_niche, orbit
- data.viral_insight_id
- string | null · optional
- data.batch_start
- string | null · optional
- data.batch_end
- string | null · optional
- data.total
- number · required
- data.trends
- array · required
- data.trends[].id
- string · required
- data.trends[].viral_insight_id
- string · required
- data.trends[].insight_type
- string · required · values: custom_niche, orbit
- data.trends[].reference_id
- string · required
- data.trends[].batch_start
- string · required
- data.trends[].batch_end
- string · required
- data.trends[].rank
- number · required
- data.trends[].stable_key
- string · required
- data.trends[].name
- string · required
- data.trends[].why_it_works
- string | null · optional
- data.trends[].tactics
- array · optional
- data.trends[].confidence
- number | null · optional
- data.trends[].evidence_video_ids
- array · optional
- data.trends[].evidence_videos
- array | null · optional
- data.trends[].video_count
- number | null · optional
- data.trends[].total_views
- number | null · optional
- data.trends[].total_likes
- number | null · optional
- data.trends[].total_comments
- number | null · optional
- data.trends[].total_shares
- number | null · optional
- data.trends[].avg_virality_score
- number | null · optional
- data.trends[].platform_breakdown
- object | null · optional
- data.trends[].top_creators
- array | null · optional
- data.trends[].peak_hour_utc
- number | null · optional
- data.trends[].status
- string | null · optional · values: new, rising, steady, fading
- data.trends[].first_seen_at
- string | null · optional
- data.trends[].prev_video_count
- number | null · optional
- data.trends[].prev_total_views
- number | null · optional
- data.trends[].created_at
- string · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/trendsDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- stable_key
- string (query) · optional
- start_date
- string (query) · optional
- end_date
- string (query) · optional
Documented response fields
- data
- array · required
- data[].id
- string · required
- data[].viral_insight_id
- string · required
- data[].insight_type
- string · required · values: custom_niche, orbit
- data[].reference_id
- string · required
- data[].batch_start
- string · required
- data[].batch_end
- string · required
- data[].rank
- number · required
- data[].stable_key
- string · required
- data[].name
- string · required
- data[].why_it_works
- string | null · optional
- data[].tactics
- array · optional
- data[].confidence
- number | null · optional
- data[].evidence_video_ids
- array · optional
- data[].evidence_videos
- array | null · optional
- data[].video_count
- number | null · optional
- data[].total_views
- number | null · optional
- data[].total_likes
- number | null · optional
- data[].total_comments
- number | null · optional
- data[].total_shares
- number | null · optional
- data[].avg_virality_score
- number | null · optional
- data[].platform_breakdown
- object | null · optional
- data[].top_creators
- array | null · optional
- data[].top_creators[].username
- string | null · optional
- data[].top_creators[].platform
- string | null · optional
- data[].top_creators[].followers
- number | null · optional
- data[].top_creators[].video_count
- number | null · optional
- data[].top_creators[].total_views
- number | null · optional
- data[].peak_hour_utc
- number | null · optional
- data[].status
- string | null · optional · values: new, rising, steady, fading
- data[].first_seen_at
- string | null · optional
- data[].prev_video_count
- number | null · optional
- data[].prev_total_views
- number | null · optional
- data[].created_at
- string · required
- pagination
- object · required
- pagination.page
- number · required
- pagination.limit
- number · required
- pagination.total
- number · required
- pagination.total_pages
- number · required
- pagination.has_next_page
- boolean · required
- pagination.has_prev_page
- boolean · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/analysis/latestDeprecated
Path and query parameters
- id
- string (path) · required
Documented response fields
- data
- object | null · required
- data.id
- string · required
- data.insight_type
- string · required · values: custom_niche, orbit
- data.reference_id
- string · required
- data.batch_start
- string · required
- data.batch_end
- string · required
- data.analysis
- string | null · optional
- data.analysis_data
- object · required
- data.video_count
- number | null · optional
- data.analyzed_video_ids
- array · optional
- data.created_at
- string · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{id}/analysisDeprecated
Path and query parameters
- id
- string (path) · required
- limit
- number (query) · optional · default: 50 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- start_date
- string (query) · optional
- end_date
- string (query) · optional
Documented response fields
- data
- array · required
- data[].id
- string · required
- data[].insight_type
- string · required · values: custom_niche, orbit
- data[].reference_id
- string · required
- data[].batch_start
- string · required
- data[].batch_end
- string · required
- data[].analysis
- string | null · optional
- data[].analysis_data
- object · required
- data[].video_count
- number | null · optional
- data[].analyzed_video_ids
- array · optional
- data[].created_at
- string · required
- pagination
- object · required
- pagination.page
- number · required
- pagination.limit
- number · required
- pagination.total
- number · required
- pagination.total_pages
- number · required
- pagination.has_next_page
- boolean · required
- pagination.has_prev_page
- boolean · required
Documented HTTP responses: 200, 401, 404, 429. Handle each non-success response explicitly; do not silently convert a failed lookup to an empty result.
GET/v1/comet/{comet_id}/soundsDeprecated
Path and query parameters
- comet_id
- string (path) · required
- limit
- number (query) · optional · default: 20 · minimum: 1 · maximum: 100
- page
- number (query) · optional · default: 1 · minimum: 1
- sort
- string (query) · optional · values: video_count, usage_count, rising, growth_7d · default: "video_count"
Documented response fields
- data
- array · required
- data[].id
- string · required
- data[].external_id
- string | null · optional
- data[].title
- string · required
- data[].platform
- string · required · values: tiktok, youtube, instagram
- data[].duration
- number | null · optional
- data[].cover_url
- string | null · optional
- data[].owner_handle
- string | null · optional
- data[].owner_nickname
- string | null · optional
- data[].is_original
- boolean | null · optional
- data[].is_commerce_music
- boolean | null · optional
- data[].usage_count
- number | null · optional
- data[].video_count
- number · required
- data[].avg_views
- number · required
- data[].growth_video_count
- number | null · optional
- data[].growth_views
- number | null · optional
- data[].lifecycle
- string · optional · values: new, rising, steady, fading
- pagination
- object · required
- pagination.page
- number · required
- pagination.limit
- number · required
- pagination.total
- number · required
- pagination.total_pages
- number · 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.
Before you integrate
- These routes are deprecated. Do not assume historical Comet IDs can be used as current agent IDs.
Check the provider's current price, allowed use and retention terms before sending requests. An optional field can be absent; the schema alone does not establish its completeness or accuracy.
Give this task to your coding agent
Help me implement virlo comet endpoint migration reference using the documented Virlo API.
Reference: https://allthemapis.com/social-media-apis/virlo-comet-migration
Provider documentation: https://dev.virlo.ai/docs/comet
Base URL: https://api.virlo.ai
Starting operation: POST /v1/comet
Read the current provider docs and confirm the required inputs before writing code. Load VIRLO_API_KEY from a server-side environment variable and use Bearer authentication. Do not put the key in client code, logs, analytics, or the chat.
Ask me for any missing video URL, creator handle, research intent, or job ID. Do not invent a result. Ask for approval before starting billable lookups, recurring jobs, or destructive changes. For jobs, keep the returned ID and poll with the documented delay instead of starting the job twice. Handle pagination, rate limits, partial results, and missing fields explicitly.
Build the smallest integration for this task:
1. Find existing schedules and decide which should continue.
2. Create an equivalent recurring agent and review cadence and autonomy explicitly.
3. Stop the old schedule after verifying the replacement to avoid duplicate collection and billing.
Return the code, the environment variables I need, and a short explanation of what was actually retrieved versus inferred. Do not execute paid requests until I approve.Sources and review dates
Virlo's public documentation and OpenAPI schema reviewed October 27, 2026. Endpoint paths and field names below refer to that provider's API. This is an integration reference, not a measured performance ranking.
Corrections: email faizank@docsalot.dev with an official source.