Emotion API
A speech emotion recognition API you can ship.
The oruk emotion API returns 15 calibrated, multilabel emotion scores from prerecorded English audio through one REST call. It is file-based, metered per second of audio, and benchmarked in the open — the same models, the same scoring pipeline, published results.
How it works
- 01
Create an account. Sign up, verify your email, and get $5 in trial credit — no card required.
- 02
Send audio. POST a prerecorded English audio file (WAV, FLAC, MP3, M4A, OGG, or WebM; up to 30 MB / 60 minutes) to /v1/audio/emotions.
- 03
Read calibrated labels. The response scores 15 emotion labels against thresholds calibrated on held-out audio. A clip can carry several labels; long files include time-local segments.
One request, calibrated output
Send a file, get scored labels. Emotion responses intentionally omit transcript text — use /v1/audio/analysis when you want the transcript, emotion, and speaking style together.
curl https://speech-api.oruk.ai/v1/audio/emotions \
-H "Authorization: Bearer $ORUK_API_KEY" \
-F file=@call.wav -F model=oruk-spectra-1{
"object": "audio.emotions",
"model": "oruk-spectra-1",
"emotions": [
{ "label": "frustrated", "score": 0.83 },
{ "label": "worried", "score": 0.61 }
],
"segments": [...],
"usage": {
"audio_seconds": 42.7,
"billable_seconds": 43,
"estimated_cost_usd": 0.0043
}
}The 15 emotion labels
Every label is scored on every request. Labels crossing their calibrated threshold are selected; if none cross, the highest-scoring label is returned as a fallback so responses are never empty.
- happy
- excited
- hopeful
- sad
- worried
- angry
- frustrated
- disappointed
- scared
- disgusted
- surprised
- embarrassed
- proud
- relieved
- neutral
Measured, not marketed
On speech-emotion-bench — 64,384 held-out clips scored with one identical pipeline across 64 systems — oruk Spectra reaches 77.6% accuracy and 0.81 macro F1. One caveat stated plainly: the oruk entry is trained in-distribution, while other systems are evaluated zero-shot. Protocol, sample counts, and downloadable results are on the methodology page.
Pricing
Emotion requests on Spectra 1 cost $0.0060 per audio minute (pricing version 2026-07-11), metered by measured second with a one-second minimum. Every response reports its own measured duration and estimated cost. Full rates for every task and model are on the pricing page.
Data handling and scope
Audio and outputs are used to produce the response and are not retained after it is returned; billing and audit metadata is kept. oruk never trains on customer content. Outputs are calibrated acoustic annotations — not facts about a person’s inner state — and should not be the sole basis for consequential decisions. See the privacy policy, responsible use guidance, and the full capabilities and scope statement.
Start with $5 in trial credit
Create an account and make your first emotion request in minutes. No card required.
