PayphonePayphone

API Reference

Complete REST API reference for all Dial x402 endpoints.

API Reference

Base URL: https://payphone.wtf

All paid endpoints support two auth methods:

MethodHow it worksBest for
x402Pay USDC per request (automatic via Payment-Signature header)Agents with wallets
CreditsPrepay credits, use Privy JWT or dial_live_* API keyHigh-volume callers, long-running bots

See Bearer Token for Privy session tokens vs long-lived API keys. API keys are scope-gated; see API Keys.

Endpoints

Messaging

MethodPathAuthPriceDescription
POST/api/v1/sms/sendx402$0.05Send SMS (pool number)

OSINT

MethodPathAuthPriceDescription
POST/api/v1/lookupx402$0.05Reverse phone lookup
POST/api/v1/lookup/with-creditsBearer1 creditReverse phone lookup
POST/api/v1/dehashed/searchx402$0.05Breach data search
POST/api/v1/dehashed/search-with-creditsBearer1 creditBreach data search

Billing & account

MethodPathAuthPriceDescription
POST/api/v1/credits/top-upx402 + Bearer$0.10Buy 100 credits
GET/api/v1/accountBearer / API keyFreeAccount snapshot + balance
GET/api/v1/account/creditsBearer / API keyFreeCredit breakdown
GET/api/v1/account/usageBearer / API key (account:read)FreeDaily quota usage
GET/api/v1/account/historyBearer / API key (account:read)FreeTransaction history
GET/api/v1/account/subscriptionBearer / API key (account:read)FreePlan + trial status
GET/api/v1/numbers/buy/statusBearer / API key (numbers:read)FreePoll provisioning job
GET/api/v1/sms/inboxBearer / API key / x402FreeMessages for owned line

Telephony (Coming Soon)

MethodPathAuthPriceDescription
POST/api/v1/numbers/buyx402$1.50Buy a phone number
POST/api/v1/verifications/startx402$0.25Start phone verification
POST/api/v1/esim/checkoutx402$2.45Order eSIM data plan

Discovery

MethodPathAuthDescription
GET/discovery/resourcesNoneBazaar resource catalog
GET/.well-known/x402NoneProtocol metadata
GET/api/v1/discoveryNoneLegacy discovery
GET/api/healthNoneHealth check

Error Responses

All errors follow the format:

{
  "success": false,
  "error": "error_code",
  "message": "Human-readable description"
}
StatusCodeMeaning
400validation_errorBad request body
400invalid_e164_destinationSMS recipient is not a valid E.164 phone number
401missing_token / invalid_api_keyMissing or invalid Bearer token
402(x402 protocol)Payment required
402insufficient_creditsNot enough credits — top up or fall back to x402
429rate_limitedToo many requests (60/min)
502provider_errorUpstream provider failure
500internal_errorUnexpected error

Rate Limits

  • 60 requests per minute per IP (configurable)
  • 429 response includes Retry-After header
  • X-RateLimit-Remaining header on every response

On this page