Real phone calls, from your code.

Create agents, place and receive calls, and get transcripts and summaries through the API, the TypeScript SDK and webhooks. It is the same API the dashboard uses.

What you can build on it.

One REST API, an OpenAPI reference, and a TypeScript SDK generated from it.

  • Create and configure agents

    Set the instructions, voice and phone number in code, the same way you would in the dashboard.

  • Place calls

    Start an outbound call from your own system. Every outbound call goes through the compliance checks first.

  • Receive calls

    Point a number at an agent and get each call, its transcript and its cost back as data.

  • Feed your back office

    Send bookings, messages and summaries into your CRM, calendar or help desk from your own endpoint.

Same engine, one API call away.

Create agents, place calls and receive every event over webhooks. Typed SDKs for TypeScript and Python, and plain HTTP for everything else.

import { Larynth } from "@larynth/sdk";

const larynth = new Larynth();

const agent = await larynth.agents.create({
  name: "Front desk",
  knowledge: { website: "https://brightside.example" },
  voice: "ava",
  handoff: { when: "caller asks for a person" },
});

const call = await larynth.calls.create({
  agentId: agent.id,
  to: patient.phone,
  consent: { source: "booking-form", at: consentAt },
});

for await (const event of larynth.calls.stream(call.id)) {
  console.log(event.type, event.status);
}
from larynth import Larynth

larynth = Larynth()

agent = larynth.agents.create(
    name="Front desk",
    knowledge={"website": "https://brightside.example"},
    voice="ava",
    handoff={"when": "caller asks for a person"},
)

call = larynth.calls.create(
    agent_id=agent.id,
    to=patient.phone,
    consent={"source": "booking-form", "at": consent_at},
)

for event in larynth.calls.stream(call.id):
    print(event.type, event.status)
# Place a call with an existing agent
curl https://api.larynth.com/v1/calls \
  -H "Authorization: Bearer $LARYNTH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "agt_8f2c",
    "to": "+14155550142",
    "consent": { "source": "booking-form" }
  }'

# Follow the call as server-sent events
curl -N https://api.larynth.com/v1/calls/cal_7Hq2/events \
  -H "Authorization: Bearer $LARYNTH_API_KEY"
Response · live

Sandbox key. The number is fictional and no real call is placed.

npm i @larynth/sdkpip install larynth

Events come to you.

Webhooks are signed, so your endpoint can check that each one came from Larynth. The full list of events and their payloads is in the API reference.

Webhook events · signed
call.analyzed
Sent after a call ends and has been analyzed: the summary, the outcome and any structured fields you asked for.

Start in three steps.

Authentication is by API key. The docs cover the rest.

npm i @larynth/sdk

  1. Get an API key

    Create a key in the dashboard and send it with each request. Store it somewhere safe.

  2. Install the SDK

    The TypeScript SDK is generated from the OpenAPI spec, so it follows the API.

  3. Make a test call

    New accounts get $5 of free credit for browser and inbound test calls, with no subscription.

Put Larynth on the line.

Start with $5 of free credit and no subscription. Your first agent can be answering calls today.

Talk to us means support, answered by people. Email support@larynth.com or use the chat inside the app.