Quickstart

Send your first LinkedIn voice note in under 5 minutes: get a key, install the extension, upload audio, send.

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:

  1. Install it from the Chrome Web Store (setup help: svarapi.io/extension).
  2. Open the extension and paste your API key.
  3. 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

Ask Svara

Hey! I'm the Svara assistant. Ask me anything about integrating voice notes into your product.

Powered by Svara