GSM Service API for Resellers
Create, track, and automate IMEI/Unlock/FRP/MDM orders with JSON and Bearer auth.
Auth via
Authorization: Bearer <API_KEY>. Responses are JSON. Code samples provided below (cURL, PHP, Python).
API Basics
| Field | Value |
|---|---|
| Base URL | https://www.quickaccdeals.com/api/v1 |
| Versioning | /v1 in path |
| Auth | Authorization: Bearer <API_KEY> |
| Content-Type | application/json |
| Rate Limits | 60 req/min by default; contact support for higher tiers |
| Time | ISO8601 (UTC) |
| Optional Security | Notes |
|---|---|
X-Idempotency-Key | Prevent duplicates on retries |
X-Nonce | Random per-request nonce |
X-Signature | HMAC-SHA256(method|path|nonce|body) |
Endpoint Map
| Endpoint | Method | Description |
|---|---|---|
https://www.quickaccdeals.com/api/v1/services |
GET | List available services, inputs, ETA & pricing |
https://www.quickaccdeals.com/api/v1/orders |
POST | Create a new order (IMEI/SN/Email as required) |
https://www.quickaccdeals.com/api/v1/orders/{id} |
GET | Check order status and result payload |
https://www.quickaccdeals.com/api/v1/orders/bulk |
POST | Bulk create (array/CSV) |
https://www.quickaccdeals.com/api/v1/balance |
GET | Wallet balance |
https://www.quickaccdeals.com/api/v1/refunds |
POST | Request refund (full/partial/credit) |
Service Catalog (GET /services)
# cURL
curl -s -X GET "https://your-domain.com/api/v1/services" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"status": "success",
"services": [
{
"id": 12001,
"name": "IMEI Repair β Samsung (USB/Diag)",
"category": "IMEI",
"rate": "25.00",
"currency": "USD",
"inputs": ["imei", "model", "region_hint"],
"delivery_eta": "1-24h",
"notes": "USB/Diag session required. BIT must match."
},
{
"id": 13055,
"name": "Carrier Unlock β iPhone (Server)",
"category": "Unlock",
"rate": "35.00",
"currency": "USD",
"inputs": ["imei", "carrier"],
"delivery_eta": "Instant-2h",
"notes": "Clean IMEI only; blacklist not supported."
}
]
}
Create Order (POST /orders)
For GSM jobs, quantity is always 1. Provide IMEI, Serial Number, or Email according to the selected service.
curl -s -X POST "https://your-domain.com/api/v1/orders" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service": 12001,
"payload": {
"imei": "356789123456789",
"model": "S918U",
"region_hint": "USA"
}
}'
{
"status": "success",
"order_id": 54849,
"message": "Order accepted",
"credit_charged": "25.00",
"currency": "USD"
}
Validation errors
{"error":"Invalid IMEI format"}
{"error":"Unsupported model/bit for selected service"}
{"error":"Insufficient balance"}
{"error":"Missing required field: carrier"}
Order Status (GET /orders/{id})
curl -s -X GET "https://your-domain.com/api/v1/orders/54849" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"id": 54849,
"status": "Completed",
"created_at": "2025-01-14T13:22:09Z",
"updated_at": "2025-01-14T14:05:47Z",
"result": {
"imei": "356789123456789",
"network": "Unlocked",
"notes": "Server unlock OK. Restart & insert SIM."
}
}
Pending
Processing
Completed
Failed
Refunded
Bulk Orders (POST /orders/bulk)
Up to 100 orders per request. Per-item status is returned.
curl -s -X POST "https://your-domain.com/api/v1/orders/bulk" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"orders":[
{"service":12001,"payload":{"imei":"356789123456789","model":"S918U"}},
{"service":13055,"payload":{"imei":"353001234567890","carrier":"AT&T"}}
]
}'
{
"accepted": [
{"index":0,"order_id":4030},
{"index":1,"order_id":50000}
],
"errors": []
}
Balance (GET /balance)
curl -s -X GET "https://your-domain.com/api/v1/balance" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"status":"success",
"balance":"125.50",
"currency":"USD"
}
Refunds (POST /refunds)
Refund policy depends on service and status. Partial refunds require an amount.
curl -s -X POST "https://your-domain.com/api/v1/refunds" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"order_id": 54849,
"type": "partial",
"amount": "10.00",
"reason": "Delay beyond SLA"
}'
{
"status":"success",
"refund_id":"rf_7c1a31a2",
"order_id":54849,
"type":"partial",
"amount":"10.00",
"currency":"USD"
}
Webhooks (Optional)
Receive push updates on order changes. Verify signature with your webhook secret.
POST https://your-callback-url.example/webhook/gsm
Headers:
Content-Type: application/json
X-Event: order.updated
X-Signature: sha256=ab12...f9
Body:
{
"id": 54849,
"status": "Completed",
"result": {
"imei": "356789123456789",
"network": "Unlocked"
},
"occurred_at": "2025-01-14T14:05:47Z"
}
Compute
HMAC-SHA256 over the raw request body and compare against X-Signature.
Minimal Snippets (PHP / Python / cURL)
// PHP (vanilla/Laravel compatible)
$api = "https://your-domain.com/api/v1/orders";
$payload = [
'service' => 12001,
'payload' => ['imei' => '356789123456789', 'model' => 'S918U']
];
$ch = curl_init($api);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('GSM_API_KEY'),
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE),
]);
$res = curl_exec($ch);
if ($res === false) throw new \RuntimeException(curl_error($ch));
curl_close($ch);
echo $res;
# Python (requests)
import os, json, requests
api = "https://your-domain.com/api/v1/orders"
payload = {"service": 12001, "payload": {"imei":"356789123456789","model":"S918U"}}
r = requests.post(api, headers={
"Authorization": f"Bearer {os.getenv('GSM_API_KEY')}",
"Content-Type": "application/json"
}, data=json.dumps(payload))
print(r.status_code, r.text)
# cURL quick checks
curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://your-domain.com/api/v1/services"
curl -s -H "Authorization: Bearer YOUR_API_KEY" "https://your-domain.com/api/v1/orders/54849"
FAQ (SEO)
Which GSM operations does the API support?
IMEI repair (USB/Diag where legal), server unlocks (carrier), FRP/MDM/Knox workflows (policy-compliant), and status/result retrieval.
Do you support bulk orders?
Yes, up to 100 per request via
POST /orders/bulk.How do I avoid duplicate orders?
Send a unique
X-Idempotency-Key with each create request and retry safely.Is there a sandbox?
Contact support for a test key. Responses mirror production with masked results.