API Documentation

Integrate iFreeChecker into your apps, websites, or DHRU panels. All responses are JSON.

Contents

1. Authentication

Every request requires an API key. Get yours from My Account after registering.

Pass the key as a query parameter apikey or as an HTTP header X-Api-Key.

Tip: You can create multiple API keys with custom labels (Production, Testing, etc.) from your account dashboard.

2. Base URL & Format

https://ifreechecker.com/check

3. Endpoints

GET /check?endpoint=full&id={SERIAL}&apikey={KEY}
Complete device report: details, warranty, Find My, cases, repairs, blacklist, and Sold To.
ParameterTypeRequiredDescription
endpointstringrequiredfull
idstringrequiredSerial number or IMEI (8–20 alphanumeric)
apikeystringrequiredYour API key
GET /check?endpoint=case_history&id={SERIAL}&apikey={KEY}
Device details, warranty, Find My status, and case history. No Sold To, repairs, or blacklist.
GET /check?endpoint=repair_history&id={SERIAL}&apikey={KEY}
Device details, warranty, Find My status, cases, repairs, and replacement history. No SIM/activation, no next tether, no sold-to. No blacklist.
GET /check?endpoint=device_blacklist&id={SERIAL}&apikey={KEY}
Device details, warranty, and blacklist status (cellular devices only). No FMI, cases, or repairs.

4. Pricing

Credits are deducted per successful check. Failed checks are not charged.

Full Check
$0.55
Everything included
Case History
$0.25
Details + Cases
Repair + Case + Replacement
$0.40
Details + Cases + Repairs + Replacement (no SIM/sold-to)
Blacklist
$0.15
Details + Blacklist

5. Response Format

Every response contains these top-level fields:

FieldTypeDescription
okbooleantrue on success
servicestringEndpoint used (e.g. full, case_history)
summaryobjectParsed device data (serial, model, warranty, FMI, etc.)
detailsobjectRaw GSX device details
eligibilityobject|nullFind My / repair eligibility (null if not included)
casesobject|nullCase history (null if not included)
repairsobject|nullRepair history (null if not included)
blacklistobject|nullBlacklist status (null if not included or non-cellular)
isCellularbooleanWhether the device has IMEI
_metaobjectRequest metadata (endpoint, time, timestamp)

Summary Object — Key Fields

FieldDescription
serialSerial number
imeiPrimary IMEI (empty for Wi-Fi devices)
modelProduct description (e.g. "iPhone 17 Pro Max")
configFull config (e.g. "IPHONE 17 PRO MAX,CHINA,256GB,SLV")
fmi"ON", "OFF", or "unknown"
warrantyWarranty description
warrantyCodeAP (AppleCare+), LP (Limited), OO (Out of Warranty)
daysRemainingDays of coverage left
purchaseDateISO 8601 date
purchaseCountryCountry of purchase
laborCoveredBoolean
partCoveredBoolean
soldToDistributor name (Full Check only)
productLineProduct line code (Full Check only)

6. Error Codes

HTTPCodeMeaning
400Bad RequestMissing or invalid parameters
402Payment RequiredInsufficient balance — top up your account
403ForbiddenInvalid API key or account suspended
405Not AllowedOnly GET method is accepted
429Too Many RequestsRate limit exceeded (max 10/min)
502Bad GatewayUpstream GSX API error

Error responses always include "ok": false and an "error" message:

// Example error response
{
    "ok": false,
    "error": "Insufficient balance ($2.30). Please top up.",
    "code": 402,
    "balance": 2.30,
    "cost": 0.55
}

7. Rate Limits

8. Code Examples

cURL
PHP
Node.js
Python
# Full GSX Check
curl "https://ifreechecker.com/check?endpoint=full&id=FCMZR23CN70W&apikey=ifc_YOUR_KEY"

# Case History only
curl "https://ifreechecker.com/check?endpoint=case_history&id=FCMZR23CN70W&apikey=ifc_YOUR_KEY"

# Using header for API key
curl -H "X-Api-Key: ifc_YOUR_KEY" \
     "https://ifreechecker.com/check?endpoint=full&id=353911106779789"
<?php

$apiKey   = 'ifc_YOUR_KEY';
$serial   = 'FCMZR23CN70W';
$endpoint = 'full'; // full | case_history | repair_history | device_blacklist

$url = 'https://ifreechecker.com/check?' . http_build_query([
    'endpoint' => $endpoint,
    'id'       => $serial,
    'apikey'   => $apiKey,
]);

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_SSL_VERIFYPEER => true,
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$data = json_decode($response, true);

