Status-code assertions
The documented success response becomes the baseline assertion for the operation, so a silently changed status code fails the run rather than passing quietly.
An OpenAPI document is a contract nobody tests. QAEverest reads yours — file or live URL — and turns every path, method, schema and security scheme into the cases that prove it holds: status, shape, negatives and auth, chained into a suite you can run per environment. The same capability is available the other way round, over a documented REST API of our own.
Importing is deliberately boring — the interesting part is what the parser pulls out of the document and how little you have to restate by hand.
A spec import that produces one smoke test per endpoint isn’t coverage. These run for each documented operation, from both sides of the contract.
The documented success response becomes the baseline assertion for the operation, so a silently changed status code fails the run rather than passing quietly.
Payloads are checked against the shape the spec promises — a dropped field or a string where a number was declared is a failure, not a warning.
Required fields are omitted, enums are violated and boundary values are pushed, so the contract is exercised from the wrong side as well as the right one.
Calls run without credentials and with the wrong ones, confirming that protected operations actually reject what the spec says they should.
A value returned by one call feeds the next, so create-then-read-then-delete flows run as one suite instead of four disconnected requests.
The same generated suite runs against Dev, QA and Prod by swapping the base URL and stored variables — the spec is imported once.
Everything above is reachable programmatically. Our IDE plugins, the MCP server and the Jira app are all clients of the same public v1 surface — there is no privileged internal path they use and you don’t.
/api/v1/auth/tokenExchange a qae_ key for a short-lived access token—/api/v1/whoamiIdentify the presented key and what it is allowed to do—/api/v1/usageCredits remaining, request quota and current per-call ratesfree/api/v1/generate-testcasesStory text → structured test cases1/api/v1/api-tests/generateStory or spec → an API test suite2/api/v1/ui-testsStart a UI generation job5/api/v1/ui-tests/{jobId}Poll that UI job until it completes—/api/v1/mobile-testsStart a mobile generation job5/api/v1/mobile-tests/{jobId}Poll that mobile job until it completes—/api/v1/security-scanHeader, SSL/TLS and vulnerability scan of a URL10/api/v1/performance-testLoad, stress, spike or soak run10/api/v1/suites/buildDocument or requirement text → a runnable suite in one callmetered/api/v1/suitesList your automation suites with id, title, type and count—/api/v1/executeStart a run — returns 202 while it continues server-sidemetered/api/v1/execute/resultsLatest pass/fail outcome for a suite—/api/v1/execute/reportFetch the run report for a completed execution—Endpoints marked — don’t consume credits. Generation and scanning are metered per unit at the rates set on your account, and metered means the charge depends on what the call ends up producing. Every call is written to your usage log either way.
Send your key on every request in whichever form your client prefers.
x-api-key: qae_••••••••••••
# or, equivalently
Authorization: Bearer qae_••••••••••••Clients that would rather not hold the key long-term can exchange it atPOST /api/v1/auth/token for a short-lived access token — the route the MCP server takes. QAEverest stores only a hash of the key itself; the raw value is shown once, at generation.
GET /api/v1/whoami is the one endpoint that accepts both an account key and a personal key — clients call it on connect to learn what the presented credential may actually do./ui-tests/{jobId} or /mobile-tests/{jobId} until it resolves./execute/results for the outcome.POST /api/v1/suites/build runs the AI engine twice — generate, then step-generate — so give that one a long client timeout.Failures come back as { success: false, error: "…" } with a status that says which of your problems it is — never a bare 500 you have to guess at.
Point us at an OpenAPI or Swagger document and preview the per-operation coverage QAEverest writes out of it — before a single case is generated against your own account.