Does this value survive conversion to another numeric or spreadsheet type? Range, precision, leading zeros, E notation

$0.005 USDC per call · Developer and security · POST /api/v1/lossy-conversion · Id lossy-conversion

Takes raw JSON literals (as written, so 9007199254740993, 1e400, -0, "007" and 0.10 are judged on their digits, not on a parsed double) and target types (binary64, binary32, int8..int64, uint8..uint64, PostgreSQL numeric(p,s), Arrow decimal128/decimal256, Parquet decimal, Excel cell, pandas int64) and reports for each pair whether the value is exact, lossy (rounded, truncated, leading zeros or sign of zero lost, 15-digit Excel limit, date or formula coercion) or overflows, with the rule and the converted value. Also diagnoses identifier mangling: give before/after strings and it names what happened (leading zeros stripped, scientific notation, 15-digit rounding, date coercion, trimming, NFC/NFKC change, truncation). For agents moving data between JSON, databases, dataframes and spreadsheets. It does not parse files and does not convert; the converted value shown is what the target would hold.

What you get

Silent precision loss is only noticed after the data is used. 200 samples against 12 targets per $0.005 call.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/lossy-conversion. 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/lossy-conversion \
  -H 'content-type: application/json' \
  -d '{"samples":["9007199254740993","\"007\"","0.1","1e400"],"targets":["float64","int64","numeric(5,2)","excel-number"],"pairs":[{"before":"00123456789012345678","after":"1.23457E+17"}]}'

Input

FieldTypeRequiredDescription
samplesarray<string; length 0..400>; max 200 itemsnoRaw JSON scalar literals exactly as written, e.g. 9007199254740993, "007", 1e400, 0.10, null.
targetsarray<string; length 0..40>; max 12 itemsnoTarget types: float64, float32, int8, int16, int32, int64, uint8, uint16, uint32, uint64, numeric(p,s), decimal128(p,s), decimal256(p,s), parquet-decimal(p,s), excel-number, pandas-int64.
pairsarray<object>; max 200 itemsnoIdentifier or text values before and after a round trip through another system.

Example request body

{
  "samples": [
    "9007199254740993",
    "\"007\"",
    "0.1",
    "1e400"
  ],
  "targets": [
    "float64",
    "int64",
    "numeric(5,2)",
    "excel-number"
  ],
  "pairs": [
    {
      "before": "00123456789012345678",
      "after": "1.23457E+17"
    }
  ]
}

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.
conversionsarray<object>no
manglingarray<object>no
summaryobjectno
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