ShiftLeft Store API Learning Sandbox
A live, multi-protocol API you can hit right now — no setup, no login required.
This sandbox simulates a real online store (customers, products, orders) exposed simultaneously over REST, GraphQL, and SOAP — all sharing one live data store. Use it to practise API testing, explore protocols side-by-side, or demonstrate tools like Shift‑Left Studio without any backend setup.
https://demo.totalshiftleft.ai
x-session-id: <id>
alice@demo.com / alice123
demo-key-sandbox-2026
30 min inactivity
None (fair use)
A multi-protocol API simulator built for demo environments. It exposes identical business data (Users, Products, Orders) across REST, GraphQL, and SOAP simultaneously — all sharing one session-scoped in-memory store. Use it to demonstrate API testing concepts, tooling integrations, and protocol comparisons without any persistent database setup.
x-session-id response header. Data auto-expires after 30 minutes of inactivity. No data persists between sessions.| Protocol | Endpoint |
|---|---|
| REST CRUD | /api/v1/{entity} |
| GraphQL | /graphql |
| SOAP 1.1 | /soap |
| Auth | /auth/* |
| Flows | /api/v1/flows/* |
| Mechanism | Value |
|---|---|
| Response header | x-session-id |
| Cookie | sandbox_session |
| Request header | x-session-id: <id> |
| TTL | 30 min (sliding) |
| Max records/entity/session | 10,000 |
Append these query params to any REST endpoint to simulate real-world failure conditions:
| Parameter | Type | Description | Example |
|---|---|---|---|
| ?delay=N | integer (ms) | Artificial latency. Max 10,000 ms. | ?delay=2000 |
| ?error=N | HTTP status | Force a specific HTTP error code. | ?error=503 |
| ?random_fail=true | boolean | ~30% chance of 500 error. For retry testing. | ?random_fail=true |
REST API
Full CRUD for users, products and orders over JSON. Data is session-scoped, shared with GraphQL and SOAP, and auto-expires after 30 min of inactivity.
Endpoint
/api/v1/{entity} · JSON · GET, POST, PUT, PATCH, DELETE and QUERY
Contract
OpenAPI 3.0 at /openapi/rest.json — import into Shift-Left API, Postman, Insomnia or any API tool
Errors
HTTP status + { success: false, error, message, details }
Try it — Users
Endpoint Reference
GraphQL API
Full CRUD for users, products and orders with queries and mutations. Same session-scoped data as REST and SOAP — a record created in one appears instantly in the others.
Endpoint
POST /graphql · JSON { "query", "variables" }
Contract
SDL schema — schema.graphql — import into Shift-Left API or any GraphQL client from GET /graphql
Errors
HTTP 200 with errors[] · extensions.code e.g. VALIDATION_ERROR
Try it — Users
Free-form Query
Schema Reference
users(page, limit, sort, order) → UserPageuser(id) → Userproducts(page, limit, sort, order) → ProductPageproduct(id) → Productorders(page, limit, sort, order) → OrderPageorder(id) → Order — includes user & product inlinesessionInfo → JSONcreateUser(input) / updateUser(id, input) / deleteUser(id)createProduct(input) / updateProduct(id, input) / deleteProduct(id)createOrder(input) / updateOrder(id, input) / deleteOrder(id)order { user { name } product { price } } — linked entities resolved automaticallypage, limit, sort, orderx-session-id header to share data with REST and SOAPSOAP API
Full CRUD for users, products and orders over SOAP 1.1 — 15 operations described by a WSDL. Same session-scoped data as REST and GraphQL.
Endpoint
POST /soap · Content-Type: text/xml · SOAPAction header
Contract
WSDL 1.1 at /soap?wsdl — import into Shift-Left API, SoapUI or Postman
Errors
<soap:Fault> with <faultcode> + <faultstring> (and <detail> for validation)
Try it — Users
Operation Reference
Authentication
Open sandbox — auth isn't required for CRUD. Use this section to learn and test it. 17 schemes available.
Mint or inspect a token, then apply it in the Auth Config box (sidebar) to authenticate your REST / GraphQL / SOAP calls.
x-api-key header
🪙 JWT — login token
🔐 OAuth2 — client credentials
These three plug into the sidebar Auth Config. Need Basic, Digest, HMAC, SigV4…? → Test an auth scheme.
Pick a scheme, send it the way it expects, and get an instant pass/fail — from this UI or your own tool (Postman, RestAssured, Bruno, Karate, SoapUI, APIDog, Tricentis). Each scheme has a protected endpoint at /auth/protected/{id}. Full setup guide ↗
Learning Scenarios
Guided step-by-step exercises from beginner to advanced. Each scenario explains the why, not just the how.
Error & Delay Simulation
Add query params to any REST endpoint to test client-side error handling and resilience.
⏱ Artificial Delay
Simulate network latency or slow backends. Max 10,000 ms.
💥 Force HTTP Error
Force any HTTP error code. Useful for testing your UI error states.
🎲 Random Failure
~30% of requests will randomly fail. Build retry logic and test resilience.
Click multiple times — about 1 in 3 will fail.
🔗 Chain Params
Combine simulation params on any endpoint.
.txt to Shift-Left Studio to generate tests from it.Loading the requirements document…