Complete reference for integrating smscheck SMS verification services into your application. Fast, reliable, and easy to use.
Welcome to the smscheck API! Our API allows you to programmatically access SMS verification services, manage phone number rentals, check SMS history, and integrate verification workflows into your applications.
https://api.smscheck.net/
smscheck uses API keys to authenticate requests. You can generate and manage your API keys from your account settings.
Include your API key in the Authorization header of each request:
Authorization: Bearer YOUR_API_KEY_HERE
curl -X GET "https://api.smscheck.net/balance" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "Content-Type: application/json"
import requests
headers = {
"Authorization": "Bearer YOUR_API_KEY_HERE",
"Content-Type": "application/json"
}
response = requests.get("https://api.smscheck.net/balance", headers=headers)
data = response.json()
const headers = {
"Authorization": "Bearer YOUR_API_KEY_HERE",
"Content-Type": "application/json"
};
fetch("https://api.smscheck.net/balance", { headers })
.then(response => response.json())
.then(data => console.log(data));
Retrieve your current account balance.
{
"status": "success",
"data": {
"balance": "125.50",
"currency": "USD"
}
}
Get a list of all available services with pricing information.
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | Optional | Filter services by country code (e.g., "US", "UK") |
{
"status": "success",
"services": [
{
"id": "whatsapp",
"name": "WhatsApp",
"category": "Messaging",
"price": "0.50",
},
{
"id": "telegram",
"name": "Telegram",
"category": "Messaging",
"price": "0.35",
}
]
}
Create a new SMS verification request.
| Parameter | Type | Required | Description |
|---|---|---|---|
| service | string | Required | Service ID (e.g., "whatsapp", "telegram") |
| number | string | Optional | Preferred phone number |
{
"service": "whatsapp",
}
{
"status": "success",
"data": {
"verification_id": 123,
"phone_number": "+1234567890",
"service": "whatsapp",
"status": "pending",
"cost": "0.50",
"expires_at": "2025-11-18T12:30:00Z",
"created_at": "2025-11-18T12:00:00Z"
}
}
{
"status": "error",
"error": {
"code": "insufficient_balance",
"message": "Insufficient balance. Required: $0.50, Available: $0.25"
}
}
Check the status of a verification request and retrieve SMS code if available.
{
"status": "success",
"data": {
"verification_id": 123,
"phone_number": "+1234567890",
"service": "whatsapp",
"status": "pending",
"sms_code": null,
"sms_text": null,
"cost": "0.50",
"created_at": "2025-11-18T12:00:00Z",
"expires_at": "2025-11-18T12:30:00Z"
}
}
{
"status": "success",
"data": {
"verification_id": 123,
"phone_number": "+1234567890",
"service": "whatsapp",
"status": "completed",
"sms_code": "123456",
"sms_text": "Your WhatsApp verification code is: 123456",
"cost": "0.50",
"created_at": "2025-11-18T12:00:00Z",
"expires_at": "2025-11-18T12:30:00Z"
}
}
Cancel a pending verification and receive a refund if no SMS was received.
{
"status": "success",
"data": {
"verification_id": 123,
"cancelled": true,
"refunded": true,
"refund_amount": "0.50"
}
}
{
"status": "error",
"error": {
"code": "cannot_cancel",
"message": "Cannot cancel verification in status: completed"
}
}
Get a list of all your phone number rentals.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | Optional | Page number (default: 1). |
| page_size | integer | Optional | Items per page (default: 15, max: 100). |
| query | string | Optional | Search query to filter rentals. |
{
"status": "success",
"data": {
"rentals": [
{
"rental_id": 123,
"phone_number": "+1234567890",
"country": "US",
"service": "whatsapp",
"status": "online",
"cost": "15.00",
"created_at": "2025-11-18T12:00:00Z",
"expires_at": "2025-11-24T12:00:00Z",
"days_left": 6,
"till_change": 270,
"autorenew": false
}
],
"pagination": {
"page": 1,
"page_size": 15,
"total": 1,
"has_more": false
}
}
}
Rent a phone number for a specified duration.
| Parameter | Type | Required | Description |
|---|---|---|---|
| service | string | Required | Service name for the rental. |
| duration | integer | Required | Rental duration in days (3 or 30). |
| number | string | Optional | Specific phone number to rent, if available. |
{
"service": "whatsapp",
"duration": 3
}
{
"status": "success",
"data": {
"rental_id": 123,
"phone_number": "+1234567890",
"service": "whatsapp",
"status": "online",
"cost": "15.00",
"duration_days": 3,
"expires_at": "2025-11-21T12:00:00Z",
"created_at": "2025-11-18T12:00:00Z",
"autorenew": false
}
}
Retrieve all SMS messages received on a rented number.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | Optional | Page number (default: 1). |
| page_size | integer | Optional | Items per page (default: 10, max: 100). |
{
"status": "success",
"data": {
"rental_id": 123,
"messages": [
{
"message_id": 1,
"sender": "WhatsApp",
"code": "123456",
"text": "Your verification code is 123456",
"received_at": "2025-11-18T11:30:00Z"
},
{
"message_id": 2,
"sender": "Telegram",
"code": "654321",
"text": "Your Telegram code is 654321",
"received_at": "2025-11-18T11:45:00Z"
}
],
"pagination": {
"page": 1,
"page_size": 10,
"total": 2,
"has_more": false
}
}
}
Cancel a rental and receive a refund if eligible.
{
"status": "success",
"data": {
"rental_id": 123,
"cancelled": true,
"refunded": true,
"refund_amount": "15.00"
}
}
Activate a rented number to receive SMS messages.
{
"status": "success",
"data": {
"rental_id": 123,
"status": "online",
"till_change": 270,
"message": "Activated successfully"
}
}
Toggle the autorenew status for a rental.
{
"status": "success",
"data": {
"rental_id": 123,
"autorenew": true,
"message": "Autorenew has been turned ON"
}
}
Webhooks allow you to receive real-time notifications when SMS messages are received. You need to add your webhook endpoint URL in the Settings section of your account to start receiving notifications.
{
"event": "incoming_message",
"order_id": 12345,
"from": "Service",
"to": "+1234567890",
"code": "123456",
"text": "Your verification code is 123456"
}
smscheck uses conventional HTTP response codes to indicate the success or failure of an API request.
| Status Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource was created successfully |
| 400 | Bad Request | Invalid request parameters |
| 401 | Unauthorized | Invalid or missing API key |
| 402 | Payment Required | Insufficient balance |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Something went wrong on our end |
{
"status": "error",
"error": {
"code": "insufficient_balance",
"message": "Your account balance is too low to complete this request",
"details": {
"current_balance": "0.25",
"required_balance": "0.50"
}
}
}
To ensure fair usage and system stability, API requests are rate-limited based on your account tier.
X-RateLimit-Limit - Maximum requests allowedX-RateLimit-Remaining - Requests remainingX-RateLimit-Reset - Time when the limit resetsNeed help? We're here for you!