CSV Locale Normalizer — Safe IDs, Decimals and Dates
Pricing
from $20.00 / 1,000 completed csv normalization reports
CSV Locale Normalizer — Safe IDs, Decimals and Dates
Convert CSV to JSON with collision-safe headers, explicit decimal/date rules and a transformation audit. Preserve IDs and leading zeros by default. Supports supplied Unicode text or UTF-8/cp1252 bytes. No external URL fetching or inferred types.
Pricing
from $20.00 / 1,000 completed csv normalization reports
Rating
0.0
(0)
Developer
Miguel Stuardo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
CSV Locale Normalizer — Exact Decimals & Header Audit
Convert CSV into JSON with explicit locale rules and an inspectable transformation audit. Designed for agent workflows and automation builders preparing exported records. Identifiers, leading zeros, whitespace and unselected cells remain strings by default. No type inference, AI model, network fetching, bank access or currency conversion.
Example input
{"csvText": "ID;Monto;Fecha;Nota\n0001;1.234,500;31/12/2024;sin cambios","delimiter": ";","encoding": "utf-8","decimalColumns": {"monto": {"decimalSeparator": ",", "groupSeparator": "."}},"dateColumns": {"fecha": "%d/%m/%Y"}}
The resulting record has id: "0001", monto: "1234.500", and fecha: "2024-12-31". Exact decimal outputs are strings to avoid JSON floating-point loss. One dataset item contains all records and the audit.
Input rules
Supply exactly one of csvText (already decoded Unicode) or csvBase64 (encoded file bytes); remove the example csvText field when using base64. Required delimiter: comma, semicolon, tab, or pipe. Encoding is utf-8 (default), utf-8-sig, or cp1252; cp1252 requires base64 bytes. Decoding is strict.
trimValues and emptyToNull default to false. Enable only when intended. decimalColumns maps normalized column names to decimalSeparator (dot/comma) and optional groupSeparator (empty/dot/comma/space, different from decimal). Grouping is strictly checked; exponent syntax and nonfinite values are rejected. dateColumns maps normalized names to %Y-%m-%d, %d/%m/%Y, %m/%d/%Y, or %Y%m%d; input must exactly match format and a valid calendar date. Output is ISO date. Conversion applies to each non-null cell in the selected column. Unknown columns, conflicting conversions or invalid values reject the entire report.
Headers are stripped and lowercased; non-word runs become underscores. Empty headers receive positional names. Collisions get unique suffixes. Audit maps every original header position to its normalized name. For complex headers, first run with empty conversion objects, inspect the mapping, then select rules. The audit includes row count, skipped blank rows, trimmed/null cell counts and per-column conversion counts. Duplicate records are retained. Formula-looking strings remain inert JSON text; exercise care if later exporting to spreadsheets.
Limits
Source <=1,000,000 bytes; serialized JSON request <=2,100,000 UTF-8 bytes; <=10,000 records, <=200 columns; output <=8,000,000 bytes. Python CSV field-length restrictions can reject very large individual cells. Blank physical rows are skipped and counted. Row-width mismatches and malformed quoted CSV are rejected. No XLSX, PDF, file URL intake, timestamps, timezone handling, deduplication, fuzzy matching, currency verification, or ERP writes. A successful conversion does not certify accounting correctness.
Pricing and delivery
One completed report is one normalization-report event, independent of row count. Check the Pricing tab for the configured price and any automatic Actor start event. Invalid input is validated before requesting our custom report event; platform start/usage charges may still apply. No separate custom per-row charge is requested.
Output persistence and charging are not atomic. On restart, an existing report is retained without requesting an additional custom event. A crash between storage and charging can leave an unbilled report; inspect billing before retrying a failed delivery.
Privacy
This hosted version receives input via Apify and stores a report in the run dataset. Apify also stores run inputs and platform metadata according to its settings and policies. Do not assume zero retention. Send only data you are authorized to process and manage access/retention through platform settings. Application code does not fetch external URLs, execute CSV formulas, call a language model, or log CSV contents.
Automation
Invoke via the Apify API or compatible Apify MCP client with the input above. Availability, pricing and access are controlled through the published Actor. This tool is useful for explicit locale transformation and audit; generic CSV converters are also available and no uniqueness claim is made.