{"id":"csv-slice-rows","version":"1.0.0","description":"Take a contiguous window of CSV data rows by offset and limit, keeping the header.","supported_operations":["csv slice rows","slice csv rows","csv row window"],"unsupported_operations":["negative indexes","wrap-around slicing","sample random rows","filter by key","read files","fetch urls"],"semantics":["offset and limit are JSON integers with Number.isInteger; each is between 0 and 5000 inclusive.","Data rows are sliced as the half-open interval [offset, offset + limit) without wrapping or negative-from-end indexes.","If offset is past the last data row, the header is kept and zero data rows are returned.","An empty document without a header is rejected; a header-only document returns the header and rows_out 0 for any valid offset and limit.","Cell strings are preserved without trimming, case folding, or type coercion.","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_offset":5000,"max_limit":5000,"max_output_bytes":256000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["csv","offset","limit"],"properties":{"csv":{"type":"string","maxLength":256000},"offset":{"type":"integer","minimum":0,"maximum":5000},"limit":{"type":"integer","minimum":0,"maximum":5000}}},"output_schema":{"type":"object","additionalProperties":false,"required":["csv","rows_in","rows_out"],"properties":{"csv":{"type":"string"},"rows_in":{"type":"integer","minimum":0},"rows_out":{"type":"integer","minimum":0}}},"examples":[{"input":{"csv":"id,name\n1,Ada\n2,Lin\n3,Zoe\n","offset":1,"limit":1},"output":{"csv":"id,name\n2,Lin\n","rows_in":3,"rows_out":1}}],"execute_url":"/v1/tools/csv-slice-rows/versions/1.0.0/execute"}