Will this CSV survive a typed round trip and a spreadsheet: leading zeros, big ids, dates, formulas, empty vs null

$0.005 USDC per call · Developer and security · POST /api/v1/csv-roundtrip · Id csv-roundtrip

Parses CSV text (RFC 4180, caller dialect) against a column type map and reports, per cell with row, column, physical line and byte offset, everything that would change on a parse-serialize-parse round trip or when opened in Excel or Sheets: leading zeros stripped, integers beyond 2^53 or 15 significant digits, scientific-notation and date coercion ("1E5", "1-2", "MARCH1"), formula injection (= + - @, tab, CR, LF, full-width forms), cells over 32,767 characters, embedded newlines and CRLF, and quoted-empty vs unquoted-empty vs NULL-token ambiguity. For agents that export or ingest CSV and must not corrupt identifiers or numbers. It reports hazards for the stated types; it does not convert or escape the data, and it does not execute formulas.

What you get

Silent CSV corruption (ZIP codes, 16-digit IDs, gene names) is found before the file ships. 200 KB per $0.005 call.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/csv-roundtrip. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/csv-roundtrip \
  -H 'content-type: application/json' \
  -d '{"text":"zip,account,qty,code,note\n02134,1234567890123456,5,1E5,ok\n10001,42,0,A-1,=cmd|'\'' /C calc'\''!A0\n","types":{"zip":"identifier","account":"identifier","qty":"integer"}}'

Input

FieldTypeRequiredDescription
textstring; length 0..200000yesCSV text, up to 200000 characters.
dialectobjectno
typesanynoObject mapping column name to one of string, identifier, integer, decimal, boolean, date, datetime (max 200). Unlisted columns are "string". Use "identifier" for digit strings that must keep leading zeros.
nullTokenstring; length 0..20noText that means null (e.g. "NULL", "\\N"). Default: none, so only an unquoted empty field is null.
spreadsheetbooleannoCheck Excel/Sheets coercion hazards (default true).

Example request body

{
  "text": "zip,account,qty,code,note\n02134,1234567890123456,5,1E5,ok\n10001,42,0,A-1,=cmd|' /C calc'!A0\n",
  "types": {
    "zip": "identifier",
    "account": "identifier",
    "qty": "integer"
  }
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
statusstring; one of "pass", "fail", "unknown", "unsupported"nopass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass.
dialectobjectno
rowsintegernoData rows (header excluded).
columnsarray<object>no
roundTripobjectno
findingsarray<object>no
errorCountintegerno
warningCountintegerno
witnessesarray<object>no
versionsobjectnoEvery semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile).
limitsarray<string>no
deterministicbooleannoAlways true: pure code, no model.

Pay and connect

Available through: x402 (USDC on Base), MCP. MCP clients reach it through the data-contract-kit package.

Machine-readable