Airtime
Search…
Auto-detect an operator
With the /operators/auto-detect/phone/{phone}/countries/{iso} endpoint, a user can retrieve the operator details of a mobile number and the ISO code of the country where the mobile number is registered
get
https://topups.reloadly.com
/operators/auto-detect/phone/{phone}/countries/{countryisocode}
Auto-detect operator
Reloadly has an open-source library used to format, parse, and validate the authenticity of an international phone number. You can check it out here on GitHub.
Do note that due to the regional differences across Indian operators, the Auto-detect endpoint is a PAID service for mobile numbers registered in India. This service costs 0.0013 USD per API call involving mobile numbers registered in India only. If you have any questions, you can always reach out to us via our developer community

Request samples

cURL
C#
Golang
Java
Node JS
PHP
Python
1
curl --location --request GET 'https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true' \
2
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN_HERE' \
3
--header 'Accept: application/com.reloadly.topups-v1+json'
Copied!
1
using System;
2
using System.Threading.Tasks;
3
using System.Net.Http;
4
using System.Text;
5
using Newtonsoft.Json;
6
7
namespace WebAPIClient {
8
class Program {
9
10
static async Task Main(string[] args) {
11
await ApiCall();
12
}
13
14
private static async Task ApiCall() {
15
16
var message = new HttpRequestMessage(HttpMethod.Get, "https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true");
17
18
message.Headers.TryAddWithoutValidation("Authorization", "Bearer YOUR_ACCESS_TOKEN_HERE");
19
message.Headers.TryAddWithoutValidation("Accept", "application/com.reloadly.topups-v1+json");
20
21
using
22
var httpClient = new HttpClient();
23
var response = await httpClient.SendAsync(message);
24
var responseBody = await response.Content.ReadAsStringAsync();
25
var result = JsonConvert.DeserializeObject < dynamic > (responseBody);
26
27
Console.WriteLine(result);
28
}
29
30
}
31
}
Copied!
1
package main
2
3
import (
4
"fmt"
5
"net/http"
6
"io/ioutil"
7
)
8
9
func main() {
10
11
url := "https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true"
12
method := "GET"
13
14
client := &http.Client {
15
}
16
req, err := http.NewRequest(method, url, nil)
17
18
if err != nil {
19
fmt.Println(err)
20
return
21
}
22
req.Header.Add("Authorization", "Bearer YOUR_ACCESS_TOKEN_HERE")
23
req.Header.Add("Accept", "application/com.reloadly.topups-v1+json")
24
25
res, err := client.Do(req)
26
if err != nil {
27
fmt.Println(err)
28
return
29
}
30
defer res.Body.Close()
31
32
body, err := ioutil.ReadAll(res.Body)
33
if err != nil {
34
fmt.Println(err)
35
return
36
}
37
fmt.Println(string(body))
38
}
Copied!
1
OkHttpClient client = new OkHttpClient().newBuilder()
2
.build();
3
Request request = new Request.Builder()
4
.url("https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true")
5
.method("GET", null)
6
.addHeader("Authorization", "Bearer YOUR_ACCESS_TOKEN_HERE")
7
.addHeader("Accept", "application/com.reloadly.topups-v1+json")
8
.build();
9
Response response = client.newCall(request).execute();
Copied!
1
var request = require('request');
2
var options = {
3
'method': 'GET',
4
'url': 'https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true',
5
'headers': {
6
'Authorization': 'Bearer YOUR_ACCESS_TOKEN_HERE',
7
'Accept': 'application/com.reloadly.topups-v1+json'
8
}
9
};
10
request(options, function (error, response) {
11
if (error) throw new Error(error);
12
console.log(response.body);
13
});
Copied!
1
<?php
2
3
$curl = curl_init();
4
5
curl_setopt_array($curl, array(
6
CURLOPT_URL => 'https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true',
7
CURLOPT_RETURNTRANSFER => true,
8
CURLOPT_ENCODING => '',
9
CURLOPT_MAXREDIRS => 10,
10
CURLOPT_TIMEOUT => 0,
11
CURLOPT_FOLLOWLOCATION => true,
12
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
13
CURLOPT_CUSTOMREQUEST => 'GET',
14
CURLOPT_HTTPHEADER => array(
15
'Authorization: Bearer YOUR_ACCESS_TOKEN_HERE',
16
'Accept: application/com.reloadly.topups-v1+json'
17
),
18
));
19
20
$response = curl_exec($curl);
21
22
curl_close($curl);
23
echo $response;
Copied!
1
import requests
2
import json
3
4
url = "https://topups.reloadly.com/operators/auto-detect/phone/03238482221/countries/PK?suggestedAmountsMap=true&SuggestedAmounts=true"
5
6
payload={}
7
headers = {
8
'Authorization': 'Bearer YOUR_ACCESS_TOKEN_HERE',
9
'Accept': 'application/com.reloadly.topups-v1+json'
10
}
11
12
response = requests.request("GET", url, headers=headers, data=payload)
13
14
print(response.text)
Copied!

Response parameters

Parameter
Type
Description
id/operatorId
integer
This indicates the operator's ID
name
string
The operator's name
bundle
boolean
Indicates if the operator has any existing bundle plans
data
boolean
Indicates if the operator has any existing data plans
pin
boolean
Indicates if the operator supports PIN transactions
supportsLocal
Amounts
boolean
Indicates if the operator can make top-ups in local amounts
denominationType
string
Indicates if the operator makes top-ups through a fixed amount or a range of amounts. Options include FIXED and RANGE
senderCurrencyCode
string
Indicates the currency code of the account where the top-up is being made from
senderCurrency
Symbol
string
Indicates the currency symbol of the account where the top-up is being made from
destination
CurrencyCode
string
Indicates the currency code of the mobile number where the top-up is being sent to
destination
CurrencySymbol
string
Indicates the currency symbol of the mobile number where the top-up is being sent to
commission
integer
Indicates if the operator offers a commission or discount
international
Discount
integer
Indicates if the operator offers a discount for top-ups made to foreign numbers
localDiscount
integer
Indicates if the operator offers a discount for top-ups made to local numbers
mostPopularAmount
integer
Indicates the amount that is often used to make a top-up
mostPopular
LocalAmount
integer
Indicates the amount that is often used to make a top-up locally
minAmount
integer
Indicates the minimum amount that can be used to make a top-up
maxAmount
integer
Indicates the maximum amount that can be used to make a top-up
localMinAmount
integer
Indicates the minimum amount that can be used to make a top-up locally