API Access

Get Started with SMSPinVerify API

YOUR API KEY: XXXXXXXX

Download Windows App

Get Number

https://api.smspinverify.com/user/get_number.php?customer=apikey&app=appname&country=countryname&number=optional&area_code=optional&shownid=1&duration=duration

Example (new number): http://api.smspinverify.com/user/get_number.php?customer=apikey&app=Google+Voice&country=USA&number=&shownid=1&duration=3 days

Example (US area code filter): http://api.smspinverify.com/user/get_number.php?customer=apikey&app=Google+Voice&country=USA&area_code=201&shownid=1&duration=3 days

Example (request specific number again): http://api.smspinverify.com/user/get_number.php?customer=apikey&app=Google+Voice&country=USA&number=17432592794&shownid=1&duration=3 days

Request a specific number (reuse): To get the same number again for an app (like on the homepage “Specific Number” box), pass the number parameter with the full phone number (e.g. number=16143548416). Use the same app and country as when you first got that number. Reuse may be free within the reuse window, depending on the app.

US area code filter: Pass area_code as a 3-digit value (example: 201) to limit numbers .

Success Response:

  • 14155551234 (default, number only)
  • 14155551234|987654 (when shownid=1, format is number|n_id)

Duration Parameters:

  • 15 minutes (default)
  • 3 days
  • 7 days
  • 14 days
  • 25 days

Messages:

  1. Customer Not Found.
  2. App Not Found.
  3. Country Not Found.
  4. New Numbers registration in progress, please wait or check back later.
  5. Error 102, check back later.

Pass shownid if you want to show id of number for reject. format: number|id

5 NUMBER PER MINUTE

Get History

https://api.smspinverify.com/user/get_history.php?customer=apikey

Messages:

  1. Customer Not Found.

Check Balance

https://api.smspinverify.com/user/get_balance.php?customer=apikey

Messages:

  1. Customer Not Found.

Check Rates & Business Codes

https://api.smspinverify.com/user/get_rates.php?customer=apikey&country=countryname

Messages:

  1. Customer Not Found.

Reuse Number

https://api.smspinverify.com/user/get_number.php?customer=apikey&app=appname&country=countryname&number=number&duration=duration

Example : https://api.smspinverify.com/user/get_number.php?customer=apikey&app=Google+Voice&country=USA&number=17432592794&duration=3 days

Duration Parameters:

  • 15 minutes (default)
  • 3 days
  • 7 days
  • 14 days
  • 25 days

Messages:

  1. Customer Not Found.
  2. App Not Found.
  3. Country Not Found.
  4. New Numbers registration in progress, please wait or check back later.
  5. Error 102, check back later.

5 NUMBER PER MINUTE

Get SMS

https://api.smspinverify.com/user/get_sms.php?customer=apikey&number=number&country=countryname&app=appname

Example : https://api.smspinverify.com/user/get_sms.php?customer=apikey&number=112869xxx&country=malaysia&app=google

Messages:

  1. Customer Not Found.
  2. Number Not Found.
  3. You have not received any code yet.
  4. Your balance is expired.
  5. Error 102, check back later.

3 MINUTES PER NUMBER

Webhook (How It Works)

Step 1: Set your Webhook URL in account settings (must be HTTPS).

Step 2: Call get_number.php with shownid=1 to receive number|n_id.

Step 3: Call get_sms.php using that number. When SMS is found, API returns the message and also sends a webhook POST to your URL.

Webhook Request Method:POST

Webhook Content-Type:application/json

Example Webhook Payload:

{
  "message": "Your Google verification code is 482913",
  "otp": "482913",
  "user_id": "123456",
  "number": "14155551234",
  "country_id": "USA",
  "app_id": "Google Voice",
  "timestamp": "2026-02-25 10:24:15"
}

Your endpoint should reply: HTTP 200 (any response body is fine).

Example endpoint response:

{"received": true}

Webhook is sent only when a code is found during get_sms processing.

Renew Number

https://api.smspinverify.com/user/renew_number.php?customer=apikey&number=number&duration=duration

Example : https://api.smspinverify.com/user/renew_number.php?customer=apikey&number=17432592794&duration=3 days

Duration Parameters:

  • 15 minutes
  • 3 days
  • 7 days
  • 14 days
  • 25 days

Messages:

  1. Customer Not Found.
  2. Number Not Found.
  3. Insufficient balance.
  4. Renewal is only available after a message has been received.
  5. Error 102, check back later.

Available for selected numbers only.

Reject Number

https://api.smspinverify.com/user/reject_code.php?customer=apikey&number=number&n_id=n_id&country=countryname&app=appname

Example : https://api.smspinverify.com/user/reject_code.php?customer=apikey&number=112869xxx&country=malaysia&app=google

Messages:

  1. Customer Not Found.
  2. Number Not Found.
  3. Number Rejected.
  4. Cant Reject.
  5. Your balance is expired.
  6. Error 102, check back later.

Get n_id from History api

JSON API Overview

