On your production line, in your team's browser, or in our cloud. Same engine everywhere — what changes is where it runs, and that decides what it should cost.
Production lines · continuous volume
Drops into your application and decodes on your own hardware. No network on the scan path, so a dropped uplink can't stop the line.
Warehouse, QA, field staff · camera in hand
A browser scanner your team just opens. Point a phone at the symbol and the payload appears. Nothing to install, nothing to deploy.
Mobile & web apps · low or bursty volume
POST an image, get the payload back. No 45 MB native decoder shipped into a phone app for a handful of scans a day.
Drop a photo or a generated DotCode. It decodes in milliseconds — and it's the same engine in all three products.
Drop an image or click to choose
| Offline SDK | Live Scanner | Cloud API | |
|---|---|---|---|
| Decoding happens | Your hardware | Our server | Our server |
| Works with no internet | Yes | No | No |
| Scan volume | Unlimited | Unlimited | Metered |
| Anything to install | A library | Nothing | Nothing |
| You pay | Per machine | Per machine | Per month |
A packaging line reading hundreds of symbols a minute cannot depend on an uplink — one blip and the line stops. For that customer the SDK is the only honest answer. And for a mobile app doing ten scans a day, shipping a native decoder is the wrong answer. Different volumes, different products.
No. Decoding happens in your process on your hardware; we never see the frames. That's exactly why the SDK is priced per machine.
Calls return a clear 402 and stop. No silent overage — a surprise invoice is worse than a failed call you can see and plan for.