Copied
System: ONLINE
API Load: 37%
24h Checks: 3,429
Latency: 32ms
Official docs · REST API + DHRU Fusion API v6.1

Integrate iSave IMEI & GSX services into your panel, bot, CRM, or website

Complete developer reference for the iSave Check API. Covers authentication, all endpoints, PHP and cURL examples, DHRU bridge, bulk orders, order statuses, error codes, and troubleshooting.

REST API Websites, Telegram bots, dashboards, Laravel, Node.js, Python, and mobile backends.
DHRU Bridge v6.1 DHRU Fusion panels, service sync, single and bulk orders, and standard supplier actions.
Authentication All requests use your personal API key. Never expose it in frontend code.
Get API Key via Telegram

Keys are issued manually and linked to your pricing plan and service access.

1. Quick Start

Two integration options — choose the one that fits your stack.

Use REST API if:

  • You are building a custom website, Telegram bot, CRM, or backend.
  • You want clean JSON requests and JSON responses.
  • You work with Laravel, PHP, Python, or Node.js.

Use DHRU Bridge if:

  • You already use a DHRU Fusion panel.
  • You need supplier sync with iSave.
  • You need standard DHRU actions such as accountinfo, imeiservicelist, placeimeiorder, and bulk status checks.
Before you start, request your API key via Telegram or email.

2. Authentication

Every request requires your unique API key. Without a valid key the request is rejected immediately.

REST API — HTTP header

X-API-Key: YOUR_API_KEY
Content-Type: application/json

DHRU — POST form-data field

apiaccesskey=YOUR_API_KEY
Never place your API key in frontend JavaScript, browser apps, or public screenshots.

3. Native REST API

Single HTTPS endpoint, all commands via JSON body.

Base endpoint

POST https://imeigsx.com/api/v1/check

Available commands

Command Purpose When to use
balance Get account balance Confirm funds before ordering.
services Get active service list Fetch available services and your prices.
YOUR_SERVICE_ID Place an order Use the exact command_name from the service list.

4. REST: Check Balance

Request body

{"command":"balance"}

cURL

curl -X POST "https://imeigsx.com/api/v1/check" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command":"balance"}'

Success response

{
  "success": true,
  "username": "client_username",
  "balance": 336.81,
  "currency": "USD"
}

5. REST: Get Service List

Returns all active services for your key with command ID, name, description, and your price.

Request body

{"command":"services"}

cURL

curl -X POST "https://imeigsx.com/api/v1/check" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command":"services"}'

Success response

{
  "success": true,
  "services": [
    {
      "command_name": "gsx",
      "service_title": "GSX Standard Report",
      "description": "Official API Service",
      "price": "0.40"
    },
    {
      "command_name": "gsxpremium",
      "service_title": "GSX Premium Report",
      "description": "Full GSX details including repair history",
      "price": "0.80"
    }
  ]
}
Always use the exact value from command_name when placing orders.

6. REST: Place an Order

Field Type Required Description
command string Yes Service ID from services list, for example gsx.
identifier string Yes IMEI or Serial Number.
custom_request_id string No Your internal tracking ID.

cURL

curl -X POST "https://imeigsx.com/api/v1/check" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"command":"gsx","identifier":"356557847079356"}'

Success response

{
  "success": true,
  "request_id": "req_1713657812_82",
  "credits": 336.41,
  "data": {
    "productDescription": "iPhone 13 GREEN 128GB",
    "imei": "356557847079356",
    "serial": "ABCDEF123456",
    "carrierName": "Unlocked",
    "fmiStatus": "OFF"
  }
}

7. DHRU Fusion API v6.1

Connect to iSave through the DHRU bridge. All examples below use the corrected endpoint without .php.

Base endpoint

POST https://imeigsx.com/api/dhru_bridge

Required POST fields

Field Required Description
apiaccesskey Yes Your API key.
action Yes DHRU action to execute.
username No Optional if your panel requires it.
requestformat No Set JSON if your client supports it.
parameters Depends Required for order placement. Must be valid XML.
Panel setup: set API URL to https://imeigsx.com/api/dhru_bridge, paste your key, then run service sync.

8. DHRU Actions

8.1 accountinfo / getbalance

curl -X POST "https://imeigsx.com/api/dhru_bridge" \
  -d "apiaccesskey=YOUR_API_KEY" \
  -d "action=accountinfo"

8.2 imeiservicelist / serverservicelist

curl -X POST "https://imeigsx.com/api/dhru_bridge" \
  -d "apiaccesskey=YOUR_API_KEY" \
  -d "action=imeiservicelist"

8.3 placeimeiorder / placeorder

The parameters field must be URL-encoded valid XML.

curl -X POST "https://imeigsx.com/api/dhru_bridge" \
  -d "apiaccesskey=YOUR_API_KEY" \
  -d "action=placeimeiorder" \
  --data-urlencode "parameters=<PARAMETERS><ID>gsx</ID><IMEI>356327109246188</IMEI></PARAMETERS>"

