BarcodeDetector: BarcodeDetector() constructor

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The BarcodeDetector() constructor creates a new BarcodeDetector object which detects linear and two-dimensional barcodes in images.


new BarcodeDetector()
new BarcodeDetector(options)


options Optional

An options object containing a series of BarcodeFormats to search for in the subsequent detect() calls. The options are:

formats Optional

An Array of barcode formats as strings. If not provided, detect() calls search for all supported formats. Limiting to specific formats is therefore recommended for performance reasons. To see a full list of supported formats see the supported barcode format.



Thrown if the formats is specified and the parameter is empty or contains unknown.


This example creates a new barcode detector object, with specified supported formats and tests for browser compatibility.

// check compatibility
if (!("BarcodeDetector" in globalThis)) {
  console.log("Barcode Detector is not supported by this browser.");
} else {
  console.log("Barcode Detector supported!");

  // create new detector
  const barcodeDetector = new BarcodeDetector({
    formats: ["code_39", "codabar", "ean_13"],


Accelerated Shape Detection in Images
# dom-barcodedetector-barcodedetector

Browser compatibility

BCD tables only load in the browser