Skip to content

Developer Platform

Voice calls as an API primitive

Place, receive and control calls with a few lines of code. Real-time events, media streams and AI built into the same API, so you never glue three vendors together again.

Calls in one request

POST /v1/calls starts a call. The response is a call object you can mutate live: transfer, mute, record, play, gather.

Event-driven control

Webhooks and WebSocket streams for ringing, answer, DTMF, speech and hangup, delivered in order with signatures.

Media streaming

Fork live audio to your servers for custom transcription, analytics or your own AI stack.

Conferences and transfers

Mix legs into conferences, run attended transfers and build whisper coaching with simple verbs.

AI in the call object

Attach an AI agent, transcription or sentiment analysis to any call with one parameter.

Honest sandboxes

Test keys route to simulated carriers with realistic timing, so CI never places a real call.

How it works

  1. 1

    Get an API key

    Sign up and create a scoped key. The sandbox works immediately, no approval queue.

  2. 2

    Make your first call

    One curl command rings your phone. The quickstart takes five minutes.

  3. 3

    Subscribe to events

    Add a webhook endpoint and drive your call logic from real-time state changes.

call.ts

import { GTalk2VoIP } from "@gtalk2voip/sdk";

const client = new GTalk2VoIP(process.env.API_KEY);

const call = await client.calls.create({
  to: "+14155550134",
  from: "+14155550100",
  record: true,
  transcribe: true,
});

client.on("call.answered", async (event) => {
  await call.play("welcome.mp3");
});

See Voice API on your own traffic

The 14-day trial includes this product in full. Set it up yourself or bring your questions to an engineer.