Capabilities
The six cascade layers, cheapest first
A six-layer cascade resolves most columns deterministically, and settles most of the rest on a matcher we train and host ourselves, before a third-party model is touched. Structural reshape, any-to-any convert, checksum-strict validators, FHIR emit, layout reuse and durable connectors all wrap the same engine — without shipping raw records to an LLM.
- capability pages, each a full reference
- 8
- templates the engine serves, across 7 packs
- 33
- field-level validators, run identically everywhere
- 16
- come back flagged for your review gate
- 13
Browse
Eight surfaces, one cascade underneath.
Each page is a full reference, not a summary: the real routes, the thresholds and identifiers behind them, a curl you can run, the response it returns, the error codes it refuses with, and what the call draws from your wallet.
Schema mapping
Six layers in strict cost order.
POST /v1/match
ExploreStructural reshape
Transpose, un-pivot, pivot, join across sheets and split one messy input into a clean multi-sheet workbook.
POST /v1/reshape
ExploreAny-to-any convert
Spreadsheets and Parquet never leave the Worker.
POST /v1/convert
ExploreValidators
Nineteen field validators run before anything is written — IBAN mod-97, GTIN and GLN check digits, NPI Luhn, LOINC, ICD-10, ATC and CPT.
POST /v1/validate-row
ExploreFHIR R4 emit
Fourteen R4 resource types, built from each template’s fhir_resource — Patient, Observation, Claim, Coverage and the rest.
output: "fhir"
ExploreSchema-only vs full-data
Schema-only is a data-minimization mode — headers and ≤3 clamped sample rows, nothing else.
mode: schema-only | full-data
ExploreLayout reuse & drift
Every confirmed mapping is cached against a SHA-256 fingerprint of its normalized header row.
POST /v1/layouts/lookup
ExploreConnectors & webhooks
Pull on a schedule from HTTPS, S3, GCS, Azure Blob, a SQL endpoint, Sheets, Salesforce or HubSpot.
POST /v1/gateway
Explore- HMAC self-contained API keys
- Headers + ≤3 clamped rows in schema-only
- Uploads expire from KV — 24h by default
- In-region PHI routing under a BAA
- 33 templates · 16 field validators
One pipeline
The path a file takes, end to end.
The capabilities are not separate products. They are the five things that happen to a file between the moment it arrives and the moment your system of record accepts it.
- 1
Arrives
From anywhere
A spreadsheet, a Parquet file, a scanned form, a nightly bucket drop or a SQL query. Structured formats are parsed inside the Worker and never leave.
Connectors & webhooks - 2
Untangles
Into a real table
Header rows three down, grouped headers, unit rows and fully transposed layouts are normalized deterministically, before a model is called.
Structural reshape - 3
Maps
Cheapest layer first
Six layers in strict cost order, short-circuiting the moment a column resolves. Most columns finish on the three free deterministic layers, and a matcher we host ourselves settles most of what is left before a third-party model is touched.
Schema mapping - 4
Validates
At commit, not after
Real checksums where a real check exists — mod-97, GS1, Luhn — on the resolved value about to be written. A failure is a code, not a shrug.
Validators - 5
Leaves
In the shape you need
JSON, CSV, XLSX, Parquet, SQL or a FHIR R4 Bundle — returned inline, written into your table, or delivered as a signed webhook batch.
FHIR R4 emit
One engine
The same three promises on every endpoint.
Whichever surface you call, the exposure story, the cost story and the determinism story are the same — because underneath, it is the same cascade running in the same Worker.
Deterministic first
Three of the five cascade layers are free, in-process and byte-reproducible. Most files finish there and never reach a metered call at all.
Minimized by default
Schema-only ships your headers plus at most three sample rows, each clamped to 80 characters, through one shared chokepoint. Raw records stay with you.
One prepaid wallet
No free tier, no seats and no contract. Top up from $10; every map draws a small flat fee, and AI tokens are billed only when a model actually ran.
At a glance
Every capability has an address.
REST under /v1, JSON in and JSON out. Two routes are public and need no key at all; the rest take an HMAC-signed key carrying the scope named here.
| Capability | Primary route | Auth | What comes back |
|---|---|---|---|
| Schema mapping | POST /v1/match | Public · 100/h per IP | Per-column matches + the layer that resolved each |
| Structural reshape | POST /v1/reshape | Bearer · commit | The transform artefact + the reshaped sheets |
| Any-to-any convert | POST /v1/convert | Bearer · transform | Extracted rows + the routing that served them |
| Validators | POST /v1/validate-row | Public · 200/h per IP | { ok, errors[] } — nothing persisted |
| FHIR R4 emit | output: "fhir" | On convert / transform / commit | A collection Bundle as application/fhir+json |
| Layout reuse & drift | POST /v1/layouts/lookup | Bearer · read | The confirmed mapping, or a stable/drift verdict |
| Connectors & webhooks | POST /v1/gateway | Bearer · commit | A delivery report instead of the data |
| Data modes | mode · phi_mode | Fields on every mapping route | What may leave, and where it may go |
requires_hitl so your workflow can gate the commit. Layers 4 and 5 of the cascade are config-gated and fail soft to OFF — an unconfigured deployment maps on the deterministic layers rather than erroring.One key, every capability — on one prepaid wallet.
Capabilities are endpoints on the same cascade, not separate products. Top up from $10; every map draws a few tokens, and AI cost is added only when a model was actually needed.