Integrate ReverbSMS into your applications with our REST API.
All API requests require authentication using your API key. Include it in the Authorization header:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://smsecho.com/api/v1/numbersGet your API key from Settings → API Access
/api/v1/numbersList all your rented phone numbers.
{
"success": true,
"numbers": [
{
"id": "uuid",
"phone_number": "+13125558901",
"label": "Main",
"status": "active",
"created_at": "2024-01-15T10:30:00Z",
"expires_at": "2024-02-15T10:30:00Z"
}
]
}/api/v1/numbers/availableSearch for available phone numbers to rent.
| Parameter | Type | Description |
|---|---|---|
| country_code | string | Country code (default: US) |
| area_code | string | Filter by area code |
| state | string | Filter by state (e.g., IL, CA) |
| limit | number | Max results (default: 20) |
{
"success": true,
"numbers": [
{
"phone_number": "+13125551234",
"region": "Chicago, IL",
"monthly_cost": 5.00
}
],
"count": 20
}/api/v1/numbersRent a new phone number.
{
"phone_number": "+13125551234",
"plan_id": "uuid-of-plan",
"label": "My Number"
}{
"success": true,
"number": {
"id": "uuid",
"phone_number": "+13125551234",
"label": "My Number",
"status": "active",
"expires_at": "2024-02-15T10:30:00Z"
}
}/api/v1/messagesList messages received on your numbers.
| Parameter | Type | Description |
|---|---|---|
| phone_number_id | string | Filter by specific number |
| limit | number | Max results (default: 50) |
| offset | number | Pagination offset |
{
"success": true,
"messages": [
{
"id": "uuid",
"from": "+15551234567",
"to": "+13125558901",
"to_label": "Main",
"body": "Your code is 123456",
"received_at": "2024-01-15T10:30:00Z",
"forwarded": true
}
],
"pagination": {
"limit": 50,
"offset": 0,
"has_more": false
}
}Receive real-time notifications when SMS messages arrive. Configure your webhook URL in Settings.
{
"event": "message.received",
"data": {
"id": "uuid",
"phone_number": "+13125558901",
"from": "+15551234567",
"body": "Your verification code is 847293",
"received_at": "2024-01-15T10:30:00Z"
}
}API requests are limited to 100 requests per minute per API key. If you exceed this limit, you'll receive a 429 response.
All errors return a consistent JSON format:
{
"error": "Error message",
"hint": "How to fix it"
}200Success400Bad request / Invalid parameters401Unauthorized / Invalid API key402Payment required / Insufficient credits404Resource not found429Rate limit exceeded500Server error