---
title: "Get breakout sounds"
method: GET
path: "/v1/sounds/breakout"
tags: ["Sounds"]
---

# Get breakout sounds

`GET /v1/sounds/breakout`

## Request

- Base URL: `https://api.virlo.ai`
- URL: `https://api.virlo.ai/v1/sounds/breakout`
- Auth: HTTP bearer

Returns sounds accelerating fastest off a small base. Ranked by `acceleration` = (videos_7d + 1) / (prior_weekly + 1), where `prior_weekly` is the average videos/week over the prior 4 weeks (days 8–35). Distinct from `/sounds/trending`: trending favours the largest absolute weekly volume (e.g. a mature sound still gaining 100 videos/week), while breakout favours sounds that jumped from a small baseline to a burst this week (e.g. ~2/week → 40 this week = 20× acceleration). Gated to real breakouts: videos_7d ≥ `min_recent`, prior 4-week videos in [`min_baseline`, 200], acceleration ≥ 2. Legacy `burst_ratio` and `breakout_score` fields are still returned for backward compatibility.

## Query parameters

- `platform` 'tiktok' | 'youtube' | 'instagram'
- `limit` number
- `page` number
- `min_recent` number
- `min_baseline` number
- `commerce_only` boolean

## Response `200`

- BreakoutSoundsResponseDto
  - `data` BreakoutSoundItemDto[], required
    - `id` string, required: Virlo's internal sound ID (UUID). Use this for the /v1/sounds/:sound_id family (details, videos, usage-history, resolve). For the satellite sound lookup prefer `external_id`, though passing this UUID also works — it is auto-resolved to the sound's platform + external_id.
    - `external_id` string, nullable: Platform-native sound identifier (TikTok music/clip id, or Instagram audio id). This is the `music_id` accepted by the satellite sound lookup — call GET /v1/satellite/sounds/{platform}/{external_id} for TikTok or Instagram sounds. YouTube sounds are not supported (you'll get a 400). Null for sounds without a platform id.
    - `title` string, required
    - `platform` 'tiktok' | 'youtube' | 'instagram', required
    - `duration` number, nullable: Duration in seconds. Available on TikTok only.
    - `cover_url` string, nullable: Sound cover image URL. Available on TikTok and YouTube. Always an absolute URL (or null). Images Virlo stores are served from https://auth.virlo.ai/storage/v1/object/public/<bucket>/; platform CDN links are passed through. Some files are HEIC, which most non-Safari browsers cannot render, so convert before display if you need to.
    - `owner_handle` string, nullable: Sound owner handle. Partially available on TikTok (~12%).
    - `owner_nickname` string, nullable: Sound owner display name. Available on TikTok, YouTube, Instagram.
    - `is_original` boolean, nullable: Whether the sound is an original creation. TikTok only.
    - `is_commerce_music` boolean, nullable: Whether the sound is cleared for commercial use. TikTok only.
    - `usage_count` number, nullable: Platform-wide usage count. TikTok only.
    - `videos_7d` number, required: Videos using this sound published in the last 7 days
    - `videos_30d` number, required: Videos using this sound published in the last 30 days
    - `videos_90d` number, required: Videos using this sound published in the last 90 days (baseline)
    - `burst_ratio` number, required: videos_7d / videos_90d. 1.0 means 100% of recent activity is in the last week (true breakout). 0.1 means it is mostly old activity.
    - `breakout_score` number, required: Legacy composite score = videos_7d × (videos_7d / videos_90d). Retained for backward compatibility; results are now ordered by `acceleration` (see below), not this field.
    - `prior_weekly` number, nullable: Average videos per week over the prior 4 weeks (days 8–35), i.e. the baseline the sound is breaking out from. Pair with videos_7d to see the trajectory (e.g. 1.8/wk → 54 this week).
    - `acceleration` number, nullable: The breakout signal and default sort key: how much faster the sound is being used this week vs its prior weekly baseline = (videos_7d + 1) / (prior_weekly + 1). e.g. 20.0 = posting 20× faster than its prior-month rate. Higher = a sharper breakout off a small base.
  - `pagination` PaginationMetaDto, required
    - `page` number, required
    - `limit` number, required
    - `total` number, required
    - `total_pages` number, required
    - `has_next_page` boolean, required
    - `has_prev_page` boolean, required

## Other responses

- `401`: Missing or invalid API key (`missing_api_key` / `invalid_api_key`)
- `429`: Rate limit exceeded (`rate_limit_exceeded`); see the Retry-After header

---

[API](https://skmtc.dev/virlo/apis/virlo-public-api.md) · [All operations](https://skmtc.dev/virlo/apis/virlo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/virlo/apis/virlo-public-api/revisions/3b69c6145087?raw)
