
curl and a Bearer token. POST a multipart file to https://api.privocio.com/v1/transcriptions with model=whisper-1 and read JSON from stdout — no SDK required.
Shell access is often the fastest way to verify an API key, debug uploads, or script transcription in CI. This guide shows cURL speech-to-text recipes for Privocio's private STT API.
For language-specific tutorials, see Python, JavaScript, and Go guides.
Prerequisites
curl7.x+ (for-Fmultipart uploads)- a Privocio API key (authentication)
- an audio file, e.g.
recording.wav
Export your key:
export PRIVOCIO_API_KEY="YOUR_API_KEY"
Health check (no auth)
curl -sS https://api.privocio.com/healthz | jq .
Batch transcription
curl -sS -X POST "https://api.privocio.com/v1/transcriptions" \
-H "Authorization: Bearer $PRIVOCIO_API_KEY" \
-F "file=@recording.wav;type=audio/wav" \
-F "model=whisper-1" \
-F "language=en" | jq .
The response JSON includes the transcript text. Large files may take several minutes — add --max-time 600 if needed.
OpenAI-compatible route
curl -sS -X POST "https://api.privocio.com/v1/audio/transcriptions" \
-H "Authorization: Bearer $PRIVOCIO_API_KEY" \
-F "file=@recording.wav;type=audio/wav" \
-F "model=whisper-1" \
-F "language=en" | jq .
Same Whisper-style contract as OpenAI — useful when migrating scripts. See migrate from OpenAI Whisper.
Streaming transcription (SSE)
curl -N -sS -X POST "https://api.privocio.com/v1/transcriptions/stream" \
-H "Authorization: Bearer $PRIVOCIO_API_KEY" \
-F "file=@recording.wav;type=audio/wav" \
-F "model=whisper-1"
The -N flag disables buffering so SSE segments print as they arrive. Details: streaming docs.
Agent output mode (token savings)
curl -sS -X POST "https://api.privocio.com/v1/transcriptions" \
-H "Authorization: Bearer $PRIVOCIO_API_KEY" \
-F "file=@recording.wav;type=audio/wav" \
-F "model=whisper-1" \
-F "language=en" \
-F "output_mode=agent" | jq .
Learn about output modes for LLM pipelines.
Common errors
| HTTP | Cause | Fix | |
|---|---|---|---|
| 401 | Bad or missing key | Check `Authorization: Bearer` | |
| 413 | File too large | Compress or split audio | |
| 415 | Wrong MIME type | Set `type=audio/wav` on the file part | |
| 502 | Runtime busy | Retry with backoff |
Best practices
Frequently Asked Questions
Can I use cURL in CI/CD?
Yes. Upload artifacts from build pipelines the same way — ideal for smoke tests after deploy.
Do I need an SDK?
No. cURL is enough for batch and streaming. SDKs add ergonomics in app code.
Is this Whisper-compatible?
Yes — whisper-1 and /v1/audio/transcriptions match OpenAI's shape. Compare Privocio vs OpenAI Whisper.
Where are full cURL examples?
The API docs cURL section lists every endpoint.
Conclusion
cURL is the zero-dependency way to call Privocio's speech-to-text API — perfect for debugging, scripts, and ops workflows.