---
title: "Create Outbound Call"
method: POST
path: "/v1/calls"
tags: ["calls"]
---

# Create Outbound Call

`POST /v1/calls`

Initiate an outbound call.

This endpoint allows you to programmatically make phone calls from your agent
to any phone number. Use `fromNumberId` to pick which of the agent's numbers
to use as caller ID; if omitted, the first assigned number is used.

Flow:
1. Validates the agent belongs to your account and has a phone number
2. Initiates a call from the agent's number to the destination
3. When recipient answers, speaks the initial greeting (if provided)
4. Listens for recipient's speech and sends to your webhook
5. Continues conversation using your webhook responses

## Request body

- CreateOutboundCallRequest — Request model for creating an outbound call.
  - `agentId` string, required — Agent ID to make the call from
  - `toNumber` string, required — Phone number to call (E.164 format)
  - `fromNumberId` string, nullable — Optional phone number ID to use as caller ID. Must belong to the agent. If omitted, the agent's first assigned number is used.
  - `initialGreeting` string, nullable — Optional initial greeting to speak when recipient answers
  - `voice` string, nullable — Voice ID override for this call (uses agent's configured voice if omitted)
  - `systemPrompt` string, nullable — When provided, uses a built-in LLM for the conversation instead of forwarding to a webhook. The prompt defines the AI's personality and conversation topic.
  - `modelTier` 'turbo' | 'balanced' | 'max', nullable — Optional model tier override for this call's built-in conversation. Only applies when ``systemPrompt`` is provided; defaults to the agent's configured modelTier.
  - `variables` object, nullable — Optional per-call dynamic variables. Values are substituted into ``{{var_name}}`` placeholders in the agent's system prompt and initial greeting at call time. Requires either ``systemPrompt`` or a hosted-mode agent.
  - `callScreeningIdentity` string, nullable — For outbound calls that hit an automated call screener (e.g. iOS 26 Call Screening or Android Call Screen): the identity the agent gives when asked who is calling. Overrides the agent's stored default for this call. Both identity and purpose are required to enable screening; if only a purpose is set, the agent's name is used.
  - `callScreeningPurpose` string, nullable — For outbound calls that hit an automated call screener: the purpose the agent gives when asked why it is calling. Overrides the agent's stored default for this call.

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/agentphone/apis/agentphone-api.md) · [All operations](https://skmtc.net/agentphone/apis/agentphone-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agentphone/agentphone-api/versions/5724ccaa33d8/schema)
