NewNow generate music — loops and tracks

Free sounds via MCP & API for your video game

Thousands of free sound effects, music and ambience, or generate any sound you can describe. Free for commercial use, from Claude, ChatGPT, your coding agent or your own code.

search_sounds

q: "chiptune boss fight"type: musicform: loop

100k+ sounds downloaded·16K+ non-AI sounds·Generate what you can't find

Get started#

Everything is free. Pick where you'll use soundza:

  1. Click Add to Claude. Claude opens with the name and URL filled in. Click Add.
  2. Sign in to soundza and approve. A free account is all you need.
  3. In a chat, click +, open Connectors and turn on Soundza.
Add to Claudeor add a custom connector with https://mcp.soundza.com/mcp/oauth
REST API
https://api.soundza.com/v1
MCP, sign-in
https://mcp.soundza.com/mcp/oauth
MCP, API key
https://mcp.soundza.com/mcp
For agents
soundza.com/llms.txt · step-by-step instructions

Searching#

Every endpoint is under https://api.soundza.com/v1. The full spec is at /openapi.json.

EndpointWhat it does
GET/sounds/searchSearch by words and filters. Returns a page of sounds and a search_id.
GET/sounds/{id}One sound, by id.
GET/packsPublic packs, best first. Optional q, page and per_page.
GET/packs/{id}One pack, then a page of its sounds. Every sound names its pack.

Set type first (sound_effect, music or ambience), add any filters you know, and describe the rest in q. “Corporate background music, no vocals” is type=music&vocals=none&q=corporate.

All search parameters

Give a q, at least one filter, or both. Durations are in seconds.

ParameterTypeDescription
qstringWords to match, e.g. "door slam" or "lofi drum loop". Typos are forgiven.
typestringWhat the sound is: music, sound_effect or ambience (see Types and their filters). Case-insensitive. A search with q that finds nothing within its type searches every type, and says so in relaxed_filters.
formstringMusic only: track, excerpt, loop, one_shot or stem.
partsstringMusic only: full_mix or single_part. Without it, type=music ranks full mixes first, then loops, then single parts.
vocalsstringMusic only: none, backing or lead.
stylestringSound effects only: retro or cartoon. Set per pack, so most sounds have none; with a q that finds nothing with it, it is dropped and listed in relaxed_filters.
min_durationnumberShortest length, in seconds.
max_durationnumberLongest length, in seconds.
min_bpmnumberSlowest tempo. Only music has a tempo.
max_bpmnumberFastest tempo.
keystringMusical key, e.g. "C", "F# minor" or "Bbm". Matches only the keys sounds show: stated by the source or a person, or detected with high confidence.
chordstringChord a chord one-shot plays, e.g. "Am", "C#m7" or "Fmaj7".
notestringNote a pitched one-shot plays: "D3" for that octave (C3 is middle C), or "D" for any octave.
moodlistComma-separated mood words; sounds matching any of them come back, and more matches rank higher. One of: airy, heavy, metallic, bright, dark, punchy, soft, warm, glitchy, organic, cinematic, cartoony, retro.
good_forlistComma-separated jobs the sound should suit. Ranking only: matching sounds rank higher, and nothing is filtered out. One of: transition, reveal, build_up, impact_on_beat, title_or_logo, notification, ui_click, menu, game_pickup, game_hit, game_power_up, footsteps, background_bed, intro, outro.
fit_secondsnumberThe length the sound has to fill, e.g. 20 for a 20-second ad. Ranks sounds that can fill it (a track at least that long, or a seamless loop) and adds a fit hint to each result. It doesn't filter anything out.
packstringA pack's id or slug: only that pack's sounds.
loop_seamlessbooleantrue: only sounds that loop seamlessly, as measured from the audio (the end runs back into the start without a click or jump). For game music and ambience beds that repeat under a scene.
categorystringA Universal Category System top-level category ("CROWDS") or CatID ("CRWDCheer"). Sound effects and ambience.
pageintegerPage number, from 1.
per_pageintegerResults per page: default 15, at most 50. Results stop at 500 per query.
Types and their filters
typeWhat belongsFilters
musicTracks, excerpts, loops, one-shots, stems, stingers, jingles and vocal chops, game music included.form (track, excerpt, loop, one_shot, stem), parts (full_mix, single_part), vocals (none, backing, lead), bpm, key, note, chord
sound_effectWhooshes, impacts, foley, UI and game sounds, voices as effects.category (UCS), style (retro, cartoon; set per pack)
ambiencePlaces, room tone and noise beds.category (UCS)

