JSON Content Checker & Validator - API Testing Tool
Pricing
$5.00 / 1,000 endpoint validations
JSON Content Checker & Validator - API Testing Tool
Check public JSON API endpoints with structural, JSON Schema, or path-based content rules. Get a dataset row for each readable endpoint with pass or fail status, response time, and actionable findings.
Pricing
$5.00 / 1,000 endpoint validations
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
🧪 Check your JSON API responses
For developers, QA engineers, and API teams, this Actor checks public HTTP or HTTPS endpoints that return JSON. It saves a structured dataset row for each endpoint that yields readable JSON, including pass or fail status, HTTP status, response time, and findings. One shared validation setup lets you check multiple endpoints in one run.
- Use API testing tools to check public JSON endpoints with one shared validation setup.
- Try the prefilled public URL with Sample API for testing before adding your own endpoint.
- Check one or more public URLs with Test API endpoint and review each pass or fail row.
- Compare HTTP status and response times across public services with REST API tools and inspect each finding.
- Check required paths and response values with API response validation before a client depends on them.
📋 JSON validation rows
The dataset output field opens the default Apify dataset. Each saved row describes one endpoint that returned readable JSON and includes its HTTP status, response time, pass or fail status, and validation findings.
▶️ Run endpoint checks
- Add one or more public HTTP or HTTPS URLs that return JSON.
- Choose Structural checks, JSON Schema checks, Path-based content rules, or Combined checks. One choice and its settings apply to every submitted endpoint.
- Add required paths, a JSON Schema, or path-based content rules when the selected checks use them.
- Set an optional response-time threshold in milliseconds. A response above that value gets a response-time finding in every choice.
- Run the Actor and open the dataset link in the output.
If one endpoint cannot be read or validated, the remaining endpoints can still be processed. A validation row is returned for each endpoint that yields readable JSON.
⚙️ Input
Add at least one public HTTP or HTTPS endpoint. The same validation setup is used for every endpoint in the list.
| Field | Type | What it does |
|---|---|---|
endpoints | array of objects | Required. Lists the public JSON endpoints to check. Submit at least one endpoint. |
endpoints[].url | string | Required in each endpoint object. A public HTTP or HTTPS URL that returns a JSON response. |
validationMode | string | Required. Chooses structural, jsonSchema, content, or combined checks. |
validationSettings | object, optional | Sets structural checks and an optional response-time threshold. One settings object applies to the whole endpoint list. |
validationSettings.requiredFieldPaths | array of strings, optional | Adds dot paths that must be present in each response. This check runs in Structural checks and Combined checks. |
validationSettings.checkNullValues | boolean | Flags null values found anywhere in each response during Structural checks and Combined checks. The default is true. |
validationSettings.checkEmptyStrings | boolean | Flags empty string values found anywhere in each response during Structural checks and Combined checks. The default is true. |
validationSettings.checkDuplicateArrayEntries | boolean | Flags duplicate entries within JSON arrays during Structural checks and Combined checks. The default is true. |
validationSettings.responseTimeThresholdMs | integer, optional | Sets the maximum response time in milliseconds. A response above the value gets a finding in every validation mode. The value must be at least 1; the schema does not set an upper bound. |
jsonSchema | object, optional | Supplies a JSON Schema for JSON Schema checks or Combined checks. Other choices ignore this field. |
contentRules | array of objects, optional | Adds path-based value checks for Path-based content rules or Combined checks. Other choices ignore this field. |
contentRules[].path | string | Required in each rule. The dot path to the value in the JSON response. |
contentRules[].operator | string | Required in each rule. Uses equals, notEquals, contains, notContains, greaterThan, or lessThan. |
contentRules[].expectedValue | string | Required in each rule. One JSON value written as text, such as "active" or 200. |
The structural mode checks required paths, null values, empty strings, and duplicate array entries. The jsonSchema mode compares each response with jsonSchema. The content mode applies contentRules. The combined mode runs the structural, JSON Schema, and path-based content checks together.
Input example
This is the smallest successful current-beta structural input:
{"endpoints": [{"url": "https://jsonplaceholder.typicode.com/todos/1"}],"validationMode": "structural","validationSettings": {"checkNullValues": true,"checkEmptyStrings": true,"checkDuplicateArrayEntries": true}}
🧾 Output
Run output
| Field | Type | What it does |
|---|---|---|
dataset | string | Links to the default dataset view with API endpoint validation rows. |
Dataset row
| Field | Type | What it does |
|---|---|---|
endpointUrl | string (URI) | The public URL that returned the JSON response. |
httpStatus | integer | The HTTP status code returned by the endpoint. |
responseTimeMs | number | The time from the request to the response, in milliseconds. |
passed | boolean | Whether the response passed all checks selected for this run. |
findings | array of objects | Errors and warnings found while checking the response. |
findings[].check | string | The check that produced the finding: requiredField, nullValue, emptyString, duplicateArrayEntry, jsonSchema, contentRule, or responseTime. |
findings[].severity | string | Whether the finding is an error or a warning. |
findings[].path | string, optional | The dot path or array path where the finding occurred, when it applies. |
findings[].message | string | A clear explanation of the finding. |
findings[].expected | string, number, boolean, object, array, or null, optional | The value or condition the response was expected to meet, when it applies. |
findings[].observed | string, number, boolean, object, array, or null, optional | The value found at the response path, when it applies. |
Example validation row
This complete row comes from a successful current-beta run. It shows response-time, empty-string, null-value, and duplicate-entry findings:
{"endpointUrl": "https://httpbin.org/anything?value=one&value=one","httpStatus": 200,"responseTimeMs": 722.4323049999998,"passed": false,"findings": [{"check": "emptyString","severity": "warning","path": "$.data","message": "An empty string was found in the JSON response.","expected": "a non-empty string","observed": ""},{"check": "nullValue","severity": "warning","path": "$.json","message": "A null value was found in the JSON response.","expected": "a non-null value","observed": null},{"check": "duplicateArrayEntry","severity": "warning","path": "$.args.value[1]","message": "Array entry duplicates the value at index 0.","expected": "unique array entries","observed": "one"},{"check": "responseTime","severity": "warning","path": "$responseTimeMs","message": "The response exceeded the configured response-time threshold.","expected": 1,"observed": 722.4323049999998}]}
💳 Pricing
This Actor uses pay-per-event pricing. Each completed validation report for a readable JSON endpoint costs $0.005. A run with multiple readable endpoints can create one chargeable event per endpoint. An endpoint that cannot produce a completed validation report is not described by this chargeable event.
🔌 Integrations
Results are available in the Apify dataset linked from the dataset output field. You can use that dataset in the Apify platform and its API.
For a guide to using the Apify API, see:
❓ FAQ
Can I test a private or authenticated API?
No. Submit public HTTP or HTTPS URLs that return JSON. This Actor does not provide fields for credentials, request bodies, or private network access.
Can one run use different checks for different endpoints?
No. One validation mode and one set of validation settings apply to every endpoint submitted in the run.
What is the difference between the four validation modes?
Structural checks look for required paths, null values, empty strings, and duplicate array entries. JSON Schema checks compare each response with the schema you provide. Path-based content rules compare selected values. Combined checks run all three groups.
How do required paths and content rules differ?
Required paths check whether a path is present. Content rules check the value at a path with an operator such as equals, contains, greaterThan, or lessThan.
What happens when an endpoint does not return readable JSON?
The remaining endpoints can still be processed. The dataset contains a validation row for each endpoint that yields readable JSON.
How does the response-time threshold work?
Set responseTimeThresholdMs to a positive number of milliseconds. A response above that value gets a responseTime finding, and the threshold applies in every validation mode.
What does passed mean in a dataset row?
It shows whether that response passed all checks selected for the run. Use findings to see the severity, path, message, expected value, and observed value for each finding.
Can I start with a sample API for testing?
Yes. The form includes a public JSONPlaceholder URL, and you can replace it with any public HTTP or HTTPS endpoint that returns JSON.
📝 Changelog
v0.0 (20-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Schema Markup & JSON-LD Validator: Check JSON-LD, Microdata, and RDFa on public pages.
- YAML Validator & Converter: Check JSON, YAML, and TOML syntax when you need to validate document data.
- Redirect Chain Checker: Trace public HTTP/HTTPS URLs and review status, timing, and redirect issues.
- SSL Certificate Checker: Check public HTTPS certificates, hostname matches, and expiry details.
- DNS Propagation Checker: Compare public resolver answers after a DNS change.
Made with ❤️ by Maxime Dupré