{"id":"csv-rename-columns","version":"1.0.0","description":"Rename CSV headers by an exact from/to mapping, preserving row cells and column order.","supported_operations":["csv rename columns","rename csv columns","rename csv headers"],"unsupported_operations":["fuzzy header matching","case-insensitive rename","infer new names","drop columns","reorder columns","read files","fetch urls"],"semantics":["mapping is a list of 1 to 256 { from, to } pairs; from and to are non-empty strings of at most 256 bytes.","from values must be unique and each must equal a current header exactly; to values must be unique.","A from equal to to is a no-op for that column. Column order and cell strings are unchanged.","After rename, headers must remain unique; a to value must not collide with an unrenamed header.","An empty document without a header is rejected; a header-only document is renamed and keeps zero data rows.","The first output header name may not begin with U+FEFF because it is ambiguous with a CSV byte-order mark."],"limits":{"max_input_bytes":256000,"max_data_rows":5000,"max_columns":256,"max_header_name_bytes":256,"max_mapping_entries":256,"max_output_bytes":256000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["csv","mapping"],"properties":{"csv":{"type":"string","maxLength":256000},"mapping":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"type":"string","minLength":1,"maxLength":256},"to":{"type":"string","minLength":1,"maxLength":256}}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["csv"],"properties":{"csv":{"type":"string"}}},"examples":[{"input":{"csv":"id,name,note\n1,Ada,\"hello, world\"\n","mapping":[{"from":"name","to":"full_name"},{"from":"id","to":"user_id"}]},"output":{"csv":"user_id,full_name,note\n1,Ada,\"hello, world\"\n"}}],"execute_url":"/v1/tools/csv-rename-columns/versions/1.0.0/execute"}