We hold the carrier contracts. You call one API
Voice, SMS and speech-to-text sit behind one REST API at telkit, with an OpenAPI contract and a typed SDK on top. The reason we exist: a product team should not have to run a telephony operation on the side.
Communications runs deeper than it looks
Say a team “just needs calls and transcription”. What comes with it: carrier contracts, a media stack, Norwegian regulation, speech AI and an on-call rota. AI writes the code faster than ever. The KYC folder, the NRDB port and the carrier's CPS ceiling stay exactly where they were.
Carriers & commercials
SIP trunks, origin-based rate decks, ASR floors, per-second billing, premium-range traps and AUP bans on auto-dialing.
Real-time media
SIP/RTP, NAT traversal, codecs, egress, recording and jitter handling. The whole media stack telephony actually demands.
Regulation
Nkom notification, number provisioning and KYC, NRDB porting, 112 obligations, caller-ID and anti-spoofing rules, SMS sender IDs, GDPR and EEA residency.
Speech AI
GPU inference, model selection, diarization, word alignment, VAD and hallucination control, and quality across bokmål, nynorsk and dialects.
Operations
24/7 uptime, an on-call rota and capacity planning against carrier CPS limits. A telephony failure is visible the second it happens.
telkit carries it once.
Our job is turning that burden into a handful of primitives you can call within minutes: calls, messages, numbers and transcription. You attach an opaque external_ref and metadata, and telkit never interprets them.
The combination is where we win
Norwegian transcription, data that stays in the EEA, and prices printed on the pricing page. One API key covers all of it.
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.
We sell in Norway, and the data sits in the EEA
“Norway-first” describes the market. “EU-resident” describes where the data lives. People routinely conflate the two, so we separate them here.
The Norwegian market first
telkit is sold in Norway, to Norwegian businesses. Norwegian transcription, real +47 numbers and Norwegian KYC are only worth anything here anyway.
The data sits in the EEA
Media is pinned to Frankfurt (eu-central), speech-to-text runs on EU endpoints, and recordings and transcripts are stored in the EEA on Hetzner. Schrems II is about transfers out of the EEA. Inside it, ordinary GDPR rules apply.
Honest about “data in Norway”
Hetzner operates no Norwegian region. Data sitting physically in Norway takes a dedicated Enterprise deployment, and we do not promise it on the standard tier.
Broader EU is future work
The rest of the Nordics and the EU is an expansion market we have put no date on. The residency story holds as long as we stay EEA-first.
Seven binding principles
They decide what we build, and what we turn down.
Developer-first
OpenAPI 3.1 is the source of truth. The SDK and the docs are generated from it. If something is undocumented, it does not exist.
Typed end to end
Responses, webhook payloads and errors carry types in the SDK, so the compiler catches the field name you misspelled.
Domain-agnostic
telkit models communications primitives and nothing else. You attach an opaque external_ref and metadata, and we never interpret them.
Pricing in plain sight
Voice bills per second, transcription per audio-second, all-in EUR with no platform fee. SMS the carrier filtered out is never invoiced.
EEA residency by default
Content does not leave the EEA, and the residency is written into the processing agreement.
Regulation is a product surface
KYC bundles, porting, emergency calling, AUP and consent each have their own API surface and their own events to listen on.
One way to do each thing
We resist surface sprawl. A small API with a single path through each resource is easier to keep correct.
A small team in Norway
A small team in Norway builds telkit, and we wear every one of these hats ourselves. That is why the disciplines are on show here. Real profiles arrive when the people behind them do.
Platform & API
The REST API, the OpenAPI contract and the typed SDK.
Speech AI
Bokmål and nynorsk quality, diarization and continuous STT evaluation.
Telecom & regulation
Carrier relationships, numbers, KYC and porting.
Operations & security
EEA infrastructure, uptime and data protection.
No invented names and no stock photos.
What we can stand behind
No fabricated customer counts. Everything here is something we can show you in the product.
One API for calls, transcription and SMS. Recording, live transcripts and summaries are built in.
Where the data lives media pinned to Frankfurt, speech-to-text on EU endpoints, recordings stored in the EEA.
Billing voice per second, transcription per audio-second, no platform fee.
Build on an API that already holds the carrier contracts
Get an API key and send your first call within minutes. Free tier, and no card needed.