Validate every element of a JSON array
Checking the first element is not enough when an error may be hidden at the end of a response. A loop lets the same rules inspect each relevant item.
The downloadable example contains 1000 items. The broken input puts a defect at the end so you can verify that the test reaches it.

Select the whole array
Use the ForEach array step with the path to the array itself, such as $.items. With no element filter, all elements are selected. When you add a filter, remember that excluded items are no longer being checked by that loop.
Check fields inside each selected item
Place the item checks below the loop. Set paths relative to the item context and add required-field, value and whitelist checks as needed. Inspect the reported item and field to confirm that the rules are checking the intended object.
Check that there are items to inspect
An empty array has no elements for a loop to validate. Add a separate array-size check when the response must contain records. Keep a failing item near the end of a large example to catch accidental first-item-only checks.
Repeat the check with ready-made files
Download the Checkcraft test case and two inputs. One input is valid, and the other contains a deliberate error. These synthetic examples are available without registration.
Run the example in Checkcraft
Create a collection, a check and a test case using the workspace tree context menu. Click Import in the test case editor and choose the downloaded test case. Open the added case, copy the valid JSON, click Paste data for analysis, then Run test case. Open Result to inspect the report.
Repeat with the broken JSON without changing the rules. The first run should pass and the second should fail. If you see a different outcome, check the selected data source, imported steps and report.
The example files were executed against the application source on 14 September 2026. Reference reports recorded in Russian are available for the passing run and failing run. Sample names and literal data values do not change when you switch the interface language.
See the result on a small example first
Start with the sample, inspect the failure and then try a sanitized example from your own API. Free (beta) is available for Windows and Linux with no time limit.
Get Free (beta)Download and first runAn account and verified email are required to obtain the build. See the edition limits.