모든 요청은 X-API-Key 헤더로 인증합니다. 응답은 항상 { "success", "data", "message" } 형식의 JSON입니다.
API 키는 회원가입 시 자동 발급됩니다.
회원가입하고 API 키 받기 →| Base URL | https://a.nullab.kr |
| 인증 헤더 | X-API-Key: <발급받은 키> |
| 지원 포맷 | mp3, wav, flac, m4a |
| 최대 파일 크기 | 100MB |
/api/music/uploadmultipart/form-data — genre, file
curl -X POST https://a.nullab.kr/api/music/upload \
-H "X-API-Key: YOUR_API_KEY" \
-F "genre=drive_edm" \
-F "file=@song.wav"
{"success":true,"data":{"id":"a1b2...","genre":"drive_edm","status":"pending"},"message":"uploaded"}
/api/music/analyzeid — 업로드 응답의 job id
curl -X POST https://a.nullab.kr/api/music/analyze \
-H "X-API-Key: YOUR_API_KEY" \
-d "id=a1b2..."
{"success":true,"data":{"id":"a1b2...","status":"analyzed","analysis":{"lufs":-16.2,"true_peak_db":-3.1,"dynamic_range_db":9.4,"spectral_balance":{"low":0.31,"mid":0.44,"high":0.25},"clipping_detected":false}},"message":"analyzed"}
/api/music/masterid 외에 아래 파라미터를 선택적으로 보내면 자동계산값 대신 직접 지정한 값으로 마스터링합니다 (범위를 벗어나면 서버에서 자동으로 클램프됩니다).
| 파라미터 | 범위 | 의미 |
|---|---|---|
lufs | -20 ~ -5 | 목표 라우드니스 |
true_peak | -3 ~ 0 | 트루피크 한계(dB) |
lra | 3 ~ 15 | 러프니스 레인지 |
eq_low | -6 ~ 6 | 저음(100Hz) EQ(dB) |
eq_mid | -6 ~ 6 | 중음(1kHz) EQ(dB) |
eq_high | -6 ~ 6 | 고음(8kHz) EQ(dB) |
compressor_enabled | 0 / 1 | 컴프레서 사용 여부 |
compressor_ratio | 1 ~ 10 | 컴프레서 비율 |
curl -X POST https://a.nullab.kr/api/music/master \
-H "X-API-Key: YOUR_API_KEY" \
-d "id=a1b2..." \
-d "lufs=-9" -d "eq_low=2"
{"success":true,"data":{"id":"a1b2...","status":"completed","download_url":"/song/mastered/a1b2....wav","expires_at":"2026-07-14T02:00:00Z","params_used":{...},"before":{...},"after":{...}},"message":"mastered"}
완료된 job에 다시 호출하면 같은 곡을 다른 파라미터로 재마스터링합니다 (월간 무료 쿼터를 다시 차감하지 않습니다).
/api/music/status/{id}curl -H "X-API-Key: YOUR_API_KEY" \
https://a.nullab.kr/api/music/status/a1b2...
drive_edm | Drive / EDM |
love_edm | Love / EDM |
korean_soul_ballad | 한국 소울 발라드 |
hiphop_rnb | 힙합 / R&B |
lofi | 로파이 |
acoustic | 어쿠스틱 |
rock_band | 록 / 밴드 |
trot_trance | 트로트 / 트랜스 |
pop | 팝 |
| Free | Pro | |
|---|---|---|
| 월 성공 마스터링 | 10곡 (매월 1일 리셋) | 무제한 |
| 시간당 호출 | 30회 | 120회 |
| 일일 호출 | 100회 | 1000회 |
모든 응답에 X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset 헤더가 포함됩니다. 실패한 업로드(잘못된 장르/파일 등)는 월간 쿼터에서 차감되지 않고, 마스터링에 성공한 곡만 차감됩니다.
{"success":false,"data":null,"message":"invalid API key"}
| HTTP | 의미 |
|---|---|
| 401 | API 키 누락/오류 |
| 403 | 월간 쿼터 초과 |
| 404 | job 없음 (본인 소유가 아닌 job 포함) |
| 409 | 분석 전에 마스터링 시도 |
| 410 | 만료된 job (12시간 경과) |
| 413 | 파일 크기 초과 |
| 429 | rate limit 초과 |