Speed & Scalability

The Entire Splice Catalog,
Right in your Code

A lightning-fast, concurrent API client to search samples, fetch metadata, and descramble high-quality audio files on-the-fly. Built for sound developers and automated pipelines.

1000+ Search Results

Load up to 1000+ items concurrently in under 1.5 seconds. Auto-pagination handles the heavy lifting.

On-The-Fly Descrambling

XOR-descramble protected Splice MP3 previews in real-time. Native in-memory Python processing.

WAV Conversions

Transcode decrypted MP3 streams directly into WAV format with a simple query parameter.

GET /api/search?q=synth+lead&limit=1000
{
  "count": 1000,
  "results": [
    {
      "id": "splice-085bd422-bf47-4144-9c9d-a74ee502c368",
      "name": "Synth_Lead_Cmin_120.mp3",
      "uuid": "085bd422-bf47-4144-9c9d-a74ee502c368",
      "pack": "Neon Dream Synthesizers",
      "bpm": "120",
      "key": "Cmin",
      "duration": "4.2s",
      "artwork": "https://images.splice.com/cover_art/...",
      "decryptedAudioUrl": "/api/decrypted-audio/085bd422-bf47-4144-9c9d-a74ee502c368"
    }
  ]
}

Wavely API Reference

Integration documentation and examples for multiple environments.

Authentication

Authenticate your HTTP requests by passing your API key in the header configuration:

Header Parameter
X-API-Key: wv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Note: Alternatively, you can pass the key in the URL query parameters using ?api_key=wv_xxxx, although headers are highly recommended.

Sample Metadata

GET/api/sample/<uuid>

Retrieve single sample info, tags, packs, BPM, and preview links by UUID.

import requests

uuid = "085bd422-bf47-4144-9c9d-a74ee502c368"
url = f"https://wavely.lol/api/sample/{uuid}"
headers = {"X-API-Key": "wv_YOUR_API_KEY"}

response = requests.get(url, headers=headers)
print(response.json())
const fetch = require('node-fetch');

const uuid = '085bd422-bf47-4144-9c9d-a74ee502c368';
fetch(`https://wavely.lol/api/sample/${uuid}`, {
  headers: { 'X-API-Key': 'wv_YOUR_API_KEY' }
})
.then(res => res.json())
.then(data => console.log(data));
curl -H "X-API-Key: wv_YOUR_API_KEY" \
  "https://wavely.lol/api/sample/085bd422-bf47-4144-9c9d-a74ee502c368"

Descramble Audio

GET/api/decrypted-audio/<uuid>

Stream or download decrypted audio preview files directly. Splice's dual-block XOR security algorithm is automatically parsed on the fly in memory.

Query Parameters

Parameter Type Default Description
format string mp3 The output file format. Allowed values: mp3, wav. WAV format provides raw PCM transcoding.
import requests

uuid = "085bd422-bf47-4144-9c9d-a74ee502c368"
# Request as WAV format
url = f"https://wavely.lol/api/decrypted-audio/{uuid}?format=wav"
headers = {"X-API-Key": "wv_YOUR_API_KEY"}

response = requests.get(url, headers=headers)
with open("decrypted_sample.wav", "wb") as f:
    f.write(response.content)
print("Saved decrypted WAV sample successfully!")
const fetch = require('node-fetch');
const fs = require('fs');

const uuid = '085bd422-bf47-4144-9c9d-a74ee502c368';
fetch(`https://wavely.lol/api/decrypted-audio/${uuid}?format=mp3`, {
  headers: { 'X-API-Key': 'wv_YOUR_API_KEY' }
})
.then(res => res.buffer())
.then(buffer => {
  fs.writeFileSync('decrypted_sample.mp3', buffer);
  console.log('Saved decrypted MP3 sample!');
});
curl -H "X-API-Key: wv_YOUR_API_KEY" \
  "https://wavely.lol/api/decrypted-audio/085bd422-bf47-4144-9c9d-a74ee502c368?format=wav" \
  -o sample.wav

Guide: Scrape Search Counts

Learn how to query the search API, parse the results, and inspect the total number of matched samples from the Splice catalog catalogued for query pagination.

Example: Querying and Scraping Search Counts (Python)
import requests

url = "https://wavely.lol/api/search"
headers = {"X-API-Key": "wv_YOUR_API_KEY"}
params = {
    "q": "Synth lead",
    "category": "loop"
}

# 1. Fetch Search Results
response = requests.get(url, headers=headers, params=params)
data = response.json()

# 2. Extract Count & Results
total_found = data.get("count", 0)
samples = data.get("results", [])

print(f"Total samples found: {total_found}")
for i, sample in enumerate(samples[:5]):
    print(f"[{i+1}] {sample['name']} | BPM: {sample['bpm']} | Key: {sample['key']}")

Guide: Download & Stream Audio

This guide covers how to stream decrypted audio previews dynamically inside browser elements or download files directly onto your disk storage.

1. Web Streaming (HTML5 Audio Player)

To stream real-time decrypted audio directly inside a client web application, set the source URL of an HTML5 <audio> element to the decryption API endpoint, passing your key in the query string:

HTML Embed Template
<audio controls>
  <source src="https://wavely.lol/api/decrypted-audio/085bd422-bf47-4144-9c9d-a74ee502c368?api_key=wv_YOUR_API_KEY" type="audio/mpeg">
  Your browser does not support the audio tag.
</audio>

2. Dynamic Chunk Streaming (Node.js)

For script integrations, stream the file in chunks rather than buffering everything in memory to ensure low resource usage:

Dynamic Streaming in Node.js
const http = require('http');
const fs = require('fs');

const url = 'https://wavely.lol/api/decrypted-audio/085bd422-bf47-4144-9c9d-a74ee502c368?format=wav';
const options = {
  headers: { 'X-API-Key': 'wv_YOUR_API_KEY' }
};

http.get(url, options, (res) => {
  if (res.statusCode !== 200) {
    console.error(`Request Failed. Status: ${res.statusCode}`);
    return;
  }

  const fileStream = fs.createWriteStream('sample.wav');
  res.pipe(fileStream);

  fileStream.on('finish', () => {
    fileStream.close();
    console.log('Download complete!');
  });
});

Dashboard Metrics

Total Requests --
Success Rate --
Most Used Route --
Total Errors --

My API Keys

0/3

Manage keys. Limit 3 keys per account.

Daily Request Traffic (30 Days)

Analytics Traceback Logs (90 Days)

Timestamp Type Route Details

Administration Console

Manage developer accounts, global traffic metrics, and security firewalls.

Registered Developers

0
Username Email Role API Keys Status Actions

Ban New IP Address

Blocks registration, login, and all API actions from the given IP.

Banned IP Registry

IP Address Status Actions

Global System Audits (Last 200 Actions)

Timestamp User IP Address Type Route Details

Welcome Back

Sign in to manage your API keys and view logs.

Create Developer Account

Sign up to get instant access to the Wavely API keys dashboard.