One API for SMS, calls and Norwegian speech-to-text
Norwegian numbers, published prices, audio that stays in the EEA.
One REST API. One OpenAPI contract. A TypeScript SDK where every field is typed. You never negotiate a carrier agreement or sit through a separate KYC round per vendor, because we already did that part.
Free tier. No card.
import { createTelkit } from "@telkit/sdk"; const telkit = createTelkit({ apiKey: process.env.TELKIT_API_KEY }); // Transcribe an audio file. One call, Norwegian model, EU endpoint.const job = await telkit.transcription.jobs.create({ audioUrl: "https://cdn.telkit.no/recording.mp3", language: "no", diarize: true,});Watch Norwegian speech turn into text
Interim results, final results, speaker labels and timestamps, streamed word by word. Hit the button and use your own microphone.
Starting a sample call …
Simulated transcript. Tap to use your own microphone.
This is the engine behind the API, not a recording.
Three problems you would otherwise solve separately
Norwegian language quality, EEA storage, and prices you can do the maths on up front.
One API for calls, transcription and SMS
A call can be recorded, transcribed while it runs and summarised once it ends. No wiring three vendors together to get there.
The audio stays inside the EEA
Media is pinned to eu-central in Frankfurt, speech-to-text runs on EU endpoints, and recordings sit with Hetzner inside the EEA. That is contractual, not a toggle.
Per second, in EUR, no platform fee
Voice bills per second from answer. Transcription bills per audio second rather than however long your WebSocket happened to stay open. Carrier fees are already in the rate.
Take one of them, or all three
Each surface stands on its own. Run transcription for a year and add telephony the day you need it.
Built for the person writing the code
An idempotency key on every write, Ed25519-signed webhooks, and your remaining quota in the response headers.
- OpenAPI 3.1
One contract, never out of step with the API.
- Typed SDK
Generated from that contract. Autocomplete on every field.
- Signed webhooks
Every event carries an Ed25519 signature. Verify, then trust.
- Idempotency
Writes take an Idempotency-Key, so retrying is safe.
- Price up front
Ask what a call costs before you make it.
- SSE streams
Follow long jobs without polling.
Here is the arithmetic
These are the same rates as the pricing page. Nothing appears on the invoice that is not listed here.
One API for calls, transcription and SMS, with recording, live transcripts and summaries built in.
Data residency media pinned to Frankfurt, speech-to-text on EU endpoints, recordings stored in the EEA.
From per audio minute for batch transcription, billed per second, no platform fee.
The sub-processors are on this page, not in a PDF
We have no customer logos to show yet. Instead, here is the stack telkit actually runs on and who processes data on your behalf.
- Stored in the EEA
- GDPR processor with a DPA
- Media pinned to eu-central (Frankfurt)
- Recordings stored with Hetzner in the EEA
- DIDWWVoice / PSTN carrier
- TelnyxVoice / SMS (secondary)
- SveveSMS (Norway)
- LiveKit CloudMedia plane, pinned to eu-central (Frankfurt)
- DeepgramSpeech-to-text (EU endpoint)
- HetznerStorage (EEA)
- Mistral (La Plateforme)Summaries (EU)
The prices are right here
All in EUR, billed by the second, no platform fee. Start free.
- Voice bills per second from answer. Nothing is rounded up to whole minutes.
- Transcription bills per audio second, not per second your WebSocket stayed open.
- Everything in EUR, with carrier fees already inside the rate.
Ready to build?
Get an API key and send your first request today. Free tier, and we do not ask for a card.