Free API for QA Automation Testing
Real CRUD. Real auth. Real failures on demand. The sandbox QA engineers actually need to practice and prototype against — not another mock that always returns 200.
Designed for failure-mode testing
Your test suite is only as good as its negative cases. Append these to any endpoint:
| Query | Effect | What it lets you test |
|---|---|---|
?error=500 | Forces HTTP 500 | Retry logic, circuit breakers, error envelopes |
?error=429 | Forces rate-limit | Backoff strategy, Retry-After header parsing |
?delay=2000 | Adds 2s latency | Timeout handling, async assertions |
?random_fail=true | ~30% random 5xx | Flaky-network resilience, idempotency |
Tooling — drop-in examples
RestAssured (Java)
given().contentType("application/json")
.body("{\"name\":\"Ada\",\"email\":\"ada@x.io\"}")
.when().post("https://demo.totalshiftleft.ai/api/v1/users")
.then().statusCode(201).body("data.email", equalTo("ada@x.io"));
Karate
Feature: create user
Scenario: happy path
Given url 'https://demo.totalshiftleft.ai/api/v1/users'
And request { name: 'Ada', email: 'ada@x.io' }
When method POST
Then status 201
And match response.data.email == 'ada@x.io'
Cypress
cy.request('POST','https://demo.totalshiftleft.ai/api/v1/users',
{ name:'Ada', email:'ada@x.io' })
.its('status').should('eq',201);
Playwright (request fixture)
const r = await request.post('https://demo.totalshiftleft.ai/api/v1/users',
{ data: { name: 'Ada', email: 'ada@x.io' } });
expect(r.status()).toBe(201);
Why teams choose this for training
- Same data behind REST, GraphQL and SOAP — train protocol-agnostic test design
- Real OAuth2 / JWT / refresh tokens — practice token-handling edge cases
- OpenAPI 3.0 spec — generate Schemathesis or Dredd contract tests
- Free, persistent, no signup — works in air-gapped CI via the same public URL
Recommended next read
API Testing Checklist for QA Engineers — 30 things to cover
Frequently asked questions
Can I run my CI pipeline against this sandbox?
Yes — just be polite with rate limits. We recommend Newman / a local mock for high-volume runs and the sandbox for nightly smoke tests.
How do I get a token in CI?
POST /auth/token with username:demo / password:demo. Bake the request into a setup step.
Other free public APIs in this sandbox
Ready to try it?
Open the live sandbox — REST, GraphQL, SOAP and auth in one place. No signup, no API key.
Open the API Sandbox →Topics: API for QA automation · API for automation testing · RestAssured / Karate / Cypress / Playwright test API · free API for QA