DummyJSON

Development API · Fake data · Mock API · CRUD · Testing · E-commerce

TL;DR

DummyJSON provides comprehensive fake data for testing and prototyping — products, users, posts, comments, todos, quotes, recipes, and more. Each resource supports full CRUD operations and includes realistic fields with proper typing. Products have images, prices, ratings, and category tags. Users have names, emails, addresses, and company info. Search, filter, and paginate results. No API key required.

Quick start: https://dummyjson.com/products

No API key needed — free comprehensive test data!

How to Use This API

1. Get All Products

Returns paginated product list with 100 products:

https://dummyjson.com/products

2. Get Single Product

https://dummyjson.com/products/1

3. Search Products

https://dummyjson.com/products/search?q=phone

4. JavaScript — E-Commerce UI Data

fetch('https://dummyjson.com/products?limit=10')
  .then(r => r.json())
  .then(data => {
    console.log(`Total products: ${data.total}`);
    data.products.forEach(p => {
      console.log(`${p.title} — $${p.price} (${p.discountPercentage}% off)`);
      console.log(`  Brand: ${p.brand}, Category: ${p.category}`);
      console.log(`  Rating: ${p.rating}/5, Stock: ${p.stock}`);
      console.log(`  Thumbnail: ${p.thumbnail}`);
    });
  });

5. Python — Users and Posts

import requests

# Get users with filtering
users = requests.get(
    'https://dummyjson.com/users/filter',
    params={'key': 'age', 'value': '25'}
).json()
print(f"Users aged 25: {users['total']}")
for u in users['users'][:3]:
    print(f"  {u['firstName']} {u['lastName']} — {u['email']}")

# Create a new post
new_post = requests.post('https://dummyjson.com/posts/add', json={
    'title': 'My test post',
    'body': 'This is a test post from the API',
    'userId': 1,
    'tags': ['test', 'api']
}).json()
print(f"\nCreated post ID: {new_post['id']}")
Browse products: https://dummyjson.com/products?limit=5

Frequently Asked Questions

What resources are available?
Products (100 items), users (100), posts (150), comments (500), todos, quotes (100), recipes (50), and carts. Each resource has realistic, well-structured data.
What CRUD operations are supported?
GET (list, single), POST (create), PUT/PATCH (update), DELETE. Created/updated resources persist in memory but are reset periodically.
How do I paginate and limit results?
Use ?limit=10&skip=20 for pagination. The response includes total, skip, and limit fields. Default is 30 items per page.
Can I search and filter data?
Yes — /products/search?q=keyword for text search. /users/filter?key=age&value=25 for field-level filtering. Some endpoints support sorting with ?sortBy=price&order=desc.
Are product images real URLs?
Yes — products include thumbnail and images array with real-looking product image URLs from placeholder services. Images are appropriate for the product category.
Is there a rate limit?
No strict rate limit. DummyJSON is free for development and testing. It's widely used in tutorials, demos, and prototyping. Data may reset periodically.

API Details

API URL
https://dummyjson.com/
Documentation
dummyjson.com/docs
Category
Development
Authentication
Not Required
Methods
GET, POST, PUT, PATCH, DELETE

What You Can Build