File to the open record
Capture a document while its folder, case or metadata is already selected.
Let Windows users scan from TWAIN and WIA devices directly into the record they are working on. Use the ready-made interface or the local API, then receive the PDF or image in your own code.




Your user opens a customer, claim, shipment or case, scans the paper and saves. Your handler receives the Blob and stores it where your application already expects it. ScanBridge provides the missing connection between the browser and the Windows scanner.
Keep the user in the customer, claim, shipment or case they already opened. No scan-to-folder step and no browsing for the file afterwards.
Ship the scan dialog as it is, customise it with Enterprise, or call the six local endpoints from your own interface.
$ curl -H "Authorization: ScanBridge $TOKEN" \ http://127.0.0.1:18625/scanners [ { "id": "twain2-freeimage", "name": "TWAIN2 FreeImage Software Scanner", "source": "TWAIN" } ]
Save a PDF, PNG or JPG through the same handler you use today. Professional combines up to 100 scanned pages into one document in the browser.
/statusis the service running
GET/readyone verdict, service and licence
GET/scannersdevices this machine can see
POST/scanner-optionswhat that device supports
POST/scanone scan
The dialog only ever offers what the connected scanner actually supports. The plans stack, so each one carries everything below it.
The web component is a custom element. Drop it in the page, listen for one event, and you have the file. Everything else is optional.
full integration guide at scanbridge.dev/install →import '@scanner/web' <scanner-widget license-key="SB-…" // issued by us, bound to your domain file-type="pdf" lang="en"> </scanner-widget> const scanner = document.querySelector('scanner-widget') scanner.addEventListener('saved', e => { upload(e.detail.blob) }) scanner.addEventListener('closed', onClosed) scanner.show()
// event.detail, for file-type="pdf" { "fileType": "pdf", "blob": Blob // application/pdf } // for png or jpg, one entry per page { "fileType": "png", "pages": [ { id, name, url, mimeType, blob } ] }
Two ways it gets onto the machine, and the widget handles both. Neither of them ends with a support ticket.

The widget notices the service is not answering and offers the installer itself. Download, install, then Verify. No link to send, nothing to explain.
One MSI, pushed to your users the usual way. Those users never see the dialog on the left at all.
Nothing is uploaded to make scanning work. What your application does with the file afterwards is your decision, not ours.
You set the licence key once, in your own bundle. The helper activates it quietly on the first scan.
The licence carries an allow-list of origins. A key copied out of your bundle does not work on somebody else's host.
Without a valid verdict the scan flow does not open. There is no client-side switch that lets it through anyway.
An activated machine keeps working without a connection until the licence really expires. A revocation on the server always beats the cached answer.
The browser is not the limit. The operating system is. Better you find that out here than three meetings into a purchase order.
ScanBridge fits products where a Windows user already has a record open and the next action is to attach paper to it. The scan returns to your code, so your storage, permissions and workflow stay in charge.
Capture a document while its folder, case or metadata is already selected.
Attach signed forms, invoices and customer documents without scan-to-folder first.
Use Professional to scan, review and save up to 100 pages as one browser-built PDF.
Connect the web workflow to TWAIN or WIA devices on existing Windows workstations.
Use the architecture guide to evaluate the approach, follow a framework example to build it, or open the complete integration reference when you need every option.
Follow the page from TWAIN or WIA through the local helper and into your own code.
Install the packages, render the custom element and handle the saved event.
Choose the web component or local API and continue to the complete install reference.
Browse technical material by problem, framework and workflow.
One licence covers one production application, with no charge per internal user or workstation. Every key also covers localhost for development. Yearly pricing includes two months compared with paying monthly. Prices in USD.
These come up before the paperwork starts, every time. If yours is not here, the address is at the bottom of this page.
Yes. Every key we issue covers localhost alongside the production domain you name. Additional live domains, staging included, are arranged with us.
Yes. The widget is a plain custom element, so anything that renders HTML can mount it: React, Angular, Vue, or a server rendered page. Ready made snippets for each are in the install docs.
Request a key for your domain and we issue it without payment. For 14 days you can use every Enterprise feature, including all eight languages and interface customisation. A visible evaluation banner remains in the widget during the trial.
As many as you need. The licence covers one application, not a count of machines or users, so the installer goes on every workstation that has a scanner, for each user who scans there.
No. A standard user can run it, because it installs for that user rather than for the whole machine. Who runs it is your policy, not our requirement.
No. You set license-key once in your page. The service activates that machine silently at the first scan.
ScanBridge is not currently certified for RDP, Citrix or multi-user terminal server deployments. The supported setup keeps the browser and helper in the same Windows user session with access to the scanner. Test your exact setup during the trial and talk to us before purchase.
Tell us the domain and what you are building. We will issue a 14-day Enterprise trial with every feature unlocked and no payment required.