MENU navbar-image

Introduction

Welcome to VerifiedGlobalSms API Documentation. This API is designed to help you get started with using VerifiedGlobalSms services.

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_API_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

This API uses API key authentication.

Include your API key in the Authorization header when making requests.

To obtain an API key:

  1. Log in to your account on our website.
  2. Navigate to your user profile or dashboard.
  3. Copy the API key provided there.
  4. Use this key in all authenticated requests.

For example:
Authorization: Bearer your-api-key-here

You do not need to register or log in through this API. Each user manages their own authentication on their platform; our API only requires the API key for access.

User API

APIs for managing SMS activations programmatically.

Get Balance

requires authentication

Returns the current wallet balance of the user in Naira (₦).

Example request:
curl --request GET \
    --get "https://verifiedglobalsms.com/api/v1/user/balance" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/user/balance"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/user/balance';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/user/balance'
headers = {
  'Authorization': 'Bearer {YOUR_API_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
    "status": "success",
    "balance": 5000,
    "currency": "NGN"
}
 

Request   

GET api/v1/user/balance

Headers

Authorization        

Example: Bearer {YOUR_API_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

List Countries

requires authentication

Returns a list of all enabled countries and their codes.

Example request:
curl --request GET \
    --get "https://verifiedglobalsms.com/api/v1/activations/countries" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/activations/countries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/activations/countries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/activations/countries'
headers = {
  'Authorization': 'Bearer {YOUR_API_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
    "status": "success",
    "countries": {
        "nigeria": "Nigeria",
        "ghana": "Ghana",
        "usa": "USA"
    }
}
 

Request   

GET api/v1/activations/countries

Headers

Authorization        

Example: Bearer {YOUR_API_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

List Services

requires authentication

Returns available services. If country is provided, it returns services available in that specific country with Naira prices.

Example request:
curl --request GET \
    --get "https://verifiedglobalsms.com/api/v1/activations/services?country=nigeria" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/activations/services"
);

const params = {
    "country": "nigeria",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_API_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/activations/services';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'country' => 'nigeria',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/activations/services'
params = {
  'country': 'nigeria',
}
headers = {
  'Authorization': 'Bearer {YOUR_API_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "status": "success",
    "services": {
        "whatsapp": {
            "name": "WhatsApp",
            "price": 250,
            "currency": "NGN"
        },
        "facebook": {
            "name": "Facebook",
            "price": 180,
            "currency": "NGN"
        }
    }
}
 

Request   

GET api/v1/activations/services

Headers

Authorization        

Example: Bearer {YOUR_API_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

country   string  optional    

The country code (e.g., 'nigeria'). Example: nigeria

Get Prices

Get prices for a country or a specific service in a country in Naira (₦).

Example request:
curl --request GET \
    --get "https://verifiedglobalsms.com/api/v1/activations/prices?country=nigeria&service=google" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/activations/prices"
);

const params = {
    "country": "nigeria",
    "service": "google",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/activations/prices';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'country' => 'nigeria',
            'service' => 'google',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/activations/prices'
params = {
  'country': 'nigeria',
  'service': 'google',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "status": "success",
    "price": 350,
    "currency": "NGN"
}
 

Example response (200):


{
    "status": "success",
    "prices": {
        "whatsapp": 250,
        "facebook": 180
    },
    "currency": "NGN"
}
 

Request   

GET api/v1/activations/prices

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Query Parameters

country   string     

The country code. Example: nigeria

service   string  optional    

The service code. Example: google

Purchase Number

requires authentication

Requests a new phone number for a specific service and country.

Example request:
curl --request POST \
    "https://verifiedglobalsms.com/api/v1/activations/purchase" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"service\": \"google\",
    \"country\": \"nigeria\"
}"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/activations/purchase"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "service": "google",
    "country": "nigeria"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/activations/purchase';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'service' => 'google',
            'country' => 'nigeria',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/activations/purchase'
payload = {
    "service": "google",
    "country": "nigeria"
}
headers = {
  'Authorization': 'Bearer {YOUR_API_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):


{
    "status": "success",
    "message": "Number purchased successfully",
    "activation": {
        "id": 123,
        "phone_number": "+2348012345678",
        "service": "google",
        "country": "nigeria",
        "cost": 350,
        "status": "active",
        "expires_at": "2024-02-07T19:20:46Z"
    }
}
 

Example response (400):


{
    "status": "error",
    "message": "Insufficient balance. Required: N350.00"
}
 

Request   

POST api/v1/activations/purchase

Headers

Authorization        

Example: Bearer {YOUR_API_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

service   string     

The service code (e.g., 'google'). Example: google

country   string     

The country code (e.g., 'nigeria'). Example: nigeria

Get Activation Status

requires authentication

Retrieves the current status of an activation, including the SMS code if received.

Example request:
curl --request GET \
    --get "https://verifiedglobalsms.com/api/v1/activations/123" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/activations/123"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/activations/123';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/activations/123'
headers = {
  'Authorization': 'Bearer {YOUR_API_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
    "status": "success",
    "activation": {
        "id": 123,
        "status": "completed",
        "sms_code": "123456",
        "phone_number": "+2348012345678",
        "expires_at": "2024-02-07T19:20:46Z",
        "updated_at": "2024-02-07 19:15:46"
    }
}
 

Request   

GET api/v1/activations/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The activation ID. Example: 123

Cancel Activation

requires authentication

Cancels a pending activation and refunds the cost to the user's wallet.

Example request:
curl --request POST \
    "https://verifiedglobalsms.com/api/v1/activations/123/cancel" \
    --header "Authorization: Bearer {YOUR_API_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://verifiedglobalsms.com/api/v1/activations/123/cancel"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://verifiedglobalsms.com/api/v1/activations/123/cancel';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://verifiedglobalsms.com/api/v1/activations/123/cancel'
headers = {
  'Authorization': 'Bearer {YOUR_API_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers)
response.json()

Example response (200):


{
    "status": "success",
    "message": "Activation cancelled successfully",
    "new_balance": 5350
}
 

Request   

POST api/v1/activations/{id}/cancel

Headers

Authorization        

Example: Bearer {YOUR_API_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The activation ID. Example: 123