8.4 getimeiorder / getorder

curl -X POST "https://imeigsx.com/api/dhru_bridge" \
  -d "apiaccesskey=YOUR_API_KEY" \
  -d "action=getimeiorder" \
  -d "ID=171365781282"

9. Bulk Orders

9.1 placeimeiorderbulk

curl -X POST "https://imeigsx.com/api/dhru_bridge" \
  -d "apiaccesskey=YOUR_API_KEY" \
  -d "action=placeimeiorderbulk" \
  --data-urlencode "parameters=<REQUEST>
  <ORDER><ID>gsx</ID><IMEI>356327109246188</IMEI></ORDER>
  <ORDER><ID>findmy</ID><IMEI>356327109246189</IMEI></ORDER>
</REQUEST>"

9.2 getimeiorderbulk

curl -X POST "https://imeigsx.com/api/dhru_bridge" \
  -d "apiaccesskey=YOUR_API_KEY" \
  -d "action=getimeiorderbulk" \
  -d "IDS=171365781281,171365781282,171365781283"

10. PHP / Laravel Examples

10.1 Check balance (PHP cURL)

<?php
$apiKey   = 'YOUR_API_KEY';
$endpoint = 'https://imeigsx.com/api/v1/check';

$ch = curl_init($endpoint);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['X-API-Key: ' . $apiKey, 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode(['command' => 'balance']),
    CURLOPT_TIMEOUT        => 15,
]);

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

if ($httpCode === 200) {
    $data = json_decode($response, true);
    echo 'Balance: ' . $data['balance'] . ' ' . $data['currency'];
} else {
    echo 'Error HTTP ' . $httpCode;
}

10.2 Place order (reusable function)

<?php
function isaveCheck(string $apiKey, string $command, string $identifier): array
{
    $ch = curl_init('https://imeigsx.com/api/v1/check');

    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_HTTPHEADER     => ['X-API-Key: ' . $apiKey, 'Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => json_encode([
            'command'    => $command,
            'identifier' => $identifier
        ]),
        CURLOPT_TIMEOUT        => 20,
    ]);

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

    if ($httpCode !== 200) {
        return ['success' => false, 'error' => 'HTTP ' . $httpCode];
    }

    return json_decode($body, true) ?? ['success' => false, 'error' => 'Invalid JSON'];
}

$result = isaveCheck('YOUR_API_KEY', 'gsx', '356557847079356');
print_r($result);

10.3 Laravel HTTP Client

use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'X-API-Key'    => config('services.isave.api_key'),
    'Content-Type' => 'application/json',
])->post('https://imeigsx.com/api/v1/check', [
    'command'    => 'gsx',
    'identifier' => '356557847079356',
]);

if ($response->successful()) {
    return $response->json();
}

return [
    'success' => false,
    'error'   => $response->status()
];

11. Sandbox & Testing

Step 1 — Connectivity Call balance. If you get a successful response, your key and endpoint are correct.
Step 2 — Service list Call services and store the exact command_name values.
Step 3 — Test order Use a real IMEI from a device you own and verify returned fields.
Step 4 — Error handling Test invalid IMEI or wrong service ID and handle errors gracefully.
Step 5 — DHRU sync Call imeiservicelist and confirm service mapping in your panel.
Support info Always keep API username, request ID, service ID, IMEI or serial, and the full error response.

12. Order Status Meaning

Status Meaning How to handle
1 Pending / Processing Poll again with getimeiorder after a short delay.
3 Rejected / Failed Show REPLY to the user and do not auto-retry blindly.
4 Completed Display data from REPLY or parse CODE.

13. Response Field Glossary

productDescription
Full device model name including color and storage.
imei
IMEI from Apple GSX or carrier database.
serial
Device serial number.
carrierName
Locked carrier or Unlocked.
fmiStatus
Find My iPhone status.
request_id
Unique order reference from iSave.
credits
Remaining balance after deduction.

14. Error Codes & Troubleshooting

Code Meaning What to do
400 Bad Request Required fields missing or invalid.
401 Unauthorized API key missing or invalid.
402 Insufficient Balance Top up your account.
403 Forbidden Account blocked or restricted.
404 Service Not Found Re-check with services.
504 Gateway Timeout Retry once later.

Common integration mistakes

  • Sending the API key in the wrong place.
  • Using service_title instead of command_name.
  • Sending malformed XML in DHRU parameters.
  • Placing orders from frontend JavaScript.
  • Using old paths with unnecessary .php suffixes.

15. FAQ

Do I need REST or DHRU?

Use REST for any custom integration. Use DHRU only if your software already expects the DHRU supplier format.

Where do I get service IDs?

Call services in REST or imeiservicelist in DHRU.

Can I check by Serial Number?

Yes. In REST send the serial as identifier. In DHRU XML use <SN></SN>.

Can I poll order status later?

Use getimeiorder or getimeiorderbulk in DHRU, or store request_id in REST mode.

The balance and services commands are safe for testing.