REST API Tester

Server assisted API Testing

Send GET/POST/PUT/PATCH/DELETE requests and add assertions (status equals, header contains, JSONPath equals, response time under) to turn manual checks into repeatable test steps you can export.

Privacy: Processing happens in your browser where possible. Network checks are relayed through the Mutqan backend and are not stored.
Loading tool…

How to use REST API Tester

  1. Build the request as in the API Request Builder.
  2. Open the Assertions tab and write expectations such as "status == 200" or "jsonpath $.data.id exists".
  3. Send. Assertions run against the response and are listed above the body with PASS/FAIL badges.
  4. Fix failing expectations or the API, re-send, then export the test step for your repository.

REST API Tester features

  • Full request editor (params, headers, body, auth) with relay or direct sending
  • Assertions on status, headers, JSONPath values, body text and response time — one per line
  • Pass/fail table with actual values and human-readable explanations
  • Export the request + assertions + last result as a JSON test step (with cURL)
  • Response body as pretty JSON, tree or raw; header table; code export

REST API Tester example

Assert on a JSON response

Input:

GET https://httpbin.org/json

status == 200
header Content-Type contains json
jsonpath $.slideshow.slides[0].type == "all"
time < 3000

Output:

4/4 passed
PASS status == 200 — Status is 200.
PASS header Content-Type contains json — Header Content-Type contains "json".
PASS jsonpath $.slideshow.slides[0].type == "all" — equals "all".
PASS time < 3000 — Responded in 412 ms (< 3000 ms).

Frequently asked questions about REST API Tester

How do I write assertions?

One per line in the Assertions tab: status == 200, status in 200,201, header Content-Type contains json, header X-Request-Id exists, jsonpath $.data.id == 42, jsonpath $.items[0] exists, body contains "ok", time < 500.

Which JSONPath syntax is supported?

Dot and bracket paths, wildcards, recursive descent (..), slices, unions and filter expressions such as $.items[?(@.price > 10)].id.

Can I save the test?

Use "Export test step" to download a JSON file with the request, the assertions and the last result, ready to drop into a test repository or replay with the cURL command included.

What happens if the body is not JSON?

Status, header, body-contains and time assertions still run; JSONPath assertions fail with a clear message.

Technical notes

Assertion values are parsed as JSON when possible (numbers, booleans, quoted strings, objects) and compared semantically; as a fallback the string forms are compared. JSONPath uses the built-in evaluator shared with the JSONPath Tester.