{"id":"csv-concat","version":"1.0.0","description":"Concatenate CSV documents that share identical headers, preserving document and row order.","supported_operations":["csv concat","concatenate csv documents","append csv rows with matching headers","stack csv documents"],"unsupported_operations":["union mismatched schemas","reorder columns to match","fuzzy header matching","case-insensitive headers","read files","fetch urls"],"semantics":["documents is an array of 2 to 20 CSV strings; each string is bounded by the CSV byte limit.","The first document supplies the output headers; every later document must have the same header names in the same order.","An empty document without a header row is rejected; a header-only document contributes zero data rows.","Output data rows follow document order, then row order within each document. Cells are not trimmed, case-folded, or type-coerced.","The combined data-row count must not exceed the CSV row limit.","The first output header name may not begin with U+FEFF because it is ambiguous with a CSV byte-order mark."],"limits":{"min_documents":2,"max_documents":20,"max_input_bytes":256000,"max_data_rows":5000,"max_columns":256,"max_header_name_bytes":256,"max_output_bytes":256000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["documents"],"properties":{"documents":{"type":"array","minItems":2,"maxItems":20,"items":{"type":"string","maxLength":256000}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["csv","documents_in","rows_out"],"properties":{"csv":{"type":"string"},"documents_in":{"type":"integer"},"rows_out":{"type":"integer"}}},"examples":[{"input":{"documents":["id,name,note\n1,Ada,\"hello, world\"\n","id,name,note\n2,Lin,later\n"]},"output":{"csv":"id,name,note\n1,Ada,\"hello, world\"\n2,Lin,later\n","documents_in":2,"rows_out":2}}],"execute_url":"/v1/tools/csv-concat/versions/1.0.0/execute"}