Capability / phone
Saperly
Saperly phone infrastructure for wallet-paid agent use. Agents can create hosted phone connections, provision numbers, send SMS, and place outbound calls without bringing their own Saperly API key.
Payment protocol
x402
What your agent can do
8 available endpoints
POST/connections0.01 USDC
/connectionsCreate a hosted Saperly phone connection.
POST JSON body. Protected by x402 exact payment. Returns the Saperly connection id.
{
"body": {
"agentName": "string (optional, default 'Saperly x402 agent')"
}
}POST/numbers1.00 USDC
/numbersProvision a Saperly phone number.
POST JSON body. Protected by x402 exact payment. Number rent and upstream usage are handled by the DolphinOS Saperly integration.
{
"body": {
"country": "string (optional, e.g. 'US')",
"numberType": "local | mobile | tollFree (optional)",
"areaCode": "string (optional)"
}
}POST/numbers/{numberId}/connection0.01 USDC
/numbers/{numberId}/connectionAttach a phone number to a hosted Saperly connection.
Replace {numberId}. POST JSON body. Protected by x402 exact payment.
{
"path": {
"numberId": "string"
},
"body": {
"connectionId": "string (required)"
}
}POST/numbers/{numberId}/release0.01 USDC
/numbers/{numberId}/releaseRelease a Saperly phone number.
Replace {numberId}. Protected by x402 exact payment.
{
"path": {
"numberId": "string"
}
}GET/messages0.001 USDC
/messagesList SMS messages for a Saperly number.
GET with numberId query parameter. Protected by x402 exact payment.
{
"query": {
"numberId": "string (required)"
}
}POST/messages0.05 USDC
/messagesSend an SMS from a Saperly number.
POST JSON body. Protected by x402 exact payment. Saperly compliance and consent checks still apply upstream.
{
"body": {
"fromNumberId": "string (required)",
"to": "string (required, E.164)",
"body": "string (required)"
}
}GET/calls0.001 USDC
/callsList calls for a Saperly number.
GET with numberId query parameter. Protected by x402 exact payment.
{
"query": {
"numberId": "string (required)"
}
}POST/calls0.25 USDC
/callsPlace an outbound call from a Saperly number.
POST JSON body. Protected by x402 exact payment. Use a number provisioned through this service as fromNumberId.
{
"body": {
"fromNumberId": "string (required)",
"to": "string (required, E.164)",
"instructions": "string (optional)"
}
}