DataMapper

Your data, mapped automatically.

DataMapper takes any file, maps columns to your target schema, transforms values, validates the output and delivers clean data to your application or back to the user.

1. Define your schema

Set up your target columns, types and rules

2. Upload any file

CSV, Excel, JSON, XML, Parquet and more. Up to 1M rows.

3. Get clean data

Mapped, transformed, validated and delivered

Built for real-world data problems

Every company deals with incoming data from external systems. DataMapper eliminates the need to build custom parsers for each source format.

Partner & supplier integration

Your partners export data from SAP, Oracle or custom ERPs, each in a different format with different column names. DataMapper brings everything into your schema without writing format-specific code.

Logistics & shipping

Carriers and freight forwarders send tracking data, manifests and invoices in their own formats. Map them all to your unified logistics schema automatically.

Product catalog onboarding

Onboard product data from hundreds of suppliers, each with their own spreadsheet layout, naming conventions and units. Let DataMapper normalize everything.

System migration

Switching CRM or ERP systems? Export data from the old system as CSV or Excel, map it to the new schema, validate every row and get clean files ready for import.

Healthcare & lab data

Different lab systems, clinics and devices export results in different formats. Map patient and test data into your standardized schema with strict validation.

Customer onboarding

New customers bring their data in whatever format they have. Give them a guided upload experience that maps their data to your schema. No support tickets required.

See it in action

DataMapper works as a converter for file downloads or as an importer delivering data to your application.

Interactive demo coming soon. Here's a preview of the embeddable component.

DataMapper

Drop your file here

CSV, Excel, JSON and more

products.xlsx 1,200 rows
Source Column Target Field Confidence
artikelnr article_number 97%
bezeichnung description 95%
preis_eur price 93%
lagerbestand stock 88%
warengruppe category 91%
1,200 rows 5 columns mapped 0 errors
article_numberdescriptionpricestockcategory
ART-10042 Hydraulic Cylinder 50mm 249.90 34 Hydraulics
ART-10043 Sealing Ring Set DN80 18.50 420 Seals
ART-10044 Pressure Gauge 0-16bar 67.00 89 Measurement
ART-10045 Steel Flange DN100 124.30 12 Flanges
... 1,196 more rows

Conversion Summary

Source file
products.xlsx
Rows
1,200
Columns mapped
5 / 5
Validation errors
0
Output format
CSV

Download Ready

1,200 rows converted, validated and ready for download

products_converted.csv

1,200

Rows

0

Errors

2.4s

Duration

Everything you need for data mapping

From file upload to clean, validated, schema-conformant data. Fully automated.

Auto Column Mapping

Intelligent matching maps source columns to your target schema with high confidence, no manual work required.

10+ File Formats

CSV, Excel, JSON, YAML, XML, Parquet and more. Read and write the formats your users actually use.

Data Validation

25+ built-in validation rules plus custom JavaScript functions for column-level and row-level checks.

Learn more

Value Transformation

12+ built-in transformations plus custom JavaScript functions to shape values exactly how you need them.

Learn more

Flexible Destinations

Deliver mapped data to webhooks, remote applications or let users download the result as a converted file.

Smart Type Detection

Automatically detects column types like emails, dates, phone numbers and currencies so your data lands in the right format.

Embeddable Widget

Drop a web component into your app and give your users a guided mapping wizard. Works with any frontend framework.

File Converter

Upload in one format, download in another. Schema mapping and validation are applied in between.

25+ built-in validation rules

Catch bad data before it reaches your system. Every rule is configurable and composable.

Required

Field must not be empty

Pattern

Match a regular expression

Length

Min/max string or array length

Range

Numeric min/max bounds

Enum

Value must be in allowed list

Ascii

Restrict to ASCII character sets

Boolean

Validate boolean representations

Email

Valid email format

Phone

Phone number with region support

URL

Valid URL format

IP Address

IPv4, IPv6, or both

MAC Address

Network hardware address

UUID

Standard UUID format

Money

Monetary amount with currency

IBAN

International bank account number

BIC

Bank identifier code

Currency Code

ISO 4217 currency codes

Credit Card

Card number with Luhn check

Date

Date with configurable format

Time

12h or 24h time format

Age

Age within acceptable range

GTIN

Global Trade Item Number

EAN

European Article Number

ISBN

Book identifier (10 or 13)

GLN

Global Location Number

VIN

Vehicle Identification Number

Vehicle Plate

License plate with country formats

Powerful value transformations

Shape every value to match your target schema. Chain multiple transformations per column.

Trim

Remove leading and trailing whitespace

Lowercase

Convert text to lowercase

Uppercase

Convert text to UPPERCASE

Replace

Find and replace substrings

Extract

Extract values using regex patterns

Split

Split text by delimiter and pick an element

Cast

Convert between types: String, Integer, Float, Boolean, Date, and more

Date Format

Convert dates between any format

Default

Fill in a default value when the input is empty

Money Parse

Parse monetary strings into clean numeric values

Money Format

Format numbers as currency with locale-aware symbols

Custom functions for your business logic

Build validation and transformation logic with a visual drag-and-drop editor or write code in TypeScript. All functions run in a secure sandbox with no filesystem or network access.

