Five steps to a native LinkedIn voice note. No audio hosting needed — you upload the file to Svara and get back an audio_url that always works.
Step 1: Get your API key
Sign up at svarapi.io/dashboard. Your API key appears right after signup.
export SVARA_API_KEY="sk_live_your_key_here"
Keys starting sk_live_ send real voice notes. Keys starting sk_test_ validate requests and return a simulated response without sending anything — handy while you build, but use sk_live_ for this quickstart.
Keep your key secret — never put it in client-side code or a public repo.
Step 2: Install the Svara Chrome extension
LinkedIn voice notes are sent from your own browser, so you need the extension once:
- Install it from the Chrome Web Store (setup help: svarapi.io/extension).
- Open the extension and paste your API key.
- Stay signed in to LinkedIn in that Chrome profile, and keep Chrome open while notes are sending.
That's all the setup LinkedIn needs — there are no LinkedIn credentials to pass in your API calls.
Step 3: Upload your audio
Record a voice note on your phone or computer (MP3, M4A/AAC, OGG/Opus, WAV, WebM or FLAC, up to 4 MB) and upload it:
curl -X POST https://svarapi.io/api/v1/audio \
-H "Authorization: Bearer $SVARA_API_KEY" \
-F file=@note.m4a
{
"id": "Xq3v9KdPz0bW7mYtR2cLfA",
"audio_url": "https://svarapi.io/api/v1/audio/Xq3v9KdPz0bW7mYtR2cLfA",
"content_type": "audio/mp4",
"size": 48213,
"expires_at": "2026-10-26T12:00:00.000Z",
"request_id": "req_…"
}
Save the audio_url:
export AUDIO_URL="https://svarapi.io/api/v1/audio/Xq3v9KdPz0bW7mYtR2cLfA"
Uploads are kept for 30 days, and you can send the same audio_url as many times as you like in that window. Prefer to record in the browser? Use the recorder on your dashboard — it uploads for you and hands you the audio_url.
Already host your audio somewhere? You can skip this step and pass your own
audio_url— it must be a direct, public https link to the audio file (not localhost, a share page, or a link that needs you to be signed in).
Step 4: Send the voice note
curl -X POST https://svarapi.io/api/v1/send \
-H "Authorization: Bearer $SVARA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "linkedin",
"recipient": "https://www.linkedin.com/in/jane-smith-a1b2c3",
"audio_url": "'"$AUDIO_URL"'"
}'
recipient is the person's LinkedIn profile URL (or just the part after /in/). You can voice-note people you can already message on LinkedIn — 1st-degree connections or an existing conversation.
The note is queued for your extension and you get 202 Accepted:
{
"id": "5f0c2d1e-8a4b-4c6f-9e21-3b7d9a0c1f42",
"status": "queued",
"platform": "linkedin",
"recipient": "jane-smith-a1b2c3",
"created_at": "2026-09-26T12:00:00Z",
"request_id": "req_…"
}
Step 5: Check delivery
Poll the status with the id from step 4:
curl https://svarapi.io/api/v1/status/5f0c2d1e-8a4b-4c6f-9e21-3b7d9a0c1f42 \
-H "Authorization: Bearer $SVARA_API_KEY"
| Status | Meaning |
|---|---|
| queued | Accepted, waiting for your extension to send it |
| sent | Delivered to LinkedIn — it's in the conversation as a native voice message |
| failed | Not delivered. See error and error_code |
| expired | No extension picked it up within 24 hours (Chrome closed or extension not installed) |
When a note fails or expires, error tells you what went wrong and what to do, and error_code is a stable value you can branch on in code (for example audio_expired, recipient_not_found, agent_not_running). The full list is in the API reference. Failed and expired notes never count against your quota.
Prefer push over polling? Register a webhook.
Other platforms
The upload step is the same on every platform — pass the audio_url from POST /v1/audio. Svara converts the audio to each platform's native voice format.
Telegram
Create a bot with @BotFather (/newbot), send your bot /start from the chat you want to reach, and find the chat id at https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates. Then:
curl -X POST https://svarapi.io/api/v1/send \
-H "Authorization: Bearer $SVARA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "telegram",
"recipient": "123456789",
"audio_url": "'"$AUDIO_URL"'",
"session": { "bot_token": "'"$TELEGRAM_BOT_TOKEN"'" }
}'
See the Telegram guide for details.
Next steps
- API Reference — every endpoint, including
POST /v1/audio - LinkedIn Voice Notes — the LinkedIn guide
- Use Svara from Claude, Cursor or any MCP client — let your AI assistant upload and send voice notes
- Authentication — key formats and security
- Webhooks — real-time delivery notifications
- Rate limits — quotas and limits