Web App
The BiomAPI web app is a single-page application available at the root URL (/). No account required — drop a file and get structured results instantly.
Integrators can open the same review interface through the Web Widget. Widget mode adds an explicit green handoff bar, keeps the single-report workflows and original-file comparison, and returns data only after the user chooses Send.
Input Tabs
Section titled “Input Tabs”The top section has five tabs for different input methods.
Upload
Section titled “Upload”Process a single biometry file. Drag and drop, click to browse, or paste a file. The extraction engine is selected automatically by file extension:
- PDF, JPG, PNG, GIF, BMP → BiomAI (LLM extraction)
- JSON → BiomJSON (schema validation, preserves original metadata)
Share toggle — enables BiomPIN generation for the result. Off by default.
When enabled for the deployment, Phone Upload appears beside Open file on desktop browsers and displays a one-time QR code. Scan it to connect the phone browser, then take a photo or choose one supported file. Transfer starts immediately after selection and the received file appears in the desktop browser’s normal single-file preview. The phone-upload option is not shown when the web app itself is opened on Android or iOS.
The phone-to-desktop transfer uses an encrypted WebRTC data channel. BiomAPI exchanges temporary connection setup metadata but does not receive the report bytes. A direct P2P path is preferred; if network restrictions prevent it, the UI labels the encrypted Cloudflare TURN relay fallback explicitly. Selecting Process Biometry afterward is a separate action that uploads the received file through the normal BiomAPI processing path and, for PDFs or images, sends it to Gemini.
Multiple files
Section titled “Multiple files”Choose Select multiple files from the Process menu to open the dataset setup card before the native file picker. Processing has no fixed file-count cap in the browser workflow. Standard uses the deployment’s configured concurrency, while Slow uses three times that value. Files are still sent as individual requests. Keep the tab open until the run is complete. A single ZIP export is subject to the deployment’s configured body-size and response-count limits.
Choose a processing speed before selecting files:
- Slow (default for each new multiple-files workflow): 0.5 credit per PDF/image, with potentially much higher latency
- Standard: 1 credit per PDF/image and usually faster completion
JSON files continue to use BiomJSON and are unaffected by the processing speed. For large datasets, the your own Gemini API key link expands the existing BYOK key panel; BYOK selects the credential/quota lane, while Slow selects the processing speed.
Add to history is on by default. When enabled, each successful result gets a temporary BiomPIN and is added to History in that browser. Turn it off to process and download results without creating BiomPINs. The app stores only the BiomPIN history entry locally, not the full response.
Create spreadsheet is also on by default. When enabled, the download contains combined CSV and XLSX spreadsheets with the extracted biometric data. Turn it off to download only the individual JSON results.
After processing, Download ZIP downloads:
- A by-eye CSV (
biomapi-export-YYYYMMDD-HHMMSS.csv) - A matching XLSX workbook (
biomapi-export-YYYYMMDD-HHMMSS.xlsx) - Individual JSON files per report
BiomPIN
Section titled “BiomPIN”Retrieve a previously processed result using a BiomPIN code (word-word-123456). The 6-digit numeric suffix is the decryption key — entering only the word-word portion returns an error.
You can also navigate directly to https://biomapi.com/pin/word-word-123456 — the app pre-fills the PIN field and retrieves automatically.
Transcribe
Section titled “Transcribe”Manual data entry (BiomDIRECT). Fill in device info, patient demographics, and per-eye measurements directly. Useful when a PDF isn’t available or for entering data from a printout.
Results from Transcribe are tagged method: "BiomDIRECT" with source_app: "BiomAPI Webapp" in the response metadata. All measurement fields are optional — enter only what you have.
History
Section titled “History”Recently retrieved BiomPINs are saved in your browser’s localStorage. History entries show the patient name/ID, device, expiry time, and PIN code. Click any entry to retrieve it again.
BiomPIN records stored on the server omit patient name/initials and patient ID. The web app restores those identifiers locally when they are already in browser history or supplied through a #biomctx=... URL fragment.
Results Display
Section titled “Results Display”After any successful processing or retrieval, the results panel shows:
Data tab
Section titled “Data tab”Two-column table (OD / OS) with all extracted fields:
- Biometer: device name, manufacturer
- Exam date: shown with the device when present
- Patient: name (as initials), ID, date of birth, gender
- Per-eye: AL, ACD, K1/K2 (magnitude + axis), WTW, LT, CCT, lens status, post-refractive, keratometric index
- Posterior keratometry (PK1/PK2) if available
K1/K2 and PK1/PK2 powers are displayed inline with their axes (for example, 45.0 D @ 5º). The web app also adds two display-only astigmatism summaries without changing stored JSON or exports: ΔK = (K2 − K1) @ K2 axis and ΔPK = (PK2 − PK1) @ PK2 axis. Posterior PK1/PK2 powers and the derived ΔPK use the negative-power display convention.
Metadata tab
Section titled “Metadata tab”Extraction provenance:
method— BiomAI or BiomDIRECTtimestamp- For BiomAI results: LLM model, BYOK status, and input schema version when present
- For BiomDIRECT results: input schema version and client-declared source fields when present
BiomPIN card
Section titled “BiomPIN card”If a BiomPIN was generated, the card shows:
- The full PIN (
word-word-123456) — click to copy - An identity/Anonymous selector beside the BiomPIN heading for controlling the copied link and QR code; patient identity is selected by default for each result
- A QR code — scan with a mobile device to open the result directly
- Expiry date
ESCRS button
Section titled “ESCRS button”Opens the configured ESCRS IOL power calculation platform in a new tab, pre-filled with the extracted biometry data. The URL includes the BiomPIN and, when patient identifiers are available, a reversible #biomctx=... fragment so the calculator can restore them locally. The fragment is not sent in a normal HTTP request, but anyone receiving the complete URL can decode it; handle that URL as patient-identifying data.
Extraction feedback
Section titled “Extraction feedback”After reviewing a fresh single-file BiomAI extraction, you can answer Was this extraction accurate? with the thumbs-up or thumbs-down icon. Both options record the rating in one click. No report or extracted data is sent with it, only the rating and a technical reference. The muted prompt sits just below the table, aligned to its right edge. This feature is available when analytics is enabled.
After a successful thumbs-up rating, the question and icons are replaced by Thank you for the feedback!, which fades away after about three seconds. After a successful thumbs-down rating, they are replaced by the text link Let us know what went wrong. It optionally opens the contact form with the extraction reference and app version. No message is sent until you select Send Message. Do not include patient identifying information. Rating a result does not require a name or email; those are required only if you choose to send a contact message.
The prompt remains available if you edit that extraction in the same page session, so you can correct the values first and rate the original extraction afterward. It then asks Was the original extraction accurate? and still uses the original processing request ID. An existing rating and any optional contact draft are preserved through further edits; a dismissed thank-you stays dismissed. No corrected values are attached to feedback. If submitting a rating fails, the question stays visible with an error message instead of showing the success state.
This context stays in browser memory: reloading the page or loading a different result does not carry it over. The prompt is not shown for retrieved results, JSON uploads, standalone manual entries, batch results, or widget integrations. The server’s feedback expiry window still applies. Feedback is voluntary and does not replace checking the extracted values against the original report.
Edit Modal
Section titled “Edit Modal”Click Edit on any result to open the full edit form. All fields are editable:
- Report:
device_name(required),manufacturer(required), exam date (optional) - Patient: name, ID, date of birth, gender (all optional)
- Per eye: all 12 measurement fields (all optional)
- Notes and posterior keratometry
Unsaved changes protection — if you try to close the modal with unsaved changes, a confirmation dialog appears.
Submitting the edit re-processes the data and returns a new latest-state result tagged BiomDIRECT with source_app: "BiomAPI Webapp". If the original result was BiomAI-extracted, the edited result no longer uses BiomAI as active provenance.
Status Bar
Section titled “Status Bar”The fixed bar at the bottom of the screen shows your current authentication and usage state.
| Element | Description |
|---|---|
| BiomAPI key | Enter your key for higher per-user rate limits. Stored in localStorage. |
| Gemini key | BYOK — uses your own Gemini quota for PDF/image extraction. Stored in localStorage. |
| Usage counters | Live remaining/limit quota display, updated after each request. |
| Auth status | Shows whether you’re authenticated (green) and your user ID. |
Both keys are validated by the app via GET /api/v1/biom/usage when entered. A green indicator means the key is valid; red means invalid or not provided.
Downloads
Section titled “Downloads”Single JSON
Section titled “Single JSON”Download the full StandardAPIResponse JSON for any individual result using the Download button on the result card.
ZIP export
Section titled “ZIP export”After multiple-file processing, click Download ZIP to download:
biomapi-export-YYYYMMDD-HHMMSS.csv— by-eye CSV (two rows per report: OD + OS)biomapi-export-YYYYMMDD-HHMMSS.xlsx— formatted workbook with the same by-eye data- Individual JSON files with smart filenames:
biomapi-{patientId}-{device}.json
If Create spreadsheet was turned off before processing, the ZIP contains only the individual JSON files.