All JSON API endpoints return responses in a standardized format:

  • Success Response:{"success": true, "data": {...}} or {"success": true, "message": "..."}
  • Error Response:{"success": false, "error": "Error message"}

All responses include appropriate HTTP status codes (200, 400, 404, 429, 500, 503).

Get Balance

Endpoint:http://api.smspinverify.com/json/get_balance.php

Method: GET

Parameters:

  • customer (required) - Your API key

Example Request:

http://api.smspinverify.com/json/get_balance.php?customer=YOUR_API_KEY

Success Response (200):

{
    "success": true,
    "data": {
        "id": "123",
        "full_name": "John Doe",
        "email": "[email protected]",
        "balance": "100.50"
    }
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing or invalid
  • {"success": false, "error": "Customer not found."} (404) - Customer does not exist
  • {"success": false, "error": "Access denied."} (500) - IP address blocked
  • {"success": false, "error": "Database connection failed."} (500) - Database error
  • {"success": false, "error": "Database query failed."} (500) - Query error

Get History

Endpoint:http://api.smspinverify.com/json/get_history.php

Method: GET

Parameters:

  • customer (required) - Your API key

Example Request:

http://api.smspinverify.com/json/get_history.php?customer=YOUR_API_KEY

Success Response (200):

{
    "success": true,
    "data": [
        {
            "id": "8666290",
            "number": "15717412873",
            "message": "Your code is 123456",
            "country_name": "USA",
            "app_name": "Google Voice",
            "timestamp": "2024-01-15 10:30:00"
        },
        {
            "id": "8666289",
            "number": "15717412874",
            "message": "",
            "country_name": "USA",
            "app_name": "WhatsApp",
            "timestamp": "2024-01-15 10:25:00"
        }
    ]
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing
  • {"success": false, "error": "Access denied."} (500) - IP address blocked
  • {"success": false, "error": "Database connection failed."} (500) - Database error
  • {"success": false, "error": "Database query failed."} (500) - Query error

Get Rates & Business Codes

Endpoint:http://api.smspinverify.com/json/get_rates.php

Method: GET

Parameters:

  • customer (required) - Your API key
  • country (required) - Country name (e.g., "USA")

Example Request:

http://api.smspinverify.com/json/get_rates.php?customer=YOUR_API_KEY&country=USA

Success Response (200):

{
    "success": true,
    "data": [
        {
            "app": "Google Voice",
            "business_code": "go",
            "rate": "0.50"
        },
        {
            "app": "WhatsApp",
            "business_code": "wa",
            "rate": "0.75"
        }
    ]
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing
  • {"success": false, "error": "Country Not Found."} (400) - Country parameter missing
  • {"success": false, "error": "Country Not Found."} (404) - Country does not exist
  • {"success": false, "error": "Access denied."} (500) - IP address blocked
  • {"success": false, "error": "Database connection failed."} (500) - Database error
  • {"success": false, "error": "Database query failed."} (500) - Query error
  • {"success": false, "error": "Too many requests. Please wait."} (429) - Rate limit exceeded

Get Number

Endpoint:http://api.smspinverify.com/json/get_number.php

Method: GET

Parameters:

  • customer (required) - Your API key
  • app (required) - App name (e.g., "Google Voice") or business code
  • country (required) - Country name (e.g., "USA")
  • number (optional) - Phone number to reuse. When provided, the API will reuse this existing number instead of assigning a new one. The number must belong to your account and match the specified country/app combination.
  • area_code (optional) - 3-digit US area code filter. Example: 201.
  • duration (optional) - Duration for number rental. Valid values: 15 minutes (default), 3 days, 7 days, 14 days, 25 days.

Example Request (Get New Number):

http://api.smspinverify.com/json/get_number.php?customer=YOUR_API_KEY&app=Google+Voice&country=USA&duration=3 days

Example Request (Filter by US Area Code):

http://api.smspinverify.com/json/get_number.php?customer=YOUR_API_KEY&app=Google+Voice&country=USA&area_code=201&duration=3 days

Example Request (Reuse Number):

http://api.smspinverify.com/json/get_number.php?customer=YOUR_API_KEY&app=Google+Voice&country=USA&number=15717412873

How to request a specific number again: To get the same number again (like the “Specific Number” option on the homepage), call Get Number with the number parameter set to the full phone number (e.g. number=16143548416). Use the same app and country as when you first received that number. The number must belong to your account; reuse may be free within the app’s reuse window.

Area code + specific number: You can pass both number and area_code. If the requested number does not match the selected area code, the API returns an error.

Success Response (200):

{
    "success": true,
    "data": {
        "id": "8666290",
        "number": "15717412873",
        "deduction": "0.45"
    }
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing
  • {"success": false, "error": "App Not Found."} (400) - App parameter missing
  • {"success": false, "error": "Country Not Found."} (400) - Country parameter missing
  • {"success": false, "error": "Not Enough balance"} (400) - Insufficient balance
  • {"success": false, "error": "Customer Not Found."} (404) - Customer does not exist
  • {"success": false, "error": "App or Country Not Found."} (404) - App or country not found
  • {"success": false, "error": "Number is not available."} (403) - App restricted for user
  • {"success": false, "error": "No free channels available check after sometime."} (503) - No numbers available
  • {"success": false, "error": "Too many unused numbers. Service blocked for next 6 hours."} (429) - User blocked due to unused numbers
  • {"success": false, "error": "Access denied."} (500) - IP address blocked
  • {"success": false, "error": "Database connection failed."} (500) - Database error
  • {"success": false, "error": "Database query failed."} (500) - Query error
  • {"success": false, "error": "Error 102, check back later."} (500) - Provider not supported
  • {"success": false, "error": "Your balance is expired."} (400) - Account expired
  • {"success": false, "error": "SMS service error"} (503) - External SMS service error

Note: Rate limit: 5 numbers per minute

Get SMS

Endpoint:http://api.smspinverify.com/json/get_sms.php

Method: GET

Parameters:

  • customer (required) - Your API key
  • n_id (required) - Number ID (from get_number response or history)

Example Request:

http://api.smspinverify.com/json/get_sms.php?customer=YOUR_API_KEY&n_id=8666290

Success Response (200):

{
    "success": true,
    "message": "Your verification code is 123456"
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing
  • {"success": false, "error": "Number ID (n_id) is required."} (400) - n_id parameter missing
  • {"success": false, "error": "Number record not found."} (404) - Number ID does not exist
  • {"success": false, "error": "App or Country Not Found."} (404) - App or country not found
  • {"success": false, "error": "You have not received any code yet."} (400) - No SMS received yet
  • {"success": false, "error": "Too many requests. Please wait."} (429) - Rate limit exceeded (3 minutes per number)
  • {"success": false, "error": "Access denied."} (500) - IP address blocked
  • {"success": false, "error": "Database connection failed."} (500) - Database error
  • {"success": false, "error": "Database query failed."} (500) - Query error
  • {"success": false, "error": "SMS service error"} (503) - External SMS service error

Note: Rate limit: 3 minutes per number

Reject Number

Endpoint:http://api.smspinverify.com/json/reject_code.php

Method: GET

Parameters:

  • customer (required) - Your API key
  • n_id (required) - Number ID (from get_number response or history)

Example Request:

http://api.smspinverify.com/json/reject_code.php?customer=YOUR_API_KEY&n_id=8666290

Success Response (200):

{
    "success": true,
    "message": "Number Rejected."
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing
  • {"success": false, "error": "Number ID (n_id) is required."} (400) - n_id parameter missing
  • {"success": false, "error": "Number record not found."} (404) - Number ID does not exist
  • {"success": false, "error": "App or Country Not Found."} (404) - App or country not found
  • {"success": false, "error": "Cant Reject."} (400) - Cannot reject (number already used or time expired)
  • {"success": false, "error": "You have not received any code yet."} (400) - Cannot reject without SMS
  • {"success": false, "error": "Access denied."} (500) - IP address blocked
  • {"success": false, "error": "Database connection failed."} (500) - Database error
  • {"success": false, "error": "Database query failed."} (500) - Query error
  • {"success": false, "error": "SMS service error"} (503) - External SMS service error

Renew Number

Endpoint:http://api.smspinverify.com/json/renew_number.php

Method: GET

Parameters:

  • customer (required) - Your API key
  • number (required) - Phone number to renew
  • duration (required) - Duration for renewal. Valid values: 15 minutes, 3 days, 7 days, 14 days, 25 days.

Example Request:

http://api.smspinverify.com/json/renew_number.php?customer=YOUR_API_KEY&number=15717412873&duration=3 days

Success Response (200):

{
    "success": true,
    "message": "Number renewed successfully.",
    "data": {
        "new_expiry": "2024-01-18",
        "new_balance": "95.50"
    }
}

Error Responses:

  • {"success": false, "error": "Customer Not Found."} (400) - Customer parameter missing
  • {"success": false, "error": "Number is required."} (400) - Number parameter missing
  • {"success": false, "error": "Invalid duration parameter."} (400) - Duration parameter invalid
  • {"success": false, "error": "Insufficient balance."} (400) - Not enough balance
  • {"success": false, "error": "Renewal is only available after a message has been received."} (400) - No SMS received yet
  • {"success": false, "error": "Number not found."} (404) - Number does not belong to user
  • {"success": false, "error": "Access denied."} (500) - IP address blocked

Note: Available for selected numbers only.

Response Format Details

Success Responses:

  • All successful responses include "success": true
  • get_balance, get_history, get_rates, get_number return data in "data" field
  • get_sms, reject_code return message in "message" field
  • HTTP status code: 200

Error Responses:

  • All error responses include "success": false and "error" field with error message
  • HTTP status codes:
    • 400 - Bad Request (missing/invalid parameters)
    • 403 - Forbidden (access denied)
    • 404 - Not Found (resource not found)
    • 429 - Too Many Requests (rate limited)
    • 500 - Internal Server Error (server/database errors)
    • 503 - Service Unavailable (no numbers available, service errors)

Content-Type: All responses return Content-Type: application/json