Overview
Omi streams raw audio bytes from your device to any webhook endpoint you configure. Use this to build custom audio processing, live transcription, or recording workflows.Any Backend
Stream to your own server, cloud function, or local dev environment
Configurable Interval
Choose how often you receive audio chunks (e.g. every 5, 10, or 30 seconds)
Raw Audio
Receive raw PCM bytes — add a WAV header to save as audio files
Setup
Create a Webhook Endpoint
Build an endpoint that accepts POST requests with raw audio bytes.Omi sends requests in this format:
| Parameter | Description |
|---|---|
sample_rate | Audio samples per second (see table below) |
uid | The user’s unique ID in Omi |
| Body | Raw PCM audio bytes (application/octet-stream) |
Sample Rates by Device
Sample Rates by Device
| Device | Sample Rate |
|---|---|
| Omi (consumer) | 16,000 Hz |
| DevKit 2 | 16,000 Hz |
| DevKit 1 (v1.0.4+) | 16,000 Hz |
| DevKit 1 (v1.0.2) | 8,000 Hz |
Configure in the Omi App
- Open the Omi app
- Go to Settings → Developer Mode
- Scroll to Realtime audio bytes
- Enter your webhook URL
- Set the interval (e.g.
10for every 10 seconds)
Example: Save to Google Cloud Storage
A complete example that saves audio chunks as WAV files in GCS.Set Up GCS
Follow the Cloud Audio Storage guide to create a bucket and get credentials.
Deploy the Example
- Fork github.com/mdmohsin7/omi-audio-streaming
- Clone and deploy to any cloud provider (GCP, AWS, DigitalOcean) or run locally with ngrok
- Set these environment variables:
| Variable | Value |
|---|---|
GOOGLE_APPLICATION_CREDENTIALS_JSON | Base64-encoded GCP key |
GCS_BUCKET_NAME | Your bucket name |
Related
Cloud Audio Storage
Set up GCS bucket and credentials
Build Apps
Create Omi apps with audio capabilities