{"id":"json-array-anti-join","version":"1.0.0","description":"Anti join two JSON arrays of objects on exact keys.","supported_operations":["json array anti join","anti join json arrays","subtract json arrays by keys"],"unsupported_operations":["fuzzy keys","numeric keys within arrays"],"semantics":["Matches objects from the left and right arrays based on strict equality of the specified keys.","Returns a new array containing only the left rows that have NO match in the right array.","Output array is ordered by the left array's order.","If a left row is missing any of the join keys, it is treated as having no match, so it is ALWAYS included in the output.","If a right row is missing any of the join keys, it never matches any left row."],"limits":{"max_array_items":10000,"max_output_items":10000,"max_keys":32},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["left","right","keys"],"properties":{"left":{"type":"array","maxItems":10000,"items":{"type":"object"}},"right":{"type":"array","maxItems":10000,"items":{"type":"object"}},"keys":{"type":"array","minItems":1,"maxItems":32,"uniqueItems":true,"items":{"type":"string","minLength":1}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["result","count"],"properties":{"result":{"type":"array","items":{"type":"object"}},"count":{"type":"integer"}}},"examples":[{"input":{"left":[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}],"right":[{"id":1,"role":"Admin"}],"keys":["id"]},"output":{"result":[{"id":2,"name":"Bob"}],"count":1}}],"execute_url":"/v1/tools/json-array-anti-join/versions/1.0.0/execute"}