API Reference
Complete REST API reference for all Dial x402 endpoints.
Base URL: https://x402.dial.wtf
All paid endpoints support two auth methods:
| Method | How it works | Best for |
|---|
| x402 | Pay USDC per request (automatic via Payment-Signature header) | Agents with wallets |
| Credits | Prepay credits, use Bearer token | High-volume callers |
| Method | Path | Auth | Price | Description |
|---|
| POST | /api/v1/messages/send | x402 | $0.10 | Send SMS |
| POST | /api/v1/messages/send-with-credits | Bearer | 1 credit | Send SMS |
| Method | Path | Auth | Price | Description |
|---|
| POST | /api/v1/lookup | x402 | $0.05 | Reverse phone lookup |
| POST | /api/v1/lookup/with-credits | Bearer | 1 credit | Reverse phone lookup |
| POST | /api/v1/dehashed/search | x402 | $0.05 | Breach data search |
| POST | /api/v1/dehashed/search-with-credits | Bearer | 1 credit | Breach data search |
| Method | Path | Auth | Price | Description |
|---|
| POST | /api/v1/credits/top-up | x402 + Bearer | $0.10 | Buy 100 credits |
| GET | /api/v1/account | Bearer | Free | Check balance |
| Method | Path | Auth | Price | Description |
|---|
| POST | /api/v1/numbers/buy | x402 | $1.50 | Buy a phone number |
| POST | /api/v1/verifications/start | x402 | $0.25 | Start phone verification |
| POST | /api/v1/esim/checkout | x402 | $2.45 | Order eSIM data plan |
| Method | Path | Auth | Description |
|---|
| GET | /discovery/resources | None | Bazaar resource catalog |
| GET | /.well-known/x402 | None | Protocol metadata |
| GET | /api/v1/discovery | None | Legacy discovery |
| GET | /api/health | None | Health check |
All errors follow the format:
{
"success": false,
"error": "error_code",
"message": "Human-readable description"
}
| Status | Code | Meaning |
|---|
| 400 | validation_error | Bad request body |
| 401 | missing_token | Missing or invalid Bearer token |
| 402 | (x402 protocol) | Payment required |
| 403 | insufficient_credits | Not enough credits |
| 429 | rate_limited | Too many requests (60/min) |
| 502 | provider_error | Upstream provider failure |
| 500 | internal_error | Unexpected error |
- 60 requests per minute per IP (configurable)
429 response includes Retry-After header
X-RateLimit-Remaining header on every response