{"slug":"x402-agent-tools-nerolabs-workers-dev-data-filter-9d9836","title":"Filters, transforms, sorts and dedupes up to 500 JSON rows in one call","host":"x402-agent-tools.nerolabs.workers.dev","method":"POST","resource":"https://x402-agent-tools.nerolabs.workers.dev/data/filter","category":"code","description":"Filters, transforms, sorts and dedupes up to 500 JSON rows in one call: conditions (equals, contains, greater than, regex, empty), field renames, trims, case changes, number and date parsing, computed fields, sort, distinct by field, offset and limit. Returns the kept rows plus counts of rows droppe","price_listed":0.003,"price_asked":0.003,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":38,"reported_calls_30d":0,"reported_payers_30d":0,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"filters":[{"field":"city","operator":"equals","value":"Bristol"}],"rows":[{"city":"Bristol","name":"Acme Ltd","revenue":"120000"},{"city":"Leeds","name":"Bolt Co","revenue":"45000"},{"city":"Bristol","name":"Crane plc","revenue":"980000"}],"sortBy":[{"direction":"asc","field":"name"}]},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"properties":{"caseSensitiveFilters":{"description":"Text comparisons are case-insensitive by default. Set true to make them exact.","type":"boolean"},"distinctBy":{"description":"Keep only the first row for each combination of these fields. Applied after sorting, so sorting first lets you keep the newest row per key.","items":{"type":"string"},"type":"array"},"filterCombineMode":{"description":"Whether a row must match every filter (AND, the default) or any one of them (OR).","enum":["AND","OR"],"type":"string"},"filters":{"description":"Conditions a row must satisfy to be kept, for example {\"field\":\"country\",\"operator\":\"equals\",\"value\":\"UK\"} or {\"field\":\"price\",\"operator\":\"greaterThan\",\"value\":100}. Dot paths like \"address.city\" work. Call list_capabilities for all 25 operators.","items":{"type":"object"},"type":"array"},"lenientNumbers":{"description":"On by default: values like \"$1,234.50\", \"49 USD\" and \"12%\" are read as numbers. Set false to require real numeric values.","type":"boolean"},"limit":{"description":"Return at most this many rows.","type":"integer"},"offset":{"description":"Skip this many rows after filtering and sorting.","type":"integer"},"rows":{"description":"The rows to process. Each row is a JSON object. Keys may differ between rows.","items":{"type":"object"},"type":"array"},"sortBy":{"description":"Sort the kept rows, for example [{\"field\":\"price\",\"direction\":\"desc\"}].","items":{"type":"object"},"type":"array"},"transforms":{"description":"Transform steps applied to every row, in order. Each step is an object with an \"op\" key, for example {\"op\":\"cast\",\"field\":\"price\",\"to\":\"number\"} or {\"op\":\"compute\",\"field\":\"total\",\"expression\":\"price * qty\"} or {\"op\":\"rename\",\"from\":\"e_mail\",\"to\":\"email\"}. Call list_capabilities for all 26 operations.","items":{"type":"object"},"type":"array"}},"required":["rows"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-21","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.003,"price_match":true,"latency_ms":38,"error":null}],"description_full":"Filters, transforms, sorts and dedupes up to 500 JSON rows in one call: conditions (equals, contains, greater than, regex, empty), field renames, trims, case changes, number and date parsing, computed fields, sort, distinct by field, offset and limit. Returns the kept rows plus counts of rows dropped and why. $0.001 per row sent, $0.002 minimum. Same engine as the Apify actor nerolabs/dataset-filter-transform.","last_updated":"2026-10-21T14:15:14.809Z","schemes":["exact"]}