📦 Large Dataset API
A catalogue of 1,000 fake products you can paginate, search, sort, and deliberately slow down. Built for testing data grids, virtual scroll, client-side search, and loading-state assertions.
1 Endpoint
GETReturns JSON. No authentication or API key required. CORS is open — call it from any origin.
2 Parameters
All parameters are optional query-string values.
limit
Number of items to return per page. Capped at 1,000 — the full dataset in one shot.
page
Page number for offset pagination. Use alongside limit; check hasMore in the response to know when you've reached the end.
q
Case-insensitive substring filter. Matched against name, category, and sku. Pass ?q=zzz to get an intentional empty result.
sort
Field to sort by. Accepted values: id name price category rating stock created. Any other value is ignored and results return in default order.
order
Sort direction. Only meaningful when sort is also set.
delay
Artificial response delay in milliseconds. Useful for keeping loading spinners or skeleton screens visible long enough to test or screenshot.
3 Response shape
The envelope contains pagination metadata and an items array. price is a string to preserve decimal formatting.
{
"success": true,
"total": 1000, // total matching items (after any ?q= filter)
"page": 1,
"limit": 20,
"hasMore": true, // false when you've reached the last page
"items": [ ... ]
}
idinteger1–1,000. Stable — same value every request.skustringSKU-00001 format, zero-padded to 5 digits.namestringPattern: Adjective + Noun + zero-padded number.categorystringOne of 10: Electronics, Books, Clothing, Food, Sports, Home & Garden, Toys, Automotive, Health, Beauty.pricestringTwo decimal places, e.g. "24.99". Range ~$2–$202. String to preserve formatting.statusstringactive | inactive | pendingstockinteger0–499 units.ratingnumber2.5–4.9, one decimal place.tagsstring[]Array of 2 tags from: sale, new, bestseller, limited, refurbished, eco, organic, premium, budget, exclusive.createdstringYYYY-MM-DD. Stable, spread daily from 2024-01-01.4 Try it
opens raw JSON in a new tab?limit=1000
Paginate — page 2
Items 51–100, 50 per page
?limit=50&page=2
Sort by price ↓
Top 10 most expensive first
?sort=price&order=desc&limit=10
Sort by rating ↓
Top 10 highest-rated items
?sort=rating&order=desc&limit=10
Filter by category
All Electronics items
?q=electronics
Search + sort
"pro" items sorted cheapest first
?q=pro&sort=price&order=asc
Slow response — 2 s
5 items with a 2,000 ms delay
?limit=5&delay=2000
Max delay — 5 s
5 items with the maximum 5,000 ms delay
?limit=5&delay=5000
5 Use cases
Fetch all 1,000 items and render them in AG Grid, TanStack Table, or any virtual-scroll component. Fields are consistently typed.
Use sort + order to test server-side sorting, or fetch all 1,000 and sort client-side to compare behaviour.
Pass ?q= to verify partial matches, empty result states (?q=zzz), and case-insensitive handling.
Use page + limit to test offset pagination. hasMore: false signals the final page reliably.
Set delay=1500 to hold your spinner or skeleton screen long enough to screenshot or assert in Playwright / Cypress.
Use ?limit=1000 as a stable, free source to seed test databases or populate mock fixtures in automation scripts.