Skip to main content

REST API Testing

REST API testing in QAlity turns the HTTP calls your web app already makes into reusable automated tests. You do not assemble a collection by hand first. Enter a URL, work through the product, and QAlity captures every request with its method and status. You can then inspect, edit, assert, and run those requests whenever you need.

This is complementary to UI recording: UI tests capture clicks and inputs; API tests capture the backend calls behind those actions.

Live captureGET POST PUT PATCH DELETE HEADStatus codesAssertionsExecution HistoryRun anytime
No collection setup

Browse the live site while recording. QAlity captures the endpoints that actually fire, including status codes, then lets you send those requests again.

Plans and limitsPlans and limits

API Testing is included free on Discover, Pro, and Business.

TopicHow it works
Test casesUI and API cases share one limit. Discover has 100 shared cases. Pro and Business are unlimited.
AI promptsAPI prompts and other AI-assisted API work use your plan AI request allowance: Discover 50, Pro 500, Business 1000 per billing cycle.
API importImporting API definition files is available on Pro and Business only.

See Discover plan, Pro plan, and Business plan.

What you can doWhat you can do

Capture
Record real API traffic while you browse, or add requests with AI, by hand, from cURL or JSON, or from a file.
Inspect
Open any call to see method, URL, headers, query parameters, body, and response.
Edit
Change headers, body, parameters, or expected status before you run.
Run
Send one request or execute the full flow in sequence and watch each call complete.
History
Every run is stored in Execution History so you can see what passed, what failed, and rerun later.

How it worksHow it works

1
Start from your app URL

Hit record and enter the application URL. Your product opens in a live browser, ready to explore.

2
Use the product as a user would

Click, type, and move through the journey. Every interaction that hits the backend becomes an API request in the background.

3
Stop and review captured traffic

Stop recording. All captured requests appear in one dashboard with method, path, and status code.

4
Clean up noise with AI

Real traffic can include duplicates and noise. Use AI suggestions to remove duplicates, ignore noise, or keep specific requests.

5
Edit, assert, and make it yours

Change the URL, headers, body, or parameters. Add assertions so a request only passes when the response matches what you expect.

6
Run the flow whenever you need

Execute every API in sequence, or send a single request. Results land in Execution History so you can rerun the same tests later without recapturing traffic.

Five ways to add APIsFive ways to add APIs

However your APIs start, QAlity can take it from there. Capture from a browser, generate with AI, import existing requests, or build your own, then test everything in one workspace.

WayWhat you do
Record from browserRecord real traffic from any website as you browse.
Generate with AIDescribe the APIs you need in a prompt and let QAlity generate the requests.
Build a requestCreate a request from scratch: method, URL, headers, body, and assertions.
Import cURL or JSONPaste an existing cURL command or JSON request instead of rebuilding it.
Import from fileImport API definition files and turn existing endpoints into runnable tests.

HTTP methodsHTTP methods

You can send the same methods your app uses in production:

GETPOSTPUTPATCHDELETEHEAD
GET
Read a resource such as products, session, profile, or cart.
POST
Create a resource such as add to cart, place an order, or sign in.
PUT
Replace a resource. For example, update a cart item with a full payload.
PATCH
Update part of a resource, such as a profile field.
DELETE
Remove a resource, such as a cart item.
HEAD
Check that an endpoint exists without downloading the full body.

Replay captured calls without rebuilding them by hand. Change the method on a saved request if you need to test a different verb against the same path.

Status codesStatus codes

Every captured and replayed request shows its HTTP status next to the method and path. That status is how QAlity tells you whether the backend accepted the call, created something, rejected it, or failed.

CodeMeaningWhat it usually means in a test
200OKGET, PUT, PATCH, or HEAD succeeded.
201CreatedPOST created a resource (order, cart item).
204No ContentDELETE succeeded and returned an empty body.
400Bad RequestPayload or query is invalid. Assert this for negative tests.
401UnauthorizedMissing or invalid auth. Check headers before you rerun.
403ForbiddenAuthenticated, but not allowed to perform the action.
404Not FoundPath or resource no longer exists.
500Server ErrorBackend failed. The request fails unless you expected this status.
2xx
Success. The call completed as the server intended.
3xx
Redirect. The resource moved; follow or assert the new location if that matters.
4xx
Client error. The request itself is wrong, unauthorized, or not found.
5xx
Server error. The backend failed. Treat this as a product defect unless you are testing error handling.

Add an assertion on the status you expect. A checkout POST that must create an order should expect 201. If the live call returns 500, that request fails and the failure is stored in Execution History.

Run tests whenever you needRun tests whenever you need

Saved API tests are reusable. You do not recapture traffic every time you want to check the backend.

Send one request
Open a captured or authored request and send it again to isolate a single backend call.
Run the full flow
Execute every API in sequence and watch each request complete in real time.
Modify then rerun
Change headers, body, or parameters, then run again without starting a new recording.
On demand
Run the same saved tests before a release, after a backend change, or anytime you need a status check.
Save once, run many times

Capture or author the requests once. After that, run them whenever you need. The requests, assertions, and history stay with the test.

Execution HistoryExecution History

Every run is saved in Execution History. That is how QAlity tells you what happened on this run, how it compares to earlier runs, and whether you can trust the latest result.

Overall status
Passed, Failed, Not Executed, Aborted, or Stopped for the run as a whole.
When it ran
Timestamp so you can tell a morning check from a later rerun.
Duration
How long the flow or request took.
Each request
Method, path, actual status code, and whether assertions passed.
Message
A short result summary, for example that all requests passed, or which call failed.

Use history to:

  1. Open the latest run and see which request failed and which status it returned.
  2. Compare that run with a previous passed run of the same test.
  3. Confirm a fix by running again. The new execution is stored as its own history entry.

For the shared status model used across QAlity, see Understanding test status. Re-runs are covered in Re-running a failed test.

How this differs from UI recordingHow this differs from UI recording

UI recording
Captures clicks, typing, and navigation as test steps. See Recorder.
REST API testing
Captures the network calls behind those actions so you can verify backend responses alongside the interface.

Use both when a journey must work in the browser and the APIs behind it must return the right status and payload.