{"id":"csv-group-count","version":"1.0.0","description":"Count CSV rows by exact named-column tuples in first-seen order.","supported_operations":["csv group count","count csv rows by columns","csv group by"],"unsupported_operations":["sum other columns","sort groups","case fold","numeric bins"],"semantics":["The first CSV record is the header row.","Duplicate and empty header names are rejected.","group_columns is a non-empty unique list of exact header names.","A group key is the JSON array of exact cell strings for those columns.","No trimming, case folding, type coercion, or other normalization is performed.","Groups appear in first-seen order.","Output CSV headers are the group_columns followed by count.","count is a base-10 integer string of the matching data-row count.","A group column named count is rejected as a header collision.","An empty document is invalid when group_columns is supplied.","A header-only document yields the group headers plus count and zero data rows."],"limits":{"max_input_bytes":256000,"max_data_rows":5000,"max_columns":256,"max_header_name_bytes":256,"max_group_columns":32},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["csv","group_columns"],"properties":{"csv":{"type":"string","maxLength":256000},"group_columns":{"type":"array","minItems":1,"maxItems":32,"uniqueItems":true,"items":{"type":"string","minLength":1}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["csv","rows_in","groups_out"],"properties":{"csv":{"type":"string"},"rows_in":{"type":"integer"},"groups_out":{"type":"integer"}}},"examples":[{"input":{"csv":"k,v\na,1\na,2\nb,1\n","group_columns":["k"]},"output":{"csv":"k,count\na,2\nb,1\n","rows_in":3,"groups_out":2}}],"execute_url":"/v1/tools/csv-group-count/versions/1.0.0/execute"}