require-company-for-invoice.ts Column Validator
function validate(value: unknown, ctx: ColumnContext) {
  const method = ctx.row['payment_method']
  if (method === 'invoice' && !value?.trim()) {
    return utils.invalid('required for invoice payments')
  }

  return utils.valid()
}
normalize-address.ts Row Transformer
function transform(row: Record<string, unknown>) {
  const zip = row.postal_code ?? ''
  const city = row.city ?? ''

  return {
    ...row,
    full_address: utils.isEmpty(row.full_address)
      ? `${zip} ${city}`.trim()
      : row.full_address
  }
}
check-required-field Column Validator • Visual
if is empty value return invalid "Value is required" return valid

4 function types

Column Validator

Validate a single field value

Row Validator

Validate across all fields in a row

Column Transformer

Transform a single field value

Row Transformer

Reshape an entire row

Secure sandbox

Isolated runtime with no filesystem or network access
Configurable execution timeout (default 100ms)
Memory limit per execution (default 8 MB)
No external HTTP requests, no imports, no side effects

Two ways to build

Visual Editor

Drag-and-drop blocks to build logic visually. No coding required.

Code Editor

Write TypeScript or JavaScript with full autocomplete and type checking.

Both editors can be tested in-app with console output capture before going live. Visual functions can be ejected to code at any time.

Deliver data where you need it

Once your data is mapped, transformed and validated, DataMapper delivers it to your destination of choice.

Webhook

Deliver mapped data to any HTTP endpoint in real time. Supports custom headers, authentication and retry on failure.

S3-compatible Storage

Upload results directly to any S3-compatible storage like AWS S3, MinIO, Cloudflare R2 or your own object storage.

File Download

Let users download the mapped and validated data as CSV, JSON, Excel or any other supported format.

Database

Write mapped data directly to MySQL or PostgreSQL. Additional database engines available on request.

API Integration

Push data to your application or any third-party API. Easy integration with OpenAPI and JSON API specifications.

SFTP / FTP(S)

Deliver files to remote servers via SFTP or FTP(S) for seamless integration with legacy systems and partners.

Need a destination we don't support yet? On Enterprise plans, we build custom integrations for your specific needs.

Privacy and security, by default

Built for companies that take data protection seriously.

Made in Germany

Designed and developed in Germany with European quality standards.

Hosted in EU

All infrastructure runs in EU data centers. Your data never leaves the continent.

Encryption at Rest

All stored data is encrypted at rest using AES-256 encryption.

No Data Retention

Uploaded files are processed and deleted. We don’t keep your data.

No Tracking

No cookies, no analytics, no third-party scripts. Zero tracking on this website and in the product.

Self-Hosted Available

Run DataMapper on your own infrastructure for full control and compliance.

Get started with DataMapper

Whether you need a hosted solution or want to run it on your own infrastructure.

Hosted

We run everything for you. Set up your schemas, connect your destinations and start mapping data.

BYOC

Bring your own cloud. We manage DataMapper inside your AWS, Linode/Akamai, Hetzner or Azure account.

Self-hosted

Run DataMapper on your own infrastructure. Optimized for Kubernetes and Docker deployments with full control and data residency.

Documentation

API reference, schema configuration and integration guides. Currently available on request.

Simple, transparent pricing

Start with a base plan and scale with usage. Pay only for what you use.

Starter

Coming soon

For small teams getting started with automated data mapping.

  • 10,000 rows / month included
  • Pay-as-you-go for additional rows
  • 3 schemas
  • 3 custom functions
  • 1 destination
  • 1 embedded domain
  • Email support
  • Hosted deployment

Pro

Coming soon

For growing businesses with higher volume and advanced needs.

  • 250,000 rows / month included
  • Pay-as-you-go for additional rows
  • Unlimited schemas
  • Unlimited custom functions
  • Unlimited destinations
  • Unlimited embedded domains
  • Bring your own storage Available on request
  • Priority support
  • Hosted deployment

Enterprise

Coming soon

For organizations that need full control, custom limits, and dedicated support.

  • Custom row volume
  • Custom pricing per row
  • Unlimited schemas
  • Unlimited custom functions
  • Unlimited destinations
  • Unlimited embedded domains
  • Bring your own storage * Available on hosted plans only
  • Dedicated support
  • Hosted, BYOC or self-hosted deployment

All prices are net. VAT may apply.

Interested in early access? Get in touch and we'll keep you in the loop.

Get in touch

Frequently asked questions

What file formats does DataMapper support?

DataMapper reads and writes CSV, TSV, XLSX, JSON, NDJSON, YAML, XML and Parquet. Additionally, it can read XLS (legacy Excel) and ODS (OpenDocument) files. Each file can contain up to 1 million rows.

How does automatic column mapping work?

DataMapper analyzes your source file headers, sample data and data types, then scores each possible mapping against your target schema using multiple matching strategies. The best matches are selected automatically and you can review or adjust them before processing.

Can I use DataMapper as a file converter?

Yes. You can upload a file in one format, map it to your target schema and download the result in a different format. For example, upload an XLSX file and download a clean CSV or JSON.

What happens if a column can't be mapped automatically?

Unmapped columns are flagged for manual review. Users can assign them manually through the mapping interface or choose to skip them entirely.

Do I have to map my data every time?

No. DataMapper automatically recognizes if a file schema has already been mapped and reuses the existing mapping. You only need to map once per source format.

What languages is DataMapper available in?

The administration panel and embeddable component are available in English and German. Additional languages can be implemented on request. The embeddable component also supports custom translations, so you can provide your own localization.