# TikTok Search Music API (https://www.socialcrawl.dev/platforms/tiktok/search-music) > Searches TikTok's sound catalogue by keyword and returns up to thirty matching sounds per page, each with its title, artist, duration, cover art, a preview audio URL, and the number of videos using it under `post.ext.video_count`. Where TikTok knows the track on the major music stores, `post.ext.dsp_ids` carries its Apple Music, Spotify and Amazon ids, which is what makes a sound joinable to catalogue data outside TikTok. Pass `post.ext.music_id` to `/v1/tiktok/song/videos` to see the videos using a sound. TL;DR: `GET /v1/tiktok/search/music` costs 1 credit per call and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `query` | yes | Search keyword, matched against sound titles and creators. | | `cursor` | no | Cursor from the previous response to fetch the next page of sounds. | | `sort_by` | no | Result ordering: relevance (default), most-used, most-recent, shortest or longest. (relevance \| most-used \| most-recent \| shortest \| longest) | | `filter_by` | no | Which field the keyword is matched against: all (default), title or creators. (all \| title \| creators) | | `region` | no | Two-letter country code for the proxy location. Defaults to US. | | `since` | no | Only rows published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Rows older than it are left off each page. This list is not in date order, so the walk does not stop at the date: keep following `next_cursor`, and each page costs what a page costs even when every row on it is filtered out. A row with no date is kept. `published_after`, `start_date`, `from_date`, `publish_time` (`yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`) and `max_age_days` are accepted and applied as `since`. | | `until` | no | Only rows published on or before this date: YYYY-MM-DD (that whole UTC day is included) or an ISO 8601 timestamp. Newer rows are left off each page and the walk does not stop, so older pages follow. A row with no date is kept. `published_before`, `end_date` and `to_date` are accepted and applied as `until`. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/tiktok/search/music" \ --data-urlencode "query=espresso" \ -H "x-api-key: sc_YOUR_API_KEY" ``` See the full TikTok API: https://www.socialcrawl.dev/platforms/tiktok ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing