All services

Service / phone

AgentPhone

AgentPhone provides phone infrastructure for AI agents. Get phone numbers, make and receive calls, manage conversations and messages — all via x402 payments. Agents can provision their own phone numbers for signups, verification, and communication.

Documentation

Payment protocol

x402

01
basesolana

Payment protocol

mpp

02
tempo

Method ledger

22 callable methods

OpenAPI source
POST/v1/agents
0 USDC

Create a phone agent.

POST JSON body. Creates an agent that can handle calls. Returns agent_id.

{
  "body": {
    "name": "string (optional)",
    "instructions": "string (optional, system prompt for the agent)",
    "voice": "string (optional)"
  }
}
PATCH/v1/agents/{agent_id}
0 USDC

Update an agent.

PATCH JSON body with fields to update.

{
  "path": {
    "agent_id": "string"
  },
  "body": {
    "name": "string (optional)",
    "instructions": "string (optional)",
    "voice": "string (optional)"
  }
}
DELETE/v1/agents/{agent_id}
0 USDC

Delete an agent.

Permanently deletes the agent.

{
  "path": {
    "agent_id": "string"
  }
}
GET/v1/agents/{agent_id}
0 USDC

Get agent details.

Replace {agent_id}. Returns agent details.

{
  "path": {
    "agent_id": "string"
  }
}
GET/v1/agents/{agent_id}/calls
0 USDC

List calls for an agent.

Returns all calls handled by this agent.

{
  "path": {
    "agent_id": "string"
  }
}
GET/v1/agents/{agent_id}/conversations
0 USDC

List conversations for an agent.

Returns all conversations for this agent.

{
  "path": {
    "agent_id": "string"
  }
}
POST/v1/agents/{agent_id}/numbers
0 USDC

Attach a phone number to an agent.

Attach an existing phone number to this agent so it can receive calls.

{
  "path": {
    "agent_id": "string"
  },
  "body": {
    "number_id": "string (required)"
  }
}
DELETE/v1/agents/{agent_id}/numbers/{number_id}
0 USDC

Detach a phone number from an agent.

Removes the number from this agent.

{
  "path": {
    "agent_id": "string",
    "number_id": "string"
  }
}
POST/v1/agents/{agent_id}/webhook
0 USDC

Create a webhook for an agent.

Set up a webhook URL for agent events.

{
  "path": {
    "agent_id": "string"
  },
  "body": {
    "url": "string (required)"
  }
}
DELETE/v1/agents/{agent_id}/webhook
0 USDC

Delete webhook for an agent.

Removes the webhook.

{
  "path": {
    "agent_id": "string"
  }
}
GET/v1/agents/{agent_id}/webhook
0 USDC

Get webhook for an agent.

Returns webhook configuration.

{
  "path": {
    "agent_id": "string"
  }
}
GET/v1/agents/{agent_id}/webhook/deliveries
0 USDC

List webhook deliveries.

Returns webhook delivery history.

{
  "path": {
    "agent_id": "string"
  }
}
POST/v1/agents/{agent_id}/webhook/test
0 USDC

Test webhook delivery.

Sends a test event to the configured webhook.

{
  "path": {
    "agent_id": "string"
  }
}
POST/v1/calls
0-500000 USDC

Make a phone call with x402 upto settlement or MPP session billing.

POST JSON body. Initiates an outbound call and returns call_id. x402 authorizes up to 0.50 USDC with deferred settlement; MPP uses session billing for call usage.

{
  "body": {
    "to": "string (required, phone number)",
    "from": "string (optional, your number_id)",
    "agent_id": "string (optional)",
    "prompt": "string (optional)"
  }
}
POST/v1/calls/web
0-500000 USDC

Make a web call (WebRTC) with x402 upto settlement or MPP session billing.

POST JSON body. Creates a WebRTC call session. x402 authorizes up to 0.50 USDC with deferred settlement; MPP uses session billing for call usage.

{
  "body": {
    "agent_id": "string (optional)",
    "prompt": "string (optional)"
  }
}
GET/v1/conversations
0 USDC

List all conversations.

Returns all conversations.

GET/v1/conversations/{conversation_id}
0 USDC

Get a conversation.

Returns conversation details.

{
  "path": {
    "conversation_id": "string"
  }
}
GET/v1/conversations/{conversation_id}/messages
0 USDC

Get messages in a conversation.

Returns all messages in the conversation.

{
  "path": {
    "conversation_id": "string"
  }
}
POST/v1/numbers
100000 USDC

Purchase a phone number.

POST JSON body. Purchases a phone number. Returns number_id and the phone number.

{
  "body": {
    "country": "string (optional, ISO country code, default 'US')",
    "area_code": "string (optional)"
  }
}
DELETE/v1/numbers/{number_id}
0 USDC

Release a phone number.

Releases the phone number.

{
  "path": {
    "number_id": "string"
  }
}
GET/v1/numbers/{number_id}/calls
0 USDC

List calls for a number.

Returns all calls for this number.

{
  "path": {
    "number_id": "string"
  }
}
GET/v1/numbers/{number_id}/messages
0 USDC

List messages for a number.

Returns all messages for this number.

{
  "path": {
    "number_id": "string"
  }
}