IMEI API

Validate and enrich IMEIs programmatically. The endpoint returns a JSON report with device identification plus blacklist and carrier data.

Endpoint

GET /api/imei?imei=<imei>

Method
GET
Query param
imei — the 15-digit IMEI (or 14-digit base)
Content-Type
application/json
Auth
API key (required in production — see note)

Example request

curl "https://your-domain.com/api/imei?imei=356594100000006"

Example response

{
  "imei": "356594100000006",
  "valid": true,
  "device": {
    "found": true,
    "isSampleData": true,
    "brand": "Apple",
    "model": "iPhone XR",
    "name": "Apple iPhone XR",
    "tac": "35659410",
    "specs": {
      "releaseYear": 2018,
      "display": "6.1\" Liquid Retina",
      "chipset": "Apple A12 Bionic",
      "battery": "2942 mAh",
      "os": "iOS 12"
    }
  },
  "blacklist": {
    "status": "clean",
    "source": "demo",
    "isDemo": true,
    "message": "DEMO: no blacklist hit for this IMEI in the demo dataset."
  },
  "carrier": {
    "carrier": "Unlocked / No carrier lock",
    "simLock": "unlocked",
    "network": "Unlocked / No carrier lock",
    "source": "demo",
    "isDemo": true
  }
}

JavaScript

const res = await fetch('/api/imei?imei=356594100000006');
const data = await res.json();
console.log(data.device.brand, data.device.model);
Production note: blacklist and carrier results in this demo are mock data (isDemo: true). To return real data, wire the provider functions in lib/providers/ to a paid IMEI API and protect the route with an API key.