API Reference

Reference for the Lots of Sounds CC0 sound effects API, including authentication, search filters, responses, downloads, and error handling.

Lots of Sounds sound effects API

Lots of Sounds is a developer-first REST API for searching, previewing, and downloading CC0-licensed sound effects. It is designed for apps, games, creative tools, and AI agents that need predictable JSON and clear licensing.

curl -G https://api.lotsofsounds.com/api/v1/sounds \
  -H "x-api-key: los_your_api_key_here" \
  --data-urlencode "q=chime" \
  --data-urlencode "max_duration=3"

Try it without an API key

The public sample endpoint returns a curated set of sounds with no authentication: GET https://api.lotsofsounds.com/api/v1/sounds/sample.

Authentication

Send your API key in the x-api-key header. Create and manage keys in the API Keys dashboard. Keep keys on your server and never include them in browser or mobile application bundles.

curl "https://api.lotsofsounds.com/api/v1/sounds?q=thunder" \
  -H "x-api-key: los_your_api_key_here"

Endpoints

EndpointAuthenticationPurpose
GET /api/v1/sounds/sampleNonePreview the response shape with curated samples
GET /api/v1/soundsAPI keySearch the catalog by text, tags, category, or duration
GET /api/v1/sounds/popularAPI keyList sounds by all-time download count
GET /api/v1/sounds/{id}API keyRetrieve metadata for one sound
GET /api/v1/sounds/{id}/downloadAPI keyCreate a signed download URL valid for one hour

See the interactive endpoint documentation for complete request and response schemas.

Search the catalog

Use q for keyword search. It matches the sound name and description, so short keywords such as whoosh or rain work best. Combine it with filters to narrow the results.

curl -G https://api.lotsofsounds.com/api/v1/sounds \
  -H "x-api-key: los_your_api_key_here" \
  --data-urlencode "q=game over" \
  --data-urlencode "category=SFX" \
  --data-urlencode "tags=game,retro" \
  --data-urlencode "limit=5"
const params = new URLSearchParams({
  q: "game over",
  category: "SFX",
  tags: "game,retro",
  limit: "5",
});

const response = await fetch(
  `https://api.lotsofsounds.com/api/v1/sounds?${params}`,
  { headers: { "x-api-key": process.env.LOTS_OF_SOUNDS_API_KEY } }
);

if (!response.ok) throw new Error(`Lots of Sounds API: ${response.status}`);
const { data, pagination } = await response.json();
import requests

response = requests.get(
    "https://api.lotsofsounds.com/api/v1/sounds",
    params={"q": "game over", "category": "SFX", "tags": "game,retro", "limit": 5},
    headers={"x-api-key": "los_your_api_key_here"},
)
response.raise_for_status()
sounds = response.json()["data"]

Query parameters

ParameterTypeDescription
qstringCase-insensitive keyword match on names and descriptions
tagsstringComma-separated tags using AND matching
categorystringSFX, MUSIC, LOFI, or AMBIENT
min_durationnumberMinimum duration in seconds
max_durationnumberMaximum duration in seconds
sortstringdownloads (default), created_at, duration, or name
orderstringasc or desc
pageintegerPage number, starting at 1
limitintegerResults per page, up to 100

Use the popular sounds endpoint to get sounds with the highest all-time download counts. Set limit to return between 1 and 100 sounds. The default is 30.

curl "https://api.lotsofsounds.com/api/v1/sounds/popular?limit=10" \
  -H "x-api-key: los_your_api_key_here"

Response shape

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Retro Game Over",
      "description": "Short 8-bit fail stinger",
      "tags": ["game", "8-bit", "retro"],
      "duration": 1.8,
      "license": "CC0",
      "category": "SFX"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 5,
    "total": 42,
    "totalPages": 9
  }
}

Errors and rate limits

StatusMeaningAction
400Invalid query parameterCheck parameter names and values
401Missing or invalid API keySend a valid x-api-key header
403Plan does not include the operationReview your plan or account access
404Sound was not foundVerify the sound ID
429Rate limit exceededWait until X-RateLimit-Reset before retrying

Use bounded exponential backoff for transient 429 and 5xx responses. Do not retry authentication or validation errors without changing the request.

MCP and AI agents

Agents can use the same catalog through the hosted Model Context Protocol server, or call the REST API directly with tool calling. See LLM and AI agent integration for implementation patterns.

Next steps

Ready to integrate?

Get your API key and start building with thousands of sound effects and music tracks.

On this page