Test Data — entry 003 of 19
DummyJSON
DummyJSON is a free, keyless REST API that serves realistic placeholder data — products, carts, users, todos, recipes, quotes, posts, and comments — with full CRUD support on every resource (writes simulate success but nothing is persisted). Query parameters cover pagination (limit/skip), field selection, sorting, and full-text search, and a dedicated /auth flow issues real JWTs against its seeded users so frontend teams can exercise login and token-refresh flows without standing up a real backend.
DummyJSON is a free, keyless REST API that serves realistic placeholder data — products, users, carts, todos, recipes, quotes, posts, and comments — with full CRUD support on every resource (writes simulate success but nothing is persisted). A live GET this run confirmed every collection endpoint wraps its array in a {items,total,skip,limit} envelope rather than returning a bare array, and a dedicated /auth/login route issues real signed JWTs against its seeded demo users.
GreatAPIs Score
Auth quickstart
- No API key or signup required for any read endpoint.
/auth/login(username + password against a seeded demo user, e.g.emilys) is optional and only needed to exercise the login/JWT flow itself — a live POST this run returned a real signed access + refresh token pair as both JSON fields andSecure/HttpOnlycookies, on top of the same fixed rate-limit ceiling every other route shares.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Get a single product
GEThttps://dummyjson.com/products/1
{"id":1,"title":"Essence Mascara Lash Princess","description":"The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects. Achieve dramatic lashes with this long-lasting and cruelty-free formula.","category":"beauty","price":9.99,"discountPercentage":10.48,"rating":2.56,"stock":99,"tags":["beauty","mascara"],"brand":"Essence","sku":"BEA-ESS-ESS-001","weight":4,"dimensions":{"width":15.14,"height":13.08,"depth":22.99},"warrantyInformation":"1 week warranty","shippingInformation":"Ships in 3-5 business days","availabilityStatus":"In Stock","reviews":[{"rating":3,"comment":"Would not recommend!","date":"2025-04-30T09:41:02.053Z","reviewerName":"Eleanor Collins","reviewerEmail":"eleanor.collins@x.dummyjson.com"},{"rating":4,"comment":"Very satisfied!","date":"2025-04-30T09:41:02.053Z","reviewerName":"Lucas Gordon","reviewerEmail":"lucas.gordon@x.dummyjson.com"},{"rating":5,"comment":"Highly impressed!","date":"2025-04-30T09:41:02.053Z","reviewerName":"Eleanor Collins","reviewerEmail":"eleanor.collins@x.dummyjson.com"}],"returnPolicy":"No return policy","minimumOrderQuantity":48,"meta":{"createdAt":"2025-04-30T09:41:02.053Z","updatedAt":"2025-04-30T09:41:02.053Z","barcode":"5784719087687","qrCode":"https://cdn.dummyjson.com/public/qr-code.png"},"images":["https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"],"thumbnail":"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp"}Try it
Developer reference
https://dummyjson.com100 requests per window (self-describing X-RateLimit-Limit header)
- GET/products/{id}
- GET/products/search?q={query}
- GET/users
Gotchas & limits
- Every collection route —
/products,/products/search,/users— wraps its array in an envelope: a liveGET /productsthis run returned{"products":[...30 items],"total":194,"skip":0,"limit":30}, so the array sits underproducts/users/etc, never at the response's top level. limit=0means 'return every row', not 'return none': a liveGET /products?limit=0this run returned"total":194,"limit":194with all 194 products in the array — passing 0 to suppress results silently does the opposite.- A not-found ID is a real HTTP 404 with a JSON error body, unlike JSONPlaceholder's silent
{}: a liveGET /products/9999this run returned{"message":"Product with id '9999' not found"}at 404. /auth/loginissues genuine, verifiable JWTs, not placeholder tokens: a live POST this run with the seededemilys/emilyspasscredentials returned a realaccessToken(1-hour expiry, both as a JSON field and aSecure; HttpOnlycookie) plus a longer-livedrefreshToken— safe to demo end-to-end, but don't mistake the seeded password for a real secret to protect.- CORS is wide open and echoes the caller's
Origin: a live GET withOrigin: https://greatapis.comthis run returnedaccess-control-allow-origin: https://greatapis.comwithaccess-control-allow-credentials: true, so browser-side calls need no proxy.