#TypeScript SDK (@voice/sdk)
Generated from openapi.yaml (types for every endpoint) on top of openapi-fetch.
import { createVoiceClient, verifyWebhook } from '@voice/sdk';
const voice = createVoiceClient({ baseUrl: process.env.VOICE_API_URL!, apiKey: process.env.VOICE_API_KEY! });
const { data, error } = await voice.POST('/v1/calls', { body: { agent: 'user-123', to: '+31612345678' } });
if (error) console.error(error.error.code); // typed error envelope
else console.log(data.call_id, data.status); // typed Call
const { data: agent } = await voice.GET('/v1/agents/{id}', { params: { path: { id: 'user-123' } } });
- Every path, parameter and body is type-checked; responses are typed per status code.
verifyWebhook(secret, rawBody, headers)returns the parsed event or throws.- Types:
import type { Call, Agent, Carrier, PhoneNumber, components } from '@voice/sdk'.
Regenerate after API changes: pnpm --filter @voice/sdk generate && pnpm --filter @voice/sdk build.
Other languages: generate a client from /openapi.yaml with any OpenAPI 3.1 generator.