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.
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.
| Topic | How it works |
|---|---|
| Test cases | UI and API cases share one limit. Discover has 100 shared cases. Pro and Business are unlimited. |
| AI prompts | API prompts and other AI-assisted API work use your plan AI request allowance: Discover 50, Pro 500, Business 1000 per billing cycle. |
| API import | Importing 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
How it worksHow it works
Hit record and enter the application URL. Your product opens in a live browser, ready to explore.
Click, type, and move through the journey. Every interaction that hits the backend becomes an API request in the background.
Stop recording. All captured requests appear in one dashboard with method, path, and status code.
Real traffic can include duplicates and noise. Use AI suggestions to remove duplicates, ignore noise, or keep specific requests.
Change the URL, headers, body, or parameters. Add assertions so a request only passes when the response matches what you expect.
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.
| Way | What you do |
|---|---|
| Record from browser | Record real traffic from any website as you browse. |
| Generate with AI | Describe the APIs you need in a prompt and let QAlity generate the requests. |
| Build a request | Create a request from scratch: method, URL, headers, body, and assertions. |
| Import cURL or JSON | Paste an existing cURL command or JSON request instead of rebuilding it. |
| Import from file | Import API definition files and turn existing endpoints into runnable tests. |
HTTP methodsHTTP methods
You can send the same methods your app uses in production:
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.
| Code | Meaning | What it usually means in a test |
|---|---|---|
| 200 | OK | GET, PUT, PATCH, or HEAD succeeded. |
| 201 | Created | POST created a resource (order, cart item). |
| 204 | No Content | DELETE succeeded and returned an empty body. |
| 400 | Bad Request | Payload or query is invalid. Assert this for negative tests. |
| 401 | Unauthorized | Missing or invalid auth. Check headers before you rerun. |
| 403 | Forbidden | Authenticated, but not allowed to perform the action. |
| 404 | Not Found | Path or resource no longer exists. |
| 500 | Server Error | Backend failed. The request fails unless you expected this status. |
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.
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.
Use history to:
- Open the latest run and see which request failed and which status it returned.
- Compare that run with a previous passed run of the same test.
- 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
Use both when a journey must work in the browser and the APIs behind it must return the right status and payload.