CSV Schema Gate — Locale-Aware Import Preflight avatar

CSV Schema Gate — Locale-Aware Import Preflight

Pricing

from $20.00 / 1,000 completed csv validation reports

Go to Apify Store
CSV Schema Gate — Locale-Aware Import Preflight

CSV Schema Gate — Locale-Aware Import Preflight

Validate CSV required cells, uniqueness, declared decimal separators and explicit dates. Preserve leading-zero IDs and get row/column diagnostics before importing data into automation workflows. No inferred types or external URLs.

Pricing

from $20.00 / 1,000 completed csv validation reports

Rating

0.0

(0)

Developer

Miguel Stuardo

Miguel Stuardo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

CSV Schema Gate

Validate a UTF-8 CSV export against explicit column rules before an import. Detect missing required cells, duplicates, malformed locale-specific decimals and invalid calendar dates. Leading-zero IDs remain strings. No type inference or source-system connection.

Output

One JSON report in the default dataset: status (valid or invalid), recordCount, errorCount, columns, and errors with 1-based data record number, exact column header and code (required, not_unique, invalid_decimal, invalid_date). A completed report with invalid cells is normal useful output, not an Actor failure. Invalid request structure or CSV parsing fails the run without a custom report event.

Optional includePreview adds original records, canonical records and proposed changes. Cells failing conversion retain their original values: do not import a preview while status is invalid.

Example

{
"csv": "id;amount;date\n001;1.234,50;2026-10-26\n002;1234,500;2026-02-30",
"delimiter": ";",
"schema": {
"id": {"type": "text", "required": true, "unique": true},
"amount": {"type": "decimal", "decimal_separator": ",", "group_separator": ".", "unique": true},
"date": {"type": "date", "format": "%Y-%m-%d"}
},
"includePreview": false
}

This example identifies record 2's duplicate numeric amount and February 30. 001 remains 001. Decimal uniqueness compares numeric values, so 1,00 and 1,000 are equal when comma is the declared decimal separator.

Rules and parsing

Supply CSV text, not a URL. Declare comma, semicolon, tab or pipe delimiter. Schema keys must match exact column headers: headers must be nonempty, unique and have no surrounding whitespace. Headers are never silently renamed. UTF-8 BOM is accepted.

Rules support type (text, decimal, date; default text), required and unique booleans. Decimal rules accept decimal_separator (. or ,) and group_separator (empty, ., , or space); they must differ. Grouped numbers require groups of three. No currency symbols, exponents, NaN, whitespace or parenthesized negatives.

Dates require explicit format: %Y-%m-%d, %d/%m/%Y or %m/%d/%Y, with exact widths and calendar validity. No timestamps or timezone inference. Empty cells become null; optional empty cells skip type and uniqueness checks. Other strings, including whitespace, remain unchanged. Completely blank physical lines are skipped. Record indexes count parsed data records, not physical lines.

Pricing unit

One completed report requests one validation-report event, regardless of row count or validation status. Check the Pricing tab for the current price and any automatic Actor start event. No separate custom per-row charge. Malformed requests do not trigger the custom report event; start/platform charges can still apply.

Limits

  • At most 1,000,000 serialized input bytes, 10,000 data records and 200 columns.
  • Maximum serialized output 8,000,000 bytes; disable preview or split the input if larger.
  • No URLs, Excel/PDF/image parsing, conditional rules, regex rules, fuzzy matching, cross-file reconciliation, sum checks, ERP writes or accounting certification.
  • Formula-like text is returned as data, never executed. Downstream spreadsheet exports need their own formula-injection protection.

Privacy

The hosted Actor receives input through Apify and stores the report in the default dataset. Apify retains inputs, run metadata and storage under its settings/policies. Do not assume zero retention. Only submit data you are authorized to process. The application does not call an LLM, fetch external URLs or log cell contents. Configure platform access and retention for your needs.

Automation

Call through the Apify API or a compatible Apify MCP client using the same JSON input. A successful run returns one report, including when the CSV fails declared cell rules. Inspect status before a downstream import. This is a deterministic validation aid, not proof that the underlying records are factually correct.