---
title: "Create Inbound Call"
method: POST
path: "/internal/voice/calls/inbound"
tags: ["Voice - Internal"]
---

# Create Inbound Call

`POST /internal/voice/calls/inbound`

## Request

- Base URL: `https://api.puppeteerai.com`
- URL: `https://api.puppeteerai.com/internal/voice/calls/inbound`
- Auth: none declared. Required headers: `X-Internal-Token`

Create the thread + conversation + CallModel for an inbound phone call.

Mirrors the legacy Retell inbound branch (voice.py) but driven by
VoiceAccount: resolve project by the dialed number, reuse or create the
caller's thread, start the conversation, run BeforeCallCreationTrigger, and
pre-create the CallModel so the LLM websocket takes the existing ``if call:``
path. Returns the minted call id the voice service streams against.

## Headers

- `X-Internal-Token` string, required

## Request body

- InboundCallRequest
  - `to_number` string, required
  - `from_number` string, nullable

## Response `200`

Successful Response

- InboundCallResponse
  - `call_id` string, nullable
  - `should_proceed` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getpuppeteer/apis/puppeteer-core-api.md) - [All operations](https://skmtc.dev/getpuppeteer/apis/puppeteer-core-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getpuppeteer/apis/puppeteer-core-api/revisions/94b4e928b42f?raw)
