Orthogonal
Make an outbound voice call
Offering
- Provider
- Orthogonal
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Infrastructure
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://np.orthogonal.com/agentphone/v1/calls- MIME type
- application/json
- First seen
- 2026-10-16T01:50:03.832Z
- Last seen
- Tags
- X402, paid-api, orthogonal-proxy, agentphone, data-apis, voice, phone, sms, AI-agents, telephony
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.1 USDC
Atomic price: 100000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 2
- 100000 atomic units
Atomic price: 100000 · Network: eip155:5042 · Asset: 0x3600000000000000000000000000000000000000 · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "100000",
"payTo": "0x0477aeC8513F73adfe6E3C813650b25a28Cba54A"
},
{
"scheme": "exact",
"network": "eip155:5042",
"asset": "0x3600000000000000000000000000000000000000",
"amount": "100000",
"payTo": "0x0477aeC8513F73adfe6E3C813650b25a28Cba54A"
}
]Observed health
- Status
- Healthy
- Latest latency
- 951 ms
- Average latency
- 246 ms
- HTTP status
- 204
- Last checked
- Reachability
- 100% over 12 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"body": {
"type": "object",
"title": "CreateOutboundCallRequest",
"required": [
"agentId",
"toNumber"
],
"properties": {
"voice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Voice",
"description": "Voice ID override for this call (uses agent's configured voice if omitted)"
},
"agentId": {
"type": "string",
"title": "Agentid",
"description": "Agent ID to make the call from"
},
"toNumber": {
"type": "string",
"title": "Tonumber",
"description": "Phone number to call (E.164 format)"
},
"modelTier": {
"enum": [
"turbo",
"balanced",
"max"
],
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Modeltier",
"description": "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": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Variables",
"description": "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."
},
"fromNumberId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Fromnumberid",
"description": "Optional phone number ID to use as caller ID. Must belong to the agent. If omitted, the agent's first assigned number is used."
},
"systemPrompt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Systemprompt",
"description": "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."
},
"initialGreeting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Initialgreeting",
"description": "Optional initial greeting to speak when recipient answers. Pass an empty string to have the agent stay silent and wait for the recipient to speak first."
},
"disableRecording": {
"type": "boolean",
"title": "Disablerecording",
"default": false,
"description": "When true, no audio recording is stored for this call. The transcript is still captured and available via the transcript endpoints and the agent.call_ended webhook. Useful for calls where a party has not consented to being recorded (e.g. two-party consent states)."
},
"callScreeningPurpose": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Callscreeningpurpose",
"description": "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."
},
"callScreeningIdentity": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Callscreeningidentity",
"description": "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."
}
},
"description": "Request model for creating an outbound call."
},
"type": "http",
"method": "POST",
"bodyType": "json"
}Output schema
{}