Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/nordicsemi/bluetooth-numbers-database/llms.txt

Use this file to discover all available pages before exploring further.

The experimental/ directory in the Bluetooth Numbers Database repository contains datasets that are not yet part of the stable v1 API. Currently it holds two NFC manufacturer name files — useful for developers working with NFC tags who need to resolve NFC IC manufacturer identifiers to company names and countries. These files are maintained alongside the Bluetooth data but follow a separate, less formal release process.
Experimental data may change structure or be relocated without a major version bump. Do not rely on it in production without pinning to a specific commit SHA. See the JSON Files page for details on pinning to a commit.

Available Files

FileDescription
nfc_one_byte_manufacturer_names.jsonOne-byte (single two-hex-digit) NFC IC manufacturer identifiers assigned to individual companies
nfc_two_byte_manufacturer_names.jsonTwo-byte NFC IC manufacturer identifiers for companies registered in the extended range

Data Structure

Both files share the same top-level structure: a JSON object with a single "manufacturer" key whose value is an array of manufacturer entries. Each entry in the array has the following fields:
manufacturer
Array<object>
Array of NFC IC manufacturer records. Each element describes one registered manufacturer.

Example — One-Byte Manufacturers

{
  "manufacturer": [
    { "company": "Motorola",              "country": " UK",      "identifier": "01" },
    { "company": "STMicroelectronics SA", "country": " France",  "identifier": "02" },
    { "company": "Hitachi Ltd",           "country": " Japan",   "identifier": "03" },
    { "company": "NXP Semiconductors",    "country": " Germany", "identifier": "04" }
  ]
}

Example — Two-Byte Manufacturers

{
  "manufacturer": [
    { "identifier": "00", "company": "Shenzhen Goodix Technology Co., Ltd.", "country": "China" },
    { "identifier": "01", "company": "Panthronics AG",                        "country": "Austria" },
    { "identifier": "02", "company": "Beijing Huada Infosec Technology Co., Ltd,", "country": "China" },
    { "identifier": "03", "company": "Shanghai Oriental Magnetic Card Engineering Co Ltd", "country": "China" }
  ]
}

Accessing Experimental Data

The experimental/ directory is not exported from the npm package’s main index.js and is not included in the published npm package. The files field in package.json is ["*.js", "v*/*.json", "README.md", "LICENSE"] — the v* glob only matches directories whose names begin with v, so the experimental/ directory is excluded from the npm bundle entirely. You cannot require these files from an npm installation. To access the experimental data you must either fetch it from the raw GitHub URL (any environment) or clone the repository and read the files directly from disk.

Raw GitHub URLs

Fetch directly from GitHub’s raw content CDN for any non-Node.js environment:
https://raw.githubusercontent.com/NordicSemiconductor/bluetooth-numbers-database/master/experimental/nfc_one_byte_manufacturer_names.json
https://raw.githubusercontent.com/NordicSemiconductor/bluetooth-numbers-database/master/experimental/nfc_two_byte_manufacturer_names.json
// Fetch example — works in browsers, React Native, Deno, Node.js 18+
const response = await fetch(
  'https://raw.githubusercontent.com/NordicSemiconductor/bluetooth-numbers-database/master/experimental/nfc_one_byte_manufacturer_names.json'
);
const { manufacturer } = await response.json();

const st = manufacturer.find(m => m.identifier === '02');
console.log(st.company); // 'STMicroelectronics SA'

Reading from a cloned repository (Node.js)

If you have cloned the repository locally, you can read the files directly from disk:
// Requires a local clone of github.com/NordicSemiconductor/bluetooth-numbers-database
const nfcOneByte = require('./experimental/nfc_one_byte_manufacturer_names.json');
const nfcTwoByte = require('./experimental/nfc_two_byte_manufacturer_names.json');

// Resolve a one-byte manufacturer identifier
function resolveNfcManufacturer(hexIdentifier) {
  const entry = nfcOneByte.manufacturer.find(
    m => m.identifier.toUpperCase() === hexIdentifier.toUpperCase()
  );
  return entry ? `${entry.company.trim()} (${entry.country.trim()})` : `Unknown (${hexIdentifier})`;
}

console.log(resolveNfcManufacturer('02')); // 'STMicroelectronics SA (France)'
console.log(resolveNfcManufacturer('04')); // 'NXP Semiconductors (Germany)'

Contributions and corrections to the NFC datasets are welcome via pull request, following the same process as the v1 data. If you have a manufacturer entry that is missing or incorrect, open an issue or submit a PR directly to the repository at github.com/NordicSemiconductor/bluetooth-numbers-database.

Build docs developers (and LLMs) love