Apple identifiers

Updated

Understanding common Apple codes and identifiers

Apple use many different identifiers with their products. The table below illustrates the differences between some of the most important codes:

Name Looks like Also called Represents
Model MC605FD/A Marketing part number (MPN),
Part number,
Order number
A specific model, including storage, configuration, distribution and sale type information. Similar in scope but distinct from a configuration code (CC) or a configured to order (CTO) code.
Family number A1784
M8493
Model number,
"A" number
A family of models sold in a given region, coded for Apple's own ordering systems.
Internal name N92AP Board ID,
Hardware model
The underlying hardware platform a device is built on. Expressed as an internal name class with an optional hardware revision. Often used to target software and firmware.
Identifier iPhone9,3 Model identifier A high-level class of Apple device.
Serial number C8QH6T96DPNG An individual Apple device. 3 different formats, 1 of which is variable-length. Distinct from an MLB serial, which has 2 different formats.

The API supports many other Apple identifiers, most of which are described below.

Note that we can expose Apple GSX service data for some clients.

Apple serial numbers

The API supports all three of Apple's structured serial number formats: legacy, 2000 and 2010. Examples:

  • F4412SAM0001 is a legacy format serial (for the early 128k Mac)
  • 84021NCV3NP is a 2000 format serial
  • C8QH6T96DPNG is a 2010 format serial

The latest format 2021 is composed of a random selection of characters and can therefore not be used to derive additional information about a device.

https://di-api.reincubate.com/v1/apple-serials/C8QH6T96DPNG/

$ python -m deviceidentifier.cli.apple_serial C8QH6T96DPNG
{
    "anonymised": "C8QH6•••DPNG",
    "configurationCode": {
        "code": "DPNG",
        "appleInternalNameClass": {
            "id": "N92"
        },
        "image": {
            "height": 120,
            "url": "https://di-api.reincubate.com/resource-159c9e87a3d6bbf5075bb030fa2925a0/",
            "width": 120
        },
        "skuHint": "iPhone 4 CDMA (8GB)"
    },
    "coverageUrl": "https://checkcoverage.apple.com/gb/en?sn=C8QH6T96DPNG",
    "id": "C8QH6T96DPNG",
    "manufacturing": {
        "city": "",
        "company": "",
        "country": "China",
        "date": "2012-02-05",
        "flag": "🇨🇳",
        "id": "C8Q"
    },
    "serialType": "2010",
    "uniqueId": {
        "productionNo": 31524,
        "value": "T96"
    }
}

Apple MLB serial numbers

The API supports Apple's main logic board (MLB) serial formats, for both 13 and 17 digit codes.

https://di-api.reincubate.com/v1/apple-mlb-serials/C02443500KZG2QDA7/

$ python -m deviceidentifier.cli.apple_mlb_serial C02443500KZG2QDA7
{
    "anonymised": "C02443•••KZ••••••",
    "boardType": "500",
    "cc": "KZ",
    "eeeCode": "G2QD",
    "id": "C02443500KZG2QDA7",
    "kk": "A7",
    "productionPlant": {
        "city": "",
        "company": "Tech Com, Quanta Computer Susidiary",
        "country": "China",
        "date": "2014-10-22",
        "flag": "🇨🇳",
        "id": "C02"
    },
    "serialType": "2010",
    "uniqueId": {
        "id": null,
        "productionNo": null
    }
}

Apple model numbers (MPN)

Also known as: Marketing Part Number (MPN)

An Apple model number identifies a particular hardware configuration of an Apple product. Apple model numbers can be presented with or without their regional or sale type encoding. These are also known as a marketing part number, or MPN. MPN is a misnomer in the sense that model numbers aren't actually numbers.

Model numbers are always prefixed with a sale code (often but not necessarily M), and usually follow with a letter and some numbers. They end with an optional sale region indicator of variable length.

What's encoded in an Apple model number?

