Sound effects
Search Slipstream’s sound effects catalog — weather, rooms, machines, animals, cartoon hits. Two endpoints: one to search, one to read the values the filters accept.
Sound effects are a separate catalog from music. Track search never returns a sound effect, and sound effect search never returns a track. There is no combined endpoint — if your UI offers both, call both and merge the results yourself.
Endpoints
| Method | Path | Use when |
|---|---|---|
GET | /api/v4/search/soundfxs/ | You want sound effects matching a text query, a genre, or a duration |
GET | /api/v4/search/soundfxs/filters/ | You need the genres and the duration range the filters accept |
Authentication
Authorization: Bearer <PARTNER_API_KEY>The same key as the other partner endpoints. Access to sound effects is granted per partner: without it, both endpoints return 403. Contact your Slipstream representative to have it enabled.
What you can filter on
Genre and duration. Sound effects carry no mood, tempo, vocals, or BPM, and there are no parameters for them — a music filter sent to this endpoint does nothing.
Sound effects carry two genre fields, genre_name and secondary_genre_name. They are independent assignments, not a hierarchy: a value in one says nothing about the other, and each has its own list of values.
Both genre filters are exact string matches. A near miss — wrong case, a plural, an extra word — returns an empty page with 200, not an error. Read the accepted values from List filters instead of typing them by hand.
The filters endpoint mirrors the shape of the music filters endpoint, so one parser reads both. What differs is the keys: sound effects return genres, secondary_genres, and duration, and nothing else.
Pagination
| Parameter | Default | Max | Description |
|---|---|---|---|
limit | 20 | 100 | Number of results per page |
offset | 0 | — | Result index to start from |
Paging is bounded: offset + limit may not exceed 10000. A request past that boundary is rejected with 400. Narrow the query rather than paging deeper.
Responses use the standard paginated envelope:
{
"count": 412,
"next": "https://api.slipstreammusic.com/api/v4/search/soundfxs/?search=rain&limit=20&offset=20",
"previous": null,
"results": []
}count is the total number of matches, not the size of the page. next and previous are null when there is no page in that direction.
The sound effect object
Every entry in results carries exactly these fields:
{
"id": "3f0a7c52-1b64-4d9e-8f21-0c7a5e6b9d43",
"slug": "rain-water-2",
"name": "Rain, Water",
"description": "Steady rain falling on open water.",
"length": 49,
"genre_name": "Atmosphere",
"secondary_genre_name": "Rain",
"audio_url": "https://...",
"download_url": "https://..."
}| Field | Description |
|---|---|
id | Sound effect UUID. Use it with Downloads (type: "soundfx"), Waveforms (audio_type of soundfx), and playlists (the soundfxs array). |
slug | URL-safe identifier derived from the name, unique across the sound effects catalog. Names repeat, so slugs carry a suffix when they collide — rain-water-2. |
name | Display name, e.g. Rain, Water. |
description | One-line description of the sound. Also matched by the search parameter. |
length | Duration in seconds. Can be null for around a tenth of the catalog, and those sound effects are excluded by any length__range filter — including the widest one the filters endpoint advertises. |
genre_name | Primary genre, e.g. Atmosphere. |
secondary_genre_name | Second, independent genre, e.g. Rain. Not a sub-genre of genre_name, and often null. |
audio_url | Playable audio link. A stable address that mints a freshly signed file on every request, so it does not expire — you can store it and play it whenever you need to. |
download_url | Link that downloads the file, already pointing at Downloads with the right type. Downloading needs the download permission and counts against your download allowance; searching does not. Without that permission the link answers 403. |
There is no cover art, artist, mood, or BPM on a sound effect. The list above is the entire object.
Errors
| HTTP | When |
|---|---|
| 400 | A duration filter is malformed — both bounds are required, both must be whole numbers of seconds, the lower must not exceed the upper, and neither may exceed 2147483647. Also when offset + limit is over 10000 |
| 403 | The API key is missing or unrecognised, or your account doesn’t have sound effects enabled |
| 429 | Rate limit or usage allowance exceeded. The response body says when it resets — back off until then rather than retrying |