With type=music, full mixes come first, then loops, then single parts, unless you set parts. good_for moves sounds suited to a job (transition, ui_click, background_bed…) up the results without filtering any out. A search with q that finds nothing within its type searches every type and lists type in relaxed_filters.

What a result looks like

A page of results, with a link to the next page. bpm and key describe music; creator is null when a sound has no public creator.

GET /sounds/search
{
  "page": 1,
  "per_page": 5,
  "total_results": 38,
  "next_page": "https://api.soundza.com/v1/sounds/search?q=whoosh&type=SOUND_EFFECT&per_page=5&page=2",
  "search_id": "x7k2m9q4r1t8v3w6y0z5a2b4",
  "sounds": [
    {
      "id": "cm9w2k4e30001",
      "url": "https://soundza.com/sound/fast-air-whoosh",
      "title": "Fast Air Whoosh",
      "description": "A quick, bright air whoosh that sweeps left to right.",
      "creator_description": null,
      "type": "sound_effect",
      "form": null,
      "parts": null,
      "vocals": null,
      "style": null,
      "good_for": ["transition"],
      "duration": 0.84,
      "bpm": null,
      "key": null,
      "chord": null,
      "note": null,
      "mood": ["airy", "bright"],
      "tags": ["whoosh", "swipe", "air", "airy", "bright"],
      "sync_ms": 310,
      "lufs": -19.4,
      "true_peak_db": -6.1,
      "loudness": { "value": -18.2, "basis": "momentary_max" },
      "gain_db": 5.1,
      "loop_seamless": null,
      "file_type": "audio/wav",
      "file_extension": "wav",
      "sample_rate": 48000,
      "bit_depth": 24,
      "channels": 2,
      "size_bytes": 322604,
      "category": { "id": "WHSH", "label": "Swooshes › Whoosh" },
      "pack": {
        "id": "cm8p1x7a20004",
        "name": "Air and Motion",
        "slug": "air-and-motion",
        "sound_count": 42,
        "url": "https://soundza.com/packs/air-and-motion"
      },
      "creator": null,
      "preview_files": [
        { "type": "audio/mpeg", "bitrate": 128, "link": "https://media.soundza.com/l/fast-air-whoosh/4fJ9aQx2LmP0sT7vKc1Rb8Ze.mp3" }
      ],
      "download_url": "https://api.soundza.com/v1/sounds/cm9w2k4e30001/file",
      "license": { "name": "Soundza Standard License", "url": "https://soundza.com/license" },
      "attribution": "\"Fast Air Whoosh\" on Soundza (https://soundza.com/sound/fast-air-whoosh)"
    }
  ]
}

Downloading#

Fetch a result's download_url with your key. It redirects to the file, usually a WAV. With curl, add -L; fetch and requests follow redirects on their own. Save each sound once and reuse it by its id, since its file never changes. In an AI app, download_sound returns a link and a ready curl command.

EndpointWhat it does
GET/sounds/{id}/fileThe full-quality file. Redirects to a link that works for 5 minutes.
GET/removals?since=Sounds removed since a date, for anyone who stores files.
What you get

Files are level-matched, so sounds sit together without adjusting each one: one gain per sound, no compression, peaks at or under −1 dBTP. Ambience aims for −20 LUFS, music, pads and long loops for −16, everything else for −13 on its loudest 400 ms. lufs, true_peak_db and loudness describe the original; gain_db is what the default file adds to it.