if ($data['ok']) {
    $s = $data['summary'];
    echo "Model: "    . $s['model']    . "\n";
    echo "FMI: "      . $s['fmi']      . "\n";
    echo "Warranty: " . $s['warranty'] . "\n";
} else {
    echo "Error: " . $data['error'] . "\n";
}
const API_KEY  = 'ifc_YOUR_KEY';
const serial   = 'FCMZR23CN70W';
const endpoint = 'full'; // full | case_history | repair_history | device_blacklist

const params = new URLSearchParams({
    endpoint,
    id: serial,
    apikey: API_KEY,
});

const url = `https://ifreechecker.com/check?${params}`;

const res  = await fetch(url);
const data = await res.json();

if (data.ok) {
    const s = data.summary;
    console.log(`Model: ${s.model}`);
    console.log(`FMI: ${s.fmi}`);
    console.log(`Warranty: ${s.warranty}`);
    console.log(`Days left: ${s.daysRemaining}`);
} else {
    console.error('Error:', data.error);
}
import requests

API_KEY  = "ifc_YOUR_KEY"
serial   = "FCMZR23CN70W"
endpoint = "full"  # full | case_history | repair_history | device_blacklist

resp = requests.get("https://ifreechecker.com/check", params={
    "endpoint": endpoint,
    "id":       serial,
    "apikey":   API_KEY,
})

data = resp.json()

if data["ok"]:
    s = data["summary"]
    print(f"Model: {s['model']}")
    print(f"FMI: {s['fmi']}")
    print(f"Warranty: {s['warranty']}")
else:
    print(f"Error: {data['error']}")

9. DHRU Fusion / DHRU Panel Integration

Your credentials for DHRU

When you create an account, you get access to API keys. That key is the only credential you need for DHRU:

Summary: One credential = your API key from Account → API Keys. Use it as apiaccesskey in DHRU. Ensure your account has sufficient balance (top up from Account if needed).

9.1 DHRU Fusion API (recommended)

iFreeChecker exposes a DHRU Fusion–compatible API at /dhru. DHRU can synchronize services, place orders, and fetch results (HTML report) using the same actions as other DHRU suppliers.

SettingValue
API URLhttps://ifreechecker.com/dhru
API Access KeyYour iFreeChecker API key (from Account → API Keys)
UsernameOptional; leave blank or use any value. Auth is by key only.

Actions supported:

ActionDescription
accountinfoReturns your balance, user ID, currency (USD). Use for “test connection” or balance check.
imeiservicelistReturns the list of iFreeChecker services (Full Check, Case History, Repair+Replacement, Blacklist) with IDs and pricing. Use “Setup my IMEI services same as this API services” in DHRU to sync.
placeimeiorderPlace an order: pass IMEI/Serial + Service ID. Balance is charged and the check is run. Returns ORDERID.
getimeiorderGet result by Order ID or by Serial/IMEI (latest order). Returns STATUS (4 = completed) and CODE = HTML report (device details + status pills).

Service IDs (for placeimeiorder and synced list):

IDServiceCost
1Full Check (details, FMI, cases, repairs, blacklist)$0.55
2Case History (details, warranty, FMI, cases)$0.25
3Repair + Replacement (details, warranty, FMI, cases, repairs & replacement)$0.40
4Blacklist (details, warranty, blacklist status)$0.15

Parameters can be sent as GET or POST (form or JSON). For placeimeiorder, parameters can be XML (e.g. <IMEI>...</IMEI><ID>1</ID>) or base64-encoded JSON. For getimeiorder, parameters should contain the order ID (numeric) or serial/IMEI to fetch the latest result.

The CODE field in getimeiorder is a simple HTML report (device model, IMEI, serial, warranty, purchase date, and status pills for Technical Support, Repairs Coverage, Replaced by Apple, Find My iPhone, iCloud, US Block, SIM-Lock) suitable for display in DHRU or emails.

Tip: Use the same domain as your site (e.g. https://ifreechecker.com/dhru without www if that’s your canonical host) to avoid redirects that can cause “Invalid json response” in DHRU.

9.2 URL-based integration (alternative)

If you prefer a simple URL-per-request setup instead of the DHRU Fusion API:

Set the API URL to:

https://ifreechecker.com/check?endpoint={{service}}&id={{imei}}&apikey=YOUR_API_KEY

Create a service in DHRU for each endpoint:

Service CodeCost
full$0.55
case_history$0.25
repair_history$0.40
device_blacklist$0.15

Response: JSON with ok = true on success; error on failure. Ensure your account has sufficient balance.