Reseller API Overview

The IMELook API allows you to integrate IMEI checking and phone unlocking services directly into your own website or application. Submit orders programmatically, check results, and get notified via webhooks when orders complete.

Base URL:

https://www.imelook.com/api/v1/

Authentication

All API requests require your API key. Pass it via the X-API-Key header (recommended):

// Recommended: Header (secure — key not logged in URLs) GET /api/v1/services X-API-Key: YOUR-API-KEY // Alternative: Query parameter (for quick testing only) GET /api/v1/services?key=YOUR-API-KEY
Keep your API key secret! Never expose it in client-side code. Only use it from your server. Always prefer the X-API-Key header over query parameters — keys in URLs can be logged in server access logs and browser history.

IP Security

You can whitelist specific IP addresses so only your servers can use the API. Configure this in your account settings or contact support.

Multi-Currency

All prices and balances are returned in your account's currency (GBP, EUR, or USD). The currency field is included in responses so your integration always knows which currency is being used. Your account currency can be configured by contacting support.

Account Info

GET /api/v1/account

Get your account details, balance, and stats.

// Response { "status": "success", "account": { "name": "Your Company", "currency": "GBP", "balance": 245.50, "totalSpent": 1520.00, "totalOrders": 3847 } }

Check Balance

GET /api/v1/balance

Quick balance check.

// Response { "status": "success", "currency": "GBP", "balance": 245.50 }

List Services

GET /api/v1/services

Get all available services with pricing.

// Response { "status": "success", "currency": "GBP", "balance": 245.50, "services": [ { "service": "AP-1", "name": "iCloud ON/OFF Check", "category": "Apple / iPhone Checks", "price": 0.25, "instant": true, "description": "Check if Find My iPhone is enabled or disabled" }, ... ] }

Place Order

GET /api/v1/order?imei=IMEI&service=SERVICE_ID

POST /api/v1/order

Place a single IMEI check or unlock order. Supports both GET and POST.

ParameterTypeDescription
keystringYour API key REQUIRED
imeistringIMEI or Serial Number REQUIRED
servicestringService ID from /services list REQUIRED
// GET example GET /api/v1/order?key=YOUR-KEY&imei=354442067957452&service=AP-1 // POST example POST /api/v1/order { "imei": "354442067957452", "service": "AP-1" } // Response { "status": "success", "orderId": "ORD-1042", "imei": "354442067957452", "service": "AP-1", "serviceName": "iCloud ON/OFF Check", "result": { "IMEI": "354442067957xxx", "Find My iPhone": "OFF" }, "price": 0.25, "balance": 245.25 }

Bulk Order

POST /api/v1/order/bulk

Process up to 100 IMEIs in a single request.

// Request POST /api/v1/order/bulk { "service": "AP-1", "imeis": [ "354442067957452", "353456789012345", "352345678901234" ] } // Response { "status": "success", "totalOrders": 3, "successful": 3, "failed": 0, "balance": 244.58, "results": [ ... ] }

Order History

GET /api/v1/history

Search your order history by IMEI or order ID.

ParameterTypeDescription
imeistringFilter by IMEI (optional)
orderIdstringFilter by order ID (optional)
limitnumberMax results, default 50, max 200 (optional)
// Response { "status": "success", "count": 2, "orders": [ { "orderId": "ORD-1042", "imei": "354442067957452", "service": "AP-1", "serviceName": "iCloud ON/OFF Check", "status": "success", "result": { "IMEI": "354442067957xxx", "Find My iPhone": "OFF" }, "price": 0.25, "createdAt": "2026-04-01T12:00:00.000Z" } ] }

Webhooks

Get notified instantly when orders complete. Set your webhook URL via the API:

POST /api/v1/webhook

Set or update your webhook URL.

// Set webhook URL POST /api/v1/webhook { "url": "https://your-site.com/webhook/imei" } // Response includes your signing secret { "status": "success", "webhookUrl": "https://your-site.com/webhook/imei", "webhookSecret": "a1b2c3d4e5f6..." }

Webhook Events

When an order completes, we POST a JSON payload to your webhook URL:

// order.completed event { "event": "order.completed", "orderId": "ORD-1042", "imei": "354442067957452", "service": "AP-1", "serviceName": "iCloud ON/OFF Check", "status": "success", "result": { ... }, "price": 0.25, "balance": 245.25, "timestamp": "2026-04-01T12:00:00.000Z" } // bulk.completed event { "event": "bulk.completed", "totalOrders": 50, "successful": 48, "failed": 2, "balance": 233.46, "timestamp": "2026-04-01T12:00:00.000Z" }

Webhook Verification

Every webhook includes an X-Webhook-Signature header. Verify it using your webhook secret:

// Node.js verification example const crypto = require('crypto'); function verifyWebhook(body, signature, secret) { const expected = 'sha256=' + crypto .createHmac('sha256', secret) .update(body) .digest('hex'); return signature === expected; } // In your webhook handler: app.post('/webhook/imei', (req, res) => { const sig = req.headers['x-webhook-signature']; if (!verifyWebhook(JSON.stringify(req.body), sig, YOUR_SECRET)) { return res.status(401).send('Invalid signature'); } // Process the webhook... console.log('Order completed:', req.body); res.sendStatus(200); });

Error Codes

HTTP CodeMeaning
200Success
400Bad request - missing or invalid parameters
401Authentication failed - invalid or missing API key
402Insufficient balance - add funds to continue
429Rate limited - too many requests
500Server error - try again or contact support

Code Examples

PHP

<?php $apiKey = "YOUR-API-KEY"; $imei = "354442067957452"; $service = "AP-1"; $url = "https://www.imelook.com/api/v1/order" . "?key=$apiKey&imei=$imei&service=$service"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 60); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); echo "Status: " . $data['status'] . "\n"; echo "Result: " . print_r($data['result'], true); ?>

Python

import requests API_KEY = "YOUR-API-KEY" BASE_URL = "https://www.imelook.com/api/v1" # Place an order response = requests.get(f"{BASE_URL}/order", params={ "key": API_KEY, "imei": "354442067957452", "service": "AP-1" }) data = response.json() print(f"Status: {data['status']}") print(f"Result: {data.get('result')}") print(f"Balance: ${data.get('balance')}")

cURL

# Check balance curl -H "X-API-Key: YOUR-API-KEY" "https://www.imelook.com/api/v1/balance" # Place order curl -H "X-API-Key: YOUR-API-KEY" "https://www.imelook.com/api/v1/order?imei=354442067957452&service=AP-1" # Bulk order curl -X POST -H "X-API-Key: YOUR-API-KEY" \ -H "Content-Type: application/json" \ -d '{"service":"AP-1","imeis":["354442067957452","353456789012345"]}' \ "https://www.imelook.com/api/v1/order/bulk"