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.
"A" number A1784 Model number A range 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 major 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

Apple will likely be able maintain the 2010 format serials until the early 2020s, when they will run out.

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"
    },
    "oem_carrier": null,
    "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": {
            "link": "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)

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 in iOS 5. It is a composite non-reversible identifier build from IMEI, ECID and MAC values.

https://di-api.reincubate.com/v1/apple-udids/db72cb76a00cb81675f19907d4ac2b298628d83c/

$ python -m deviceidentifier.cli.apple_udid db72cb76a00cb81675f19907d4ac2b298628d83c
{
    "anonymised": "••••••••••••••••••••••••••••••••••••••••",
    "compromised": false,
    "formatted": "db72cb76a00cb81675f19907d4ac2b298628d83c"
}

Apple "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, 9am to 5pm GMT.

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

Get in touch › Our awesome support team

© 2008 - 2019 Reincubate Ltd. All rights reserved. Registered in England and Wales #5189175, VAT GB151788978. Reincubate® is a registered trademark. Privacy & terms. We recommend 2FA. Built with in London.