Core pack

3 templates, one canonical shape each.

Universal templates that work across verticals: users, transactions, addresses.

pack · core
GET /v1/templates

{
  "packs": [
    {
      "id": "core",
      "name": "Core",
      "template_count": 3
    }
  ],
  "templates": [
    { "id": "users_v1", "risk": "low", "field_count": 7, "pack": "core" },
    { "id": "transactions_v1", "risk": "low", "field_count": 7, "pack": "core" },
    { "id": "addresses_v1", "risk": "low", "field_count": 9, "pack": "core" }
  ]
}
→ 3 templates · 0 flagged for review

The templates

Every template in this pack, printed as it ships.

Canonical column names, field counts, validator ids and risk level — read straight from the shipped template definition. Paste the header row from your own export and the deterministic layers will show you, column by column, which of these 3 it lands on.

  • 3 templates
  • 1 validators in this pack
  • 57 header hints across 5 languages
  • 23 canonical fields

Side by side

The whole pack as counted facts.

Same information the cards carry, in one scannable block — for the moment you are choosing between two templates that both look plausible. Every number is derived from the shipped definition at build time.

TemplateFieldsRequiredValidatedHintsRiskFHIR
Usersusers_v172120low
Transactionstransactions_v173019low
Addressesaddresses_v193018low

23 canonical columns and 57 distinct header hints across the pack. "Validated" counts columns carrying at least one field-level validator; "hints" counts the distinct multilingual header names the deterministic layers resolve for free.

Validators

The checks that fire before you commit.

1 validator run on this pack. They are pure functions — the same code runs in the Worker, in the browser widget and in the MCP validate_row tool, so a dry run and a commit cannot disagree.

ValidatorWhat it checksTemplates in this pack
emailRFC-style address shape.users_v1

Empty values bypass a validator — required-ness is checked separately. LOINC / ICD-10 / ATC additionally try to resolve a free-text value to a canonical code before failing.

Review gating

Nothing in this pack needs a review gate.

A template's risk level is the only input to the flag. Medium and high templates make PATCH /uploads/:id/mappings return requires_hitl so your own workflow can hold the commit — it is a flag, not a queue. Native AgentGate HITL integration is on the roadmap for Q3 2026 and is not wired in v1.

low3

Commits straight through. No review flag on the mappings response.

users_v1 · transactions_v1 · addresses_v1

medium0

Flagged `requires_hitl: true` with `hitl_status: "pending_review"` so you can gate your own commit workflow.

high0

Flagged `requires_hitl: true` with `hitl_status: "pending_review"`. Regulated identifiers — card data, IBANs, payroll, KYC.

Try it

One call maps a file onto any of them.

Name the template and POST the file. The cascade resolves what it can on the deterministic layers — statistics, heuristic, fuzzy — and only the leftovers reach the metered LLM.

bash
curl -X POST https://api.adaptivmapr.com/v1/uploads \
  -H "Authorization: Bearer $ADAPTIVMAPR_API_KEY" \
  -F "template=users_v1" \
  -F "file=@your_export.csv"
→ upload created · mappings ready · confirm before commit

Schema-only mode sends column headers plus at most three sample rows, each clamped to 80 characters — a data-minimization mode enforced at the HTTP edge. Full-data mode routes the metered layer-5 call in-region under a BAA and costs 20% more, and stays locked until the workspace accepts the BAA/NDA in Settings → Security & Data.

Read the quickstart

Ready when you are

Put the core pack to work — without shipping raw records.

Schema-only mode leaves only headers and up to three clamped sample rows. Full-data adds row-level AI, routed in-region under a BAA.

No free tier · $10 prepaid wallet to start · every map draws a small flat fee