// JavaScript Integration Example
const API_KEY = "YOUR_API_KEY";
const fileData = document.getElementById("file-input").files[0];
const formData = new FormData();
formData.append("file", fileData);
// 1. Send file for normalization
const response = await fetch("https://soniclevel.onrender.com/normalize?target_lufs=-14.0", {
method: "POST",
headers: { "X-API-Key": API_KEY },
body: formData
});
const job = await response.json();
// 2. Poll job status until complete
const checkStatus = setInterval(async () => {
const res = await fetch(`https://soniclevel.onrender.com/status/${job.job_id}`, {
headers: { "X-API-Key": API_KEY }
});
const jobData = await res.json();
if (jobData.status === "completed") {
clearInterval(checkStatus);
console.log("Output URL:", `https://soniclevel.onrender.com/download/${job.job_id}`);
}
}, 1000);
# Python Integration Example
import urllib.request
import json
import time
API_KEY = "YOUR_API_KEY"
url = "https://soniclevel.onrender.com/normalize?target_lufs=-14.0"
# Build multipart form request
boundary = "----WebKitFormBoundary"
with open("audio.mp3", "rb") as f:
file_bytes = f.read()
payload = b"\r\n".join([
b"--" + boundary.encode(),
b'Content-Disposition: form-data; name="file"; filename="audio.mp3"',
b'Content-Type: audio/mpeg',
b'',
file_bytes,
b"--" + boundary.encode() + b"--"
])
req = urllib.request.Request(
url, data=payload,
headers={
"Content-Type": f"multipart/form-data; boundary={boundary}",
"X-API-Key": API_KEY
}
)
with urllib.request.urlopen(req) as res:
job_id = json.loads(res.read())["job_id"]
# Poll Status
while True:
status_req = urllib.request.Request(
f"https://soniclevel.onrender.com/status/{job_id}",
headers={"X-API-Key": API_KEY}
)
with urllib.request.urlopen(status_req) as res:
job = json.loads(res.read())
if job["status"] == "completed":
print("Download url:", f"https://soniclevel.onrender.com/download/{job_id}")
break
time.sleep(1)
# cURL Integration Example
# 1. Upload and normalize file
curl -X POST "https://soniclevel.onrender.com/normalize?target_lufs=-14.0" \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@audio.mp3"
# 2. Check job status
curl -H "X-API-Key: YOUR_API_KEY" \
"https://soniclevel.onrender.com/status/{job_id}"