Add ?variant=original for the original as uploaded. The redirect is a signed link that lasts 5 minutes, so keep the file, not the link. download_url already carries the search it came from; if you serve many users, add user with your own id for each.

Storing files

A free key may keep up to 500 downloaded sounds. Now and then a sound is taken down; check GET /v1/removals at least monthly and delete any it lists.

Generating sounds#

Can't find a sound you want? Generate it. It's completely free for sounds under 10 seconds, up to 250 per week. Need background music instead? Generate music. Every generated sound is eligible to be added back to the soundza library to share with others.

Ask your agent

Add soundza to Claude Code, Cursor or any MCP app (see Get started), then ask for the sound you need. It makes the sound, picks the best take and saves the file.

terminal
claude mcp add --transport http soundza https://mcp.soundza.com/mcp/oauth

> make a laser blast for my space shooter and save it to assets/sfx

Or one request

With a free API key, one call makes the sound and answers with its link. No polling.

curl -s -X POST "https://api.soundza.com/v1/generations" \
  -H "Authorization: Bearer $SOUNDZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "magic sparkle chime"}' \
  | jq -r '.takes[0].url' | xargs curl -sL -o sparkle.wav
Options, limits and errors

prompt up to 200 characters. duration_seconds0.5 to 10, default 3: it's for sound effects, so for music use generate_music below. takes 1 to 3, best first, default 1. seed to repeat a result. Each take has a WAV url and an MP3 preview_url; neither needs a key, and both work for 120 days, so save what you keep.

250 a week per account (at most 120 an hour), one at a time. A busy moment answers 503 or 429 with Retry-After: wait and send it again. A sound that takes longer than about 50 seconds answers 202 with a poll_url; send "wait": false to always get that.

EndpointWhat it does
POST/generationsMake a sound from a prompt. Answers with the takes.
GET/generations/{id}A generation, for one that answered 202 before it finished.

Takes are made with AI and say so in ai_content. Use them like any soundza sound. They aren't exclusive to you, and we may add good ones to the soundza library for everyone (see AI features in the Terms).

Generating sound variations#

Need a full set of sounds that are similar? Call vary_sound to generate variations of a base sound. Give it the ID of any soundza sound, including a sound you generated, and get back a set of variations: the same sound, played differently each time. All variations are free and yours to use commercially.

Great for:

  • Footsteps that don't repeat, for a game character or a cartoon
  • Sword swings, punches and impacts for a fight, in a game or a video
  • A different grunt or shout for each character
  • Gunshots and UI clicks that stay consistent without sounding copy-pasted
  • Footsteps on wood
    Spread 5 · 0.50s each
  • Sword slash
    Spread 5 · 1.2s each
  • Punch impact
    Spread 5 · 0.24s each
  • Sci-fi laser shot
    Spread 5 · 0.58s each

Ask your agent

Add soundza to Claude Code, Cursor or any MCP app (see Get started), then ask for the sound and how many variations you need. It finds or makes the sound, varies it and saves the set.

> add footsteps for the character crossing the room, with variations so no two steps sound the same

Tips on getting great variations

A sound_id is all it needs, but spread, how different the variations are, is what makes the set fit how the sound is used. Use subtle for sounds that must stay consistent, like UI clicks, coins and gunshots; natural for footsteps, impacts and swings; and bold when each take should be a different performance, like grunts from different characters. All variation parameters lists every field and its type; here's a full example:

# Short sounds come back in 5-10 seconds, in this one call.
curl -s -X POST "https://api.soundza.com/v1/variations" \
  -H "Authorization: Bearer $SOUNDZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sound_id": "footstep-on-wood",
    "spread": "natural",
    "takes": 6
  }'

# then save each take under its own name:
#   curl -sL -o footstep-on-wood-var-01.wav "<takes[0].url>"

Working through an agent? Tell it what the sound is for, and it picks the level and the number of takes for you.

