IMEI Verification REST API
Integrate IMEI verification into your platform with our simple and powerful REST API. Complete documentation with code examples in multiple languages.
Fast Response
Average response time < 500ms. Real-time verification for your users.
99.9% Uptime
Enterprise-grade infrastructure with guaranteed uptime SLA.
Easy Integration
RESTful API with comprehensive documentation and code examples.
Getting Started
1Get Your API Key
Register as a merchant and get your API key from the dashboard. API access is available for Growth tier and above.
Register as Merchant →2Authentication
All API requests require authentication using your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
3Base URL
All API endpoints are relative to the base URL:
https://api.ceksafe.com/v1
API Endpoints
/checkVerify IMEI
Check the status and details of an IMEI number.
Request Body
{
"imei": "123456789012345",
"type": "total" // "basic" or "total"
}Response (200 OK)
{
"success": true,
"data": {
"imei": "123456789012345",
"status": "clean",
"blacklist": false,
"valid_format": true,
"device": {
"tac": "12345678",
"brand": "Apple",
"model": "iPhone 13 Pro",
"year": "2021"
},
"risk_analysis": {
"risk_level": "low",
"trust_score": 95,
"recommendation": "safe_to_proceed"
},
"certificate_url": "https://ceksafe.com/v/abc123",
"checked_at": "2026-03-08T10:30:00Z"
}
}Error Response (400 Bad Request)
{
"success": false,
"error": {
"code": "INVALID_IMEI",
"message": "IMEI must be 15 digits"
}
}/historyGet Check History
Retrieve your verification history with pagination.
Query Parameters
?page=1&limit=20&from=2026-03-01&to=2026-03-31
Response (200 OK)
{
"success": true,
"data": {
"checks": [
{
"id": "chk_abc123",
"imei": "123456789012345",
"status": "clean",
"type": "total",
"checked_at": "2026-03-08T10:30:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}
}Code Examples
<?php
$apiKey = 'YOUR_API_KEY';
$imei = '123456789012345';
$ch = curl_init('https://api.ceksafe.com/v1/check');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'imei' => $imei,
'type' => 'total'
]));
$response = curl_exec($ch);
$result = json_decode($response, true);
if ($result['success']) {
echo "Status: " . $result['data']['status'];
echo "Trust Score: " . $result['data']['risk_analysis']['trust_score'];
}
curl_close($ch);const axios = require('axios');
const apiKey = 'YOUR_API_KEY';
const imei = '123456789012345';
axios.post('https://api.ceksafe.com/v1/check', {
imei: imei,
type: 'total'
}, {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
})
.then(response => {
const data = response.data.data;
console.log('Status:', data.status);
console.log('Trust Score:', data.risk_analysis.trust_score);
})
.catch(error => {
console.error('Error:', error.response.data);
});import requests
api_key = 'YOUR_API_KEY'
imei = '123456789012345'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
payload = {
'imei': imei,
'type': 'total'
}
response = requests.post(
'https://api.ceksafe.com/v1/check',
json=payload,
headers=headers
)
if response.status_code == 200:
data = response.json()['data']
print(f"Status: {data['status']}")
print(f"Trust Score: {data['risk_analysis']['trust_score']}")Rate Limits & Best Practices
Rate Limits
- Starter: 100 requests/minute
- Growth: 500 requests/minute
- Pro: 1000 requests/minute
Best Practices
- Cache results to reduce API calls
- Implement exponential backoff for retries
- Use webhooks for async processing
Need Help with Integration?
Our technical team is ready to help you integrate CekSafe API into your platform.