REST API
api.adaptivmapr.com/v1. Quickstart →Docs
Map any CSV, Excel, SQL, or JSON to your target schema through the five-layer cascade — without shipping raw records to an LLM. Start with the quickstart, then jump to the reference section you need.
Quickstart
POST a file to /v1/uploads with a bearer token and a template ID, let the cascade propose mappings, confirm them, and commit. The full walkthrough — getting a key, schema-only vs full-data mode, and the requires_hitl flag — lives on the dedicated quickstart page.
curl -X POST https://api.adaptivmapr.com/v1/uploads \
-H "Authorization: Bearer $ADAPTIVMAPR_API_KEY" \
-F "file=@customers.csv" \
-F "template=users_v1"Surfaces
api.adaptivmapr.com/v1. Quickstart →API keys
API keys are HMAC-signed, self-contained credentials: everything needed to authenticate — the workspace (tenant_id), the name, and the granted scopes — is carried in the token and verified by signature, so there is no per-request key lookup. Pass the key as a bearer token in the Authorization header on every call.
Rotating the signing secret is a two-step swap that never breaks live keys: move the current MAPR_KEY_SECRET to MAPR_KEY_SECRET_PREVIOUS, set the new value as MAPR_KEY_SECRET, and re-mint at your own pace. Verification does a constant-time compare against both secrets, so keys signed by the old secret keep working through the overlap window; drop MAPR_KEY_SECRET_PREVIOUS once everything is re-minted. Mint, rotate, and revoke keys in the dashboard.
MCP
AdaptivMapr ships an MCP server so an AI coding environment can call the cascade directly. Add the block below to your MCP config — ~/.cursor/mcp.json for Cursor, or the Claude Desktop config file — and restart the client. The ADAPTIVMAPR_API_KEY is optional: a set of no-key preview tools runs with no key at all.
{
"mcpServers": {
"adaptivmapr": {
"command": "npx",
"args": ["-y", "@adaptivmapr/mcp-server"],
"env": {
"ADAPTIVMAPR_API_KEY": "<optional for no-key preview tools>"
}
}
}
}No-key preview tools
Only headers and ≤3 short sample rows ever leave your machine; csv_preview is fully local. Handy as a demo — a mapping still bills the small flat per-map fee.
Full-data — key + active bundle
The full-data tools (e.g. LLM-assisted whole-file matching and committing to a webhook) require a valid key on an active AdaptivMapr subscription. Layer-5 traffic then routes to a PHI-eligible provider with X-PHI / X-Region. See PHI mode.
Usage & cost
Every map bills a small flat per-map fee (a few tokens), even a fully-deterministic map or a cache-hit re-map. On top of that, every header runs through five layers, cheapest-first, and the moment a layer accepts a column, the layers below it never run. Only the metered LLM layer bills real AI tokens, so keeping columns out of it is the single biggest cost lever in the system.
Layers 1–3 are always on and never touch AI. The highest-leverage thing you can do to lower your LLM share is add multilingual hints to your templates: a hint that catches a header’s vocabulary pulls it up into the free heuristic layer, so it never reaches the metered call again. Every operation draws down a prepaid token wallet (a $10 minimum, shared across our suite). Read back consumption via GET /v1/usage.
PHI mode & retention
Schema-only is the default data-minimization mode: only headers plus ≤3 sample rows (≤80 chars each) ever leave your environment — the clamp is enforced at the HTTP edge on every route that accepts sample rows. It is the safest way to map, though a map still bills the small flat per-map fee.
Full-data is gated behind an active AdaptivMapr subscription. The cascade still runs in-process exactly like schema-only; only the layer-5 LLM call goes out — to a PHI-eligible provider with X-PHI: true and an X-Region header, so the gateway forces a PHI-eligible, in-region model under BAA. Full-data PHI routing fails closed if the target host is not on the BAA-covered allow-list.
Retention. Uploads are held in edge storage (Cloudflare KV) with a 24-hour TTL and then expire automatically — the response carries an expires_at. AdaptivMapr does not retain your raw records beyond that window. For the full data-flow, sub-processors, and controls, see /legal/security.
Learning
Every correction you confirm feeds the statistics layer, so the same header resolves without AI next time. Crucially, what is recorded is header-to-field statistics only — the normalized column name and the target field it was confirmed against. No cell values, no sample rows, and no record content are stored in the learning signal.
tenant_id and enforced by row-level security — there is no cross-tenant sharing of statistics or layouts.Connectors & webhooks
Connectors are ingest sources — a file drop, a URL, or an inbound webhook — configured per workspace under /v1/connectors, with their secrets encrypted at rest. A connector can run sync-on-demand (you trigger a sync) or on a schedule (a cron picks up new data automatically).
Outbound webhooks deliver validated rows to your endpoint on commit. Each delivery carries an X-AdaptivMapr-Signature header: an HMAC-SHA256 computed with the webhook secret you set, over the string ${timestamp}.${body}. The timestamp prefix gives you replay protection — reject any request whose signature does not recompute, or whose timestamp is stale. Failed deliveries are retried and dead-lettered.
// Verify a webhook delivery (Node)
import { createHmac, timingSafeEqual } from 'node:crypto'
function verify(rawBody, header, secret) {
const [ts, sig] = header.split(',') // "t=<unix>,v1=<hex>"
const signed = `${ts.slice(2)}.${rawBody}` // ${timestamp}.${body}
const expected = createHmac('sha256', secret)
.update(signed)
.digest('hex')
return timingSafeEqual(
Buffer.from(sig.slice(3)),
Buffer.from(expected),
)
}Layouts & drift
Beyond per-pair statistics, the whole confirmed mapping for an exact header row is cached as a layout, keyed by a sha256 fingerprint of the normalized header row. Commit records the layout automatically, and when the same header row arrives again POST /v1/layouts/lookup returns it so an importer can offer one-click “reuse last mapping.” A re-map that hits this cache uses no AI — you pay only the flat per-map fee. Layouts are workspace-scoped — no cross-tenant sharing.
# Offer one-click "reuse last mapping" for a known header row
curl -X POST https://api.adaptivmapr.com/v1/layouts/lookup \
-H "Authorization: Bearer $ADAPTIVMAPR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "template": "users_v1",
"headers": ["Vorname", "Nachname", "E-Mail"] }'Drift detection reuses the same fingerprint. POST /v1/layouts/drift compares an incoming field-set for a known (workspace, template) against the newest confirmed layout and returns status: drift with an added/removed/common diff (stable or first_seen otherwise). It is fully deterministic — no LLM call — and source-agnostic.
# Detect schema drift for a known (workspace, template) — no LLM
curl -X POST https://api.adaptivmapr.com/v1/layouts/drift \
-H "Authorization: Bearer $ADAPTIVMAPR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "template": "users_v1",
"headers": ["Vorname", "Nachname", "Phone"] }'{ "status": "drift",
"added": ["Phone"],
"removed": ["E-Mail"],
"common": ["Vorname", "Nachname"] }Schemas
A schema (template) is the shape you map onto. Templates ship in packs — Core, CRM, E-commerce, Healthcare, Finance & Payments (PCI), and HR & People (PII) — and each field carries multilingual hints (DE/FR/IT/EN/ES) and typed validators (regex, IBAN, BIC, GTIN, LOINC, ICD-10, ATC, CPT, NPI, GLN, and more). Healthcare templates additionally carry a fhir_resource mapping.
Every template declares a risk level (low / medium / high). Any medium/high template surfaces requires_hitl: true on the mappings response so you can gate your own review before commit. List them via GET /v1/templates, read one schema with GET /v1/templates/:id, or browse the catalogue. For the FHIR emit path, see FHIR mapping.
Compliance
Every commit and confirmation is hashed and written to an append-only audit trail with the mapping fingerprint and accepted/skipped counts, so you can reconstruct exactly which rows landed from which file and when. The dashboard exposes your compliance posture and a print-for-auditor view over that trail.
Schema-only mode minimises exposure because raw records never leave your environment; full-data mode is covered by a BAA and in-region PHI routing (see PHI mode). Data-flow, sub-processors, and security controls are documented at /legal/security.
Ready when you are
Top up a prepaid token wallet ($10 minimum, shared across our suite) and map your first file. Every map is a small flat fee; AI only bills when a column reaches it.