All variation parameters
ParameterTypeRequiredDescription
sound_idstringOne of theseThe sound to vary: a soundza sound's id or slug, e.g. "footstep-on-wood". A one-shot up to 10 seconds, not an ambience. Send this or take_id.
take_idstringOne of theseA take you made with generate_sound (or an earlier variation), to vary instead of a soundza sound. Send this or sound_id.
spreadinteger | "subtle" | "natural" | "bold"OptionalHow different the takes are, 1 to 10, or "subtle" (2), "natural" (5), "bold" (8). Defaults to 5. Measured on each sound, so a spread means the same on a punch as on a footstep.
takesintegerOptionalHow many variations to make, 1 to 8, best first. Defaults to 6. Each one counts as a generation.
promptstringOptionalWhat the sound is, e.g. "boot on gravel", when its title doesn't say. Defaults to the sound's title and tags.
seedintegerOptionalAny whole number. Send the same seed with the same sound and settings to get the same variations back; leave it out to get new ones each time.
waitbooleanOptionalWhether the call waits for the variations. By default it waits and answers with them. If you send false, it answers right away with a 202 and a job ID, and you check on the job at GET /generations/{id} until it's done.
Spread, takes and limits

spread goes from 1, about as different as a pitch randomizer, to 10, the same idea played by someone else. It's measured on each sound, so a spread of 5 sounds about as different on a punch as on a footstep. The presets are "subtle" (2), "natural" (5), "bold" (8).

Every variation comes back as a WAV (url) and an MP3 preview (preview_url), named after the sound: footstep-on-wood-var-01.wavand on. Each one is lined up with the original's attack and matched to its length, tone and loudness, so you can lay them along a video timeline, or drop the set into Godot's AudioStreamRandomizer, an FMOD or Wwise random container, or Unity next to the original. Links work for 120 days, so save what you keep.

It works on one-shots up to 10 seconds: sound effects, instrument hits and stingers. Each variation counts as one of your 250 generations a week, free, so 6 takes use 6. Short sounds come back in 5 to 10 seconds; a 10-second sound can take up to about 30.

If the service is busy, you'll get a 429 or 503 response telling you how long to wait before trying again.

Generating music#

Can't find the right music? Call generate_music to make it. You can generate a full-length track, or a seamless music loop to play under a game or video. All music is free, instrumental, and yours to use commercially.

Full-length tracks

Made with Lyria · 8 a week, free
  • Sweeping orchestral adventure themeFull track
    3:00
  • Ambient bed for a sci-fi videoFull track
    2:56
  • Charming cozy town themeFull track
    2:37
  • Energetic electronic backgroundFull track
    2:34

Seamless loops

Made with Stable Audio 3 · 15 a week, free
  • Fantasy tavern themeSeamless loop
    120 BPM · 12 bars · 24s
  • Upbeat background for an explainer videoSeamless loop
    120 BPM · 12 bars · 24s
  • Retro synthwave driveSeamless loop
    120 BPM · 20 bars · 40s
  • Chill lofi study beatSeamless loop
    120 BPM · 12 bars · 24s

Ask your agent

Add soundza to Claude Code, Cursor or any MCP app (see Get started), then describe the music you want. It writes the loop or track and saves the file.

> write a calm looping theme for my village scene

Tips on getting great music for your game

A plain description works, but game, scene and moodare what make the music feel like it belongs in your game — the more you give, the better the fit. All music generation parameters lists every field and its type; here's a full example:

# Music takes a minute or two, so this answers 202 with a poll_url.
curl -s -X POST "https://api.soundza.com/v1/music" \
  -H "Authorization: Bearer $SOUNDZA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "a slow, warm orchestral piece: solo harp, soft strings, no drums",
    "looping": true,
    "game": "a cozy fantasy RPG about running a village inn",
    "scene": "the player wanders the village at dawn",
    "mood": "peaceful and welcoming"
  }'

# then poll until it is ready:
curl -s "https://api.soundza.com/v1/music/JOB_ID" -H "Authorization: Bearer $SOUNDZA_API_KEY"

