{"id":"csv-schema-check","version":"1.0.0","description":"Validate a CSV document against an ordered column list and per-column string constraints.","supported_operations":["csv schema check","validate csv columns","check csv column constraints"],"unsupported_operations":["infer types","coerce values","locale number formats","regex cell patterns","json schema","read files","fetch urls"],"semantics":["The first CSV record is the header row; parse failures throw.","columns.name list must equal the CSV headers in order; a mismatch reports one header_mismatch at row 0 and does not check data rows.","any accepts every cell including empty; nonempty requires cell length greater than 0.","integer accepts canonical integer strings including -0, with at most 1000 digits excluding sign; empty fails.","decimal is a string grammar check: optional ASCII minus, digits, optional single dot with a digit on at least one side, no exponent, at most 1000 characters; empty fails.","No trimming, case folding, type coercion, or locale-dependent number parsing is performed.","Up to 100 violations are collected then checking stops; truncated is true when more violations exist."],"limits":{"max_input_bytes":256000,"max_data_rows":5000,"max_columns":256,"max_header_name_bytes":256,"max_violations":100,"max_integer_digits":1000,"max_decimal_characters":1000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["csv","columns"],"properties":{"csv":{"type":"string","maxLength":256000},"columns":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["name","constraint"],"properties":{"name":{"type":"string","minLength":1},"constraint":{"type":"string","enum":["any","nonempty","integer","decimal"]}}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","rows_checked","violations","truncated"],"properties":{"valid":{"type":"boolean"},"rows_checked":{"type":"integer"},"truncated":{"type":"boolean"},"violations":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["row","column","reason"],"properties":{"row":{"type":"integer"},"column":{"type":"string"},"reason":{"type":"string","enum":["empty","not_integer","not_decimal","header_mismatch"]}}}}}},"examples":[{"input":{"csv":"id,name,amount,note\n1,Ada,1.5,\n-0,Lin,5.,ok\n","columns":[{"name":"id","constraint":"integer"},{"name":"name","constraint":"nonempty"},{"name":"amount","constraint":"decimal"},{"name":"note","constraint":"any"}]},"output":{"valid":true,"rows_checked":2,"violations":[],"truncated":false}}],"execute_url":"/v1/tools/csv-schema-check/versions/1.0.0/execute"}