mobile-transfer
Phone Number Porting Check
Provides a mobile number porting eligibility check service, allowing you to verify if a phone number meets porting conditions and check for any restrictions.
Usage Cost
5 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/mobile-transfercURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/mobile-transfer' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "mobile_number": "13800138000"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/mobile-transfer"
payload = {
"mobile_number": "13800138000"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/mobile-transfer"
payload := []byte("{\n \"mobile_number\": \"13800138000\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java Example
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"mobile_number\": \"13800138000\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/mobile-transfer"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/mobile-transfer';
$payload = "{\n \"mobile_number\": \"13800138000\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;Response Example
{
"code": "SUCCESS",
"message": "success",
"data": {
"transfer": "未携转",
"originalOperator": "中国移动",
"currentOperator": "中国移动"
}
}Examples illustrate the response structure. Actual results depend on the API response.
- Authentication
- Send X-API-Key in request headers
- Rate limit
- 600 req/min
- Timeout
- 5000 ms
Send your API Key in the X-API-Key header from your backend.
Check both HTTP status and business fields before treating a call as successful.
Use retries and backoff together with rate limits in high-frequency scenarios.
Request Fields
Send requests from your server with the key in the X-API-Key header.
Request Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| mobile_number | string | Unspecified | Unspecified | 13800138000 |
Request Example
{
"mobile_number": "13800138000"
}- Authentication
- Send X-API-Key in request headers
- Rate limit
- 600 req/min
- Timeout
- 5000 ms
Response Fields
Examples illustrate the response structure. Actual results depend on the API response.
Response Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| code | string | Unspecified | Unspecified | SUCCESS |
| message | string | Unspecified | Unspecified | success |
| data | object | Unspecified | Unspecified | {...} |
| data.transfer | string | Unspecified | Unspecified | 未携转 |
| data.originalOperator | string | Unspecified | Unspecified | 中国移动 |
| data.currentOperator | string | Unspecified | Unspecified | 中国移动 |
Response Example
{
"code": "SUCCESS",
"message": "success",
"data": {
"transfer": "未携转",
"originalOperator": "中国移动",
"currentOperator": "中国移动"
}
}$.code == 200 API overview
Capabilities, use cases, limitations, and frequently asked questions.
Mobile Number Portability Check API
Feature Overview
This API provides real-time eligibility checks for mobile number porting. By entering a phone number, users can quickly determine if the number meets porting requirements or if it is restricted by active contracts, overdue balances, or premium number agreements. The query results clearly indicate the porting status and detail any reasons for ineligibility. This service helps users understand their number's status before initiating a port request, significantly improving processing efficiency.
Use Cases
- Self-Service Porting Check: Users can verify their number's eligibility before requesting a transfer, avoiding unnecessary trips and saving time.
- Carrier and Service Provider Assistance: Carriers or third-party providers can use this API to quickly verify a user's number status during consultations or porting services, ensuring more accurate and efficient support.
- Online Platform Integration: Integrate this feature into telecom portals, mobile apps, and other online platforms to enhance the self-service experience and streamline business workflows.