Apple Model codes can provide the sale region of a device, as well as whether it was sold at retail, refurbished, or personalised, and the following data:

  • Apple Internal name class. This can be used to narrow it to a range of internal names.
  • Apple Identifier.
  • Sale region. The broad region that the device was intended to be sold in. This is stored as an optional part of the number.
  • Model specification. MPNs are reliable for indicating case size, colour, material and storage for iPhones, iPads, Apple Watches and computers.
  • OEM carrier. MPNs are typically made available to a discrete range of carriers, and carrier range can be identified by examining them.
  • Sale type. ie. whether the unit was sold as retail, refurbished, replaced, or personalised.

Example Model numbers

Number Notes
MC605FD/A An iPhone 4, black, 32GB, made for Austria, Liechtenstein, Switzerland
MC605LL/A iPhone 4, black, 32GB, made for the US
NN572LL/A An iPhone 7 Plus, made for the US
MKHQ2 iPad 6th gen, pink, 32GB, no sale region
MD298AE iPhone 5, black, 16GB, made for Saudi Arabia

Working with Apple Model numbers

  • Example Apple Model direct API request: MC605FD/A
  • Example Apple Model client library request:
$ python -m deviceidentifier.cli.apple_model MC605FD/A`
{
    "anonymised": "C605",
    "appleInternalNameClass": {
        "id": "N90"
    },
    "appleIdentifier": {
        "id": "iPhone3,1",
        "image": {
            "height": 330,
            "url": "https://di-api.reincubate.com/resource-26b007e1007180a28e272036775a48a0/",
            "width": 450
        },
        "product": {
            "line": "iPhone",
            "sku": "iPhone 4"
        },
        "specs_page": "https://support.apple.com/kb/SP587",
        "value": {},
        "variant": "GSM"
    },
    "id": "C605",
    "region": {
        "flags": "🇦🇹🇱🇮🇨🇭",
        "name": "Austria, Liechtenstein, Switzerland"
    },
    "specification": {
        "case_size": null,
        "colour": "Black",
        "material": null,
        "storage": "32 GB"
    },
    "distribution": null,
    "factory_lock": 0,
    "type": "Retail"
}

Apple identifiers

Apple identifiers are their core, top-level model identifier, such as iPhone9,3.

https://di-api.reincubate.com/v1/apple-identifiers/iPhone9,3/

$ python -m deviceidentifier.cli.apple_identifier iPhone9,3
{
    "id": "iPhone9,3",
    "image": {
        "height": 330,
        "url": "https://di-api.reincubate.com/resource-d8c14fc2a4dfcf27d5a217fb5e4c0cc4/",
        "width": 450
    },
    "product": {
        "line": "iPhone",
        "sku": "iPhone 7"
    },
    "specs_page": "https://support.apple.com/kb/SP743",
    "value": {
        "official_tradein": {
            "url": "https://www.apple.com/shop/trade-in",
            "value": "$175.00"
        }
    },
    "variant": "GSM"
}

Apple internal names

Internal names are Apple's internal model numbers, like N90AP. They are sometimes referred to as BoardConfig, and also -- misleadingly -- as HardwareModel.

https://di-api.reincubate.com/v1/apple-internal-names/N92AP/

$ python -m deviceidentifier.cli.apple_internal_name N92AP
{
    "id": "N92AP",
    "anonymised": "N92AP",
    "revision": null,

    "appleInternalNameClass": {
        "id": "N92"
    },

    "platform": "s5l8930x",
    "bdid": 6,
    "cpid": 35120,

    "appleIdentifier": {
        "id": "iPhone3,3",
        "image": {
            "height": 330,
            "url": "https://di-api.reincubate.com/resource-1e7820cb714e3d477534f291c0f87e83/",
            "width": 450
        },
        "product": {
            "line": "iPhone",
            "sku": "iPhone 4"
        },
        "variant": "CDMA"
    },

    "firmware": [
        {
            "build": "11D257",
            "filesize": 165768907,
            "ota": true,
            "required_build": "11A465",
            "required_version": "7.0",
            "signed": true,
            "signing_started": "2018-11-01",
            "signing_stopped": null,
            "url": "http://appldnld.apple.com/iOS7.1/031-4897.20140627.JCWhk/d52a3e7a1a2c16c8c400c6829a6d6fe6d5e00760.zip",
            "version": "7.1.2"
        },
        ...
      ]
}

Apple IDFA / IDFV

identifierForAdvertiser (IDFA) and identifierForVendor (IDFV) values replaced the UDID after iOS 5. They are set per application, or per vendor.

Apple state this of the IDFA:

iOS 6 introduces the Advertising Identifier, a non-permanent, non-personal device identifier, that advertising networks will use to give you more control over advertisers’ ability to use tracking methods. If you choose to limit ad tracking, advertising networks using the Advertising Identifier may no longer gather information to serve you targeted ads. In the future all advertising networks will be required to use the Advertising Identifier. However, until advertising networks transition to using the Advertising Identifier you may still receive targeted ads from other networks.

And this for the IDFV:

An alphanumeric string that uniquely identifies a device to the app’s vendor. (read-only)

The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.

Ole Begemann has written more on the migration from UDID.

https://di-api.reincubate.com/v1/apple-idfas/002ebf12-a125-5ddf-a739-67c3c5d20177/

$ python -m deviceidentifier.cli.apple_idfa 002ebf12-a125-5ddf-a739-67c3c5d20177
{
    "anonymised": "••••••••-••••-••••-••••-••••••••••••",
    "formatted": "002ebf12-a125-5ddf-a739-67c3c5d20177"
}

Apple Unique Device Identifiers (UDIDs)

There are two formats of UDID:

  • 2007: This format was introduced with the first iPhone and used on devices introduced up until 2018. It is a non-reversible composite identifier built from IMEI, ECID and MAC values. It is represented as a 40 character lowercase hex value.

  • 2018: This newer format was introduced for device models manufactured in 2018 and onwards (ie. iPhone XS, XS Max, XR, and Apple Watch Series 4). It is an uppercase 8 character hex value joined to a 16 character uppercase hex value by a dash (-) in the format 00000000-0000000000000000.

Apple usually uses this ID to associate a device with an iCloud ID. This also holds the Find My iPhone activation status. The UDID was deprecated for use within iOS applications with the introduction of iOS 5, though it still has a number of other uses

https://di-api.reincubate.com/v1/apple-udids/00008020-00166D4A2130003B/

$ python -m deviceidentifier.cli.apple_udid 00008020-00166D4A2130003B
{
    "anonymised": "••••••••-••••••••••••••••",
    "compromised": false,
    "formatted": "00008020-00166D4A2130003B",
    "format": "2018",
    "ecid": 32800,
    "cpid": "00166d4a2130003b"
}

Apple Family numbers / "A" numbers

Apple describe these for each phone on their "Identify your iPhone model" page.

https://di-api.reincubate.com/v1/apple-anumbers/A1784/

python -m deviceidentifier.cli.apple_anumber A1784
{
    "appleIdentifier": {
        "id": "iPhone9,4",
        "image": {
            "height": 330,
            "url": "https://di-api.reincubate.com/resource-d8c14fc2a4dfcf27d5a217fb5e4c0cc4/",
            "width": 450
        },
        "product": {
            "line": "iPhone",
            "sku": "iPhone 7 Plus"
        },
        "variant": "GSM"
    }
}

How can we help?

Our support team are here to help!

Our office hours are Monday to Friday, 9 AM to 5 PM GMT. The time is currently 5:05 PM GMT.

We aim to reply to all messages within one working day.

Our awesome support team

© 2008 - 2024 Reincubate Ltd. All rights reserved. Registered in England and Wales #5189175, VAT GB151788978. Reincubate® and Camo® are registered trademarks. Privacy policy & terms.