Now on npm: @reedscan/core 0.2

Capture the physical world, inside any web app.

ReedSCAN turns the cameras your teams and customers already carry into fast, accurate barcode capture. It's built into your own web platform, runs on the device, and needs nothing installed.

npm install @reedscan/core
13barcode and 2D code types
0servers between the camera and your app
1 MBdecoding engine, cached after the first load
Anymodern browser with a camera, phone or desktop

One capture engine for every workflow.

Single scans at a checkout, a shelf of labels at once, a pallet at the dock. The same SDK, configured for the job, inside the app your people already use.

Every code in view, at once

Each code gets a box that stays on it as the camera moves. Every one is read and reported once, so a whole shelf takes a single sweep.

Fast on the phones you already have

Decoding runs in background workers sized to the device, so the camera view stays smooth on an older Android as well as a new iPhone.

Rules before data reaches you

Limit symbologies and accept only values that match your format. Everything else is ignored at the camera.

accept: /^LOC:[A-Z0-9-]+$/

Drops into any stack

A JavaScript package with a React component. It needs an element and a callback, nothing else.

  • React
  • Next.js
  • Vue
  • Angular
  • Svelte
  • Plain JavaScript

Reads the codes your operation runs on

  • QR Code
  • Data Matrix
  • Code 128
  • EAN-13
  • UPC-A
  • EAN-8
  • UPC-E
  • PDF417
  • Aztec
  • Code 39
  • Code 93
  • Codabar
  • ITF

Wherever work meets a barcode.

Teams put ReedSCAN in the internal tools, customer apps and partner portals they already run.

Retail

Shelf work and checkout from the store team's own phones.

  • Price checks and shelf-label audits
  • Click-and-collect picking
  • Mobile point of sale and line-busting
  • Self-scanning in your customer app

See it on your own camera.

This is the production SDK, running in this page. Start the camera and show it a barcode or QR code, or point it at the labels at the top of the page.

Show it a QR code or a barcode.

Live in an afternoon, not a quarter.

One package from npm. Give it an element and a callback: it brings the camera, the boxes, the feedback and the decoding.

  1. Install

    npm install @reedscan/core, or @reedscan/react for the component.

  2. Add the scanner

    Point it at an element in your page and handle each code in onScan.

  3. Go live

    Add the license key for your domains. Until then it runs in evaluation mode, every feature included.

import { createScanner } from "@reedscan/core";

const scanner = createScanner(document.querySelector("#scanner"), {
  licenseKey: "RS1.…",
  onScan: (scan) => console.log(scan.format, scan.value),
});

button.onclick = () => scanner.start();

Built to pass the security review.

Capture runs entirely in your users' browsers, under your domain. Nothing about your operation passes through us.

  • Processed on the device

    Camera frames are decoded in the browser. No picture or scanned value is sent to us, ever.

  • Offline license check

    License keys are signed and verified in the browser. There's no license server to reach, and nothing to fail at 6 a.m.

  • Self-host everything

    Serve the decoding engine and worker from your own domain, for intranets, air-gapped sites and private clouds.

  • Strict CSP support

    Works under a Content Security Policy that blocks blob workers: point it at your own worker file.

  • No tracking

    No analytics and no telemetry. The SDK makes no network request except to load its own engine.

  • No user accounts

    Your users never sign up for anything. The key belongs to your domain, not to people.

How ReedSCAN compares.

The established vendors build broad, multi-platform suites. ReedSCAN does one thing: capture in the browser, priced and licensed for web teams.

Every comparison cites the vendor's own pages, checked on the date shown, and compares documented features only. Spot something out of date? Tell us and we'll correct it.

Licensed per domain. Evaluate for free.

No per-scan metering and no per-device counting. Build and test without a key; license the domains you go live on.

Evaluation

Free

No key, no sign-up

  • Every feature, on any site
  • Unlimited on localhost and your local network
  • Elsewhere, a watermark and 60 seconds of scanning per page load
Start building

Production

Per domain

A license key for your domains

  • No watermark, no time limit, no scan limits
  • Locked to your domains, for example acme.com and *.acme.com
  • Checked offline: scanning never waits on a license server
  • 14 days' grace after the end date, so a late renewal never stops a shift
Get a quote

Platform

Custom

For software you sell to your own customers

  • Embed capture in a product your customers run on their own domains
  • Keys issued for each of your customers
  • Volume terms
Talk to sales

Questions, answered.

Something else? Email us.

Do my users need to install an app?
No. ReedSCAN runs in the web browser your users already have, on Android, iPhone, iPad and computers. You add it to your own web app as a JavaScript package.
Which barcodes does it read?
QR Code, Data Matrix, Code 128, EAN-13, UPC-A, EAN-8, UPC-E, PDF417, Aztec, Code 39, Code 93, Codabar and ITF. Pick the ones you need: fewer is faster.
Does it work offline?
Yes. Decoding happens on the device and the license key is checked in the browser. For sites with no internet access, serve the decoder file from your own server.
Are camera pictures sent anywhere?
No. Pictures and scanned values stay on the device. ReedSCAN doesn't call a server while it scans.
Does it work with React, Vue or Angular?
Yes. @reedscan/react is a ready-made React component. @reedscan/core works with any framework, or none: give it an element and a callback.
Is it free?
You can build and test with it free, with no key. Production use needs a license key for your domains. Without one, scanning stops after 60 seconds per page load.

Put capture inside your product.

Start with the free evaluation today, or talk to us about licensing for your domains.