Working through an agent? Tell it about your game and the scene, and it fills the fields in for you.

All music generation parameters
ParameterTypeRequiredDescription
descriptionstringRequiredThe music, in plain words, e.g. "warm orchestral theme, strings and harp". Up to 200 characters.
model"stable" | "lyria"Optional"stable" (default): Stable Audio 3, for seamless loops and short tracks. "lyria": Lyria, for long full-length tracks (no looping).
loopingbooleanOptionalReturn a seamless loop. Stable only — a loop with model lyria is an error. Defaults to false.
duration_secondsnumberOptionalFull-length tracks only (not loops): length in seconds, 10 to 180. A loop's length is set by the loop finder.
bpmintegerOptionalTempo to aim for, in beats per minute.
gamestringOptionalWhat game this is for, e.g. "a cozy farming sim" — improves the fit, and tells us what games people want music for.
scenestringOptionalThe moment or scene the music plays under, e.g. "a tense boss fight".
moodstringOptionalHow it should feel, e.g. "calm and hopeful".
Loops, tracks and limits

The endpoint supports two models: stable (Stable Audio 3) and lyria (Lyria). We recommend using stable for loops and short tracks, or lyria for long, full-length tracks. Only stable supports looping.

If you need a seamless loop, use stable with looping: true. We do some extra audio work on the back end to make that possible, so you get a clean loop that plays back to back with no gap. You can run 15 stable and 8 lyria generations a week, free, one at a time.

Every generation comes back as a WAV (url) and an MP3 preview (preview_url). Use the WAV in your game: it loops with no gap and includes loop points for Unity and Godot. The MP3 is there for a quick listen and has a short gap if you loop it. Loops also report their tempo and bar count.

If the service is busy, you'll get a 429 or 503 response telling you how long to wait before trying again.

Limits#

WhatFree
Searches60 a minute
Downloads250 an hour, 500 a week
Sound effect generation (under 10s; each variation counts as one)Stable Audio 3250 a week
Music loop generationStable Audio 315 a week
Full-length music generationsLyria8 a week

That's for a free key, shared across your account, and it covers building a game or a small app. Putting a sound picker in an app with real traffic? Request higher limits or email admin@soundza.com.

How limits are counted

Every response has X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and X-RateLimit-Policy. A 429 also has Retry-After, in seconds.

Only different sounds count as downloads. Total file fetches are capped at twice the download limits, so save each file once and reuse it by the sound's id. Generations are at most 120 an hour, one at a time, each up to 10 seconds. Looking up a single sound or pack has its own limit, five times the search limit.

Trying it without a key: 20 searches a minute and 300 a day per connection, 3 pages of 20, and no downloads.

Giving credit#

Everything is completely free. The only thing we ask is for you to credit soundza.com (and/or an original sound creator if applicable) somewhere it makes sense for your project. Ideally please include a link to soundza.com somewhere on your website/blog/itch page (e.g. 'Thanks to soundza.com for the free sounds'). If you don't have a site we'd still love a shoutout on social media or in a Youtube video description, etc. Help spread the word!

Examples by kind of project

We are flexible on how you credit us, but we ask that you please do so somehow that works naturally for your project.

You're makingHow to credit
An app or tool with a sound pickerPowered by soundza in the picker, plus a link to soundza.com in your site's footer, About page, blog, or somewhere else that makes sense.
A game, even a small oneWherever you share it (a Reddit or Discord post, X, your devlog or site, itch.io or Steam), a quick thank-you to soundza.com, with a link where you can.
VideosSound effects: soundza.com in the YouTube description. On TikTok or Instagram, tag @soundza_audio if you can.
A bot, agent or open-source toolA line in your README, help text or listing page.
Something just for youNothing needed.

Want to use our logo? You're welcome to show it with your link: the full logo (PNG) or the mark on its own (SVG). Just don't use it as your app's icon.

Made something with soundza? We'd love to see it. Email admin@soundza.com or tag @soundza_audio. We reshare cool projects.

Reference#

Every sound comes under the Soundza Standard License, linked from its license field: royalty-free for personal and commercial work, with no attribution required for the sounds themselves (the credit above is what we ask in return for the API). We review sounds carefully but provide them as is, with no guarantee that a sound is free of third-party claims. Use of the API is governed by the Terms of Service and the license.

Guidelines
  • Once people outside your team see what you make, link back to soundza.com in the way that fits it: "Powered by soundza" by your sound picker plus a link on your site, a thank-you wherever you share your game, or a line in your video description. See soundza.com/developers#credit.
  • Request a sound's download_url when it is added to a project, save the file once, and reuse it by the sound's id.
  • Previews are for listening. Use downloaded files in finished work.
  • Don't copy Soundza's core functionality or build a competing sound library or API.
  • A free key may store up to 500 downloaded sounds. Remove any sound listed in GET /v1/removals, and check it at least monthly.
  • Respect the rate limits, and ask when you need more. We may suspend or end API access for anyone, at any time, for any reason.
Errors

Errors are JSON: {"error": {"code", "message", "details"?}}.

StatusCodeMeaning
400invalid_requestA parameter is wrong. details lists each one.
401missing_keyNo Authorization: Bearer header.
401invalid_keyThe key doesn't exist.
401revoked_keyThe key was revoked.
401key_requiredPast the last page you can get without a key. Use a key for the rest.
404not_foundNo public sound, pack or generation on this account has that id.
410take_expiredThat take's link has expired, so it can't be varied. Generate a new one.
422unsupported_sourceThat sound can't be varied (an ambience, or longer than 10 seconds, for example). Try another.
429rate_limitedA limit was hit. Wait Retry-After seconds.
429generation_in_progressThis account already has a generation running. details has its poll_url.
503generation_unavailableGeneration is switched off for now. Search and downloads still work.
503generator_busyThe generator is busy. Wait Retry-After seconds.
500server_errorSomething went wrong on our end. Try again shortly.
Soundza picker

Two server routes that keep your key private, and a component with chips, previews and the credit link. Style it to match your app.

// app/api/sounds/route.ts: search, with your key kept on the server
export async function GET(req: Request) {
  const params = new URL(req.url).searchParams;
  const res = await fetch(`https://api.soundza.com/v1/sounds/search?${params}`, {
    headers: { Authorization: `Bearer ${process.env.SOUNDZA_API_KEY}` },
  });
  return new Response(res.body, { status: res.status, headers: { "Content-Type": "application/json" } });
}

// app/api/sounds/[id]/file/route.ts: call it from your server when a user adds a sound
export async function GET(req: Request, { params }: { params: Promise<{ id: string }> }) {
  const { id } = await params;
  const query = new URL(req.url).searchParams; // search_id, and your own user id as user
  const res = await fetch(`https://api.soundza.com/v1/sounds/${encodeURIComponent(id)}/file?${query}`, {
    headers: { Authorization: `Bearer ${process.env.SOUNDZA_API_KEY}` },
    redirect: "manual",
  });
  const location = res.headers.get("location");
  return location ? Response.redirect(location, 302) : new Response(res.body, { status: res.status });
}

When a user adds a sound, fetch the file route from your server and save the file to your own storage. That counts the download. The route redirects to a signed link that lasts 5 minutes and can't be read from a browser on another site, so don't fetch it client-side or keep the link. Pass your own user id as user if you want per-user reports.

URLs and MCP tools

The MCP server has these tools: search_sounds, get_sound, search_packs, get_pack, download_sound, generate_sound, vary_sound, get_generation, generate_music and get_music.

REST
https://api.soundza.com/v1
MCP, sign-in
https://mcp.soundza.com/mcp/oauth
MCP, API key
https://mcp.soundza.com/mcp
OpenAPI
soundza.com/openapi.json
For agents
soundza.com/llms.txt

FAQ#

Is the API free?

Yes. The API and the keys are free. In return, we'd love a link back to soundza wherever it fits what you make.

Do I need to credit soundza?

We ask for it once people outside your team see what you make, in whatever form fits: a link on your site, your store page or your video description. Nothing is needed while you build or test, or for things that are just for you.

What counts as credit?

A link to soundza.com where people can see it. For an app, Powered by soundza by your sound picker plus a link in your site's footer, About page, blog, or somewhere else that makes sense. For a game, a thank-you wherever you share it: a Reddit or Discord post, your devlog or site, or its itch.io or Steam page. For a video, Sound effects: soundza.com in the description. A shout-out on X, Discord or YouTube is lovely too.

Will you share what I make?

We'd love to hear about what you build. Email admin@soundza.com or tag @soundza_audio and tell us what you made. We reshare cool projects made with soundza.

Can I use the soundza logo?

Yes, we'd love you to show it with your "Powered by soundza" link, though it's optional. Please don't use it as your app's icon. Download the full logo (soundza.com/logo-wordmark.png) or the mark on its own (soundza.com/logo.svg).

Do I need a key?

To try it, no: you can search without one for a first look, with fewer details and lower limits (3 pages per search, 20 a minute). To download sounds or build anything, get a key. They're free.

What are the limits?

Free keys get 60 searches a minute, 250 downloads an hour and 500 a week, and 250 generated sounds a week, shared by all keys on your account. Previews don't count. Every response has X-RateLimit-* headers.

How do I get higher limits?

The free limits cover building a game, editing videos, or a small app with a sound picker. If you're putting a sound picker in an app with real traffic, use "Request higher limits" on the keys page and tell us a little about it, or email admin@soundza.com with your key prefix and what you're building. We'll reply by email.

Can I use the sounds in commercial projects?

Yes. Every sound is royalty-free for personal and commercial work under the Soundza Standard License, and shipping a sound inside a game or app you make is fine.

Can I store the files?

Yes. Save each file once and reuse it by the sound's id. A free key may store up to 500 downloaded sounds. Don't keep the signed link download_url redirects to; it lasts 5 minutes.

What if a sound is removed?

Call GET /v1/removals?since=<date> now and then (at least monthly) and delete any sound it lists.

Who owns the sounds I generate?

You can use them like any soundza sound, under the Soundza Standard License. They aren't exclusive to you: the same prompt can give someone else a similar sound, and soundza may add good takes to its library for everyone. See AI features in the Terms: soundza.com/terms#sfx-generator.

What makes the generated sounds?

They're made with Stable Audio 3 Medium, running on our own GPUs. Powered by Stability AI. Sounds in the library are different: they aren't AI-made unless their ai_content says so.

Can I use the sounds to train AI?

No. The sounds can't be used to train, fine-tune or build an AI or machine-learning model.

Can I build a sound library on the API?

No. Please don't redistribute sounds as standalone files or sample packs, or build a competing sound library or API.

REST or MCP?

Both use the same key, limits and catalog. Use REST from your code, and MCP (mcp.soundza.com/mcp) so an agent like Claude Code or Cursor can search and download for you.

Can the API make new sounds?

Yes. Describe a sound and get a WAV back in about five seconds, free up to 250 a week: POST /v1/generations over REST, or the generate_sound tool over MCP. Take links work for 120 days.

Can it make variations of a sound?

Yes. Give it one sound, like a footstep or a sword swing, and it makes up to 8 variations for a game or a video, lined up and level-matched with the original: POST /v1/variations over REST, or the vary_sound tool over MCP. Each take counts as one generation, and a short sound takes about 5 to 10 seconds.

Can it make music?

Yes. generate_music makes original music: a seamless loop to play under a scene or video, or a full-length track. Free, 15 loops on Stable Audio and 8 full tracks on Lyria a week.

Can my coding agent get a key itself?

Yes. Ask it to find sounds on soundza.com. It reads llms.txt, sends you one link to approve, and saves the key.