dummyjson.com APIdummyjson.com ↗
Access fake placeholder products, users, and shopping carts from DummyJSON. Search products, get individual details with reviews, list users, and browse carts.
curl -X GET 'https://api.parse.bot/scraper/7a2f7234-8407-4cff-8b96-a708afd54f1b/search_products?skip=0&limit=5&query=phone' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed Python client. Install the CLI, sign in, then pull this API’s generated client:
pip install parse-sdk parse login parse add --marketplace dummyjson-com-api
parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: DummyJSON SDK — products, users, and carts."""
from parse_apis.DummyJSON_API import DummyJson, ProductNotFound
client = DummyJson()
# Search products by keyword, capped at 3 results
for product in client.products.search(query="laptop", limit=3):
print(product.title, product.price, product.rating, product.stock)
# Drill into one product's full details via .get()
product = client.products.search(query="phone", limit=1).first()
if product:
detail = client.products.get(product_id=str(product.id))
print(detail.title, detail.dimensions.width, detail.dimensions.height, detail.dimensions.depth)
# List users
for user in client.users.list(limit=3):
print(user.first_name, user.last_name, user.email)
# List carts filtered by a user
for cart in client.carts.list(user_id="1", limit=2):
print(cart.id, cart.total, cart.total_quantity)
for item in cart.products:
print(f" {item.title} x{item.quantity} = {item.discounted_total}")
# Typed error handling for a missing product
try:
client.products.get(product_id="99999")
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: products.search / products.get / users.list / carts.list / ProductNotFound")
Search or list products. When query is provided, performs full-text search across product titles and descriptions. Without query, returns all products paginated. Each product includes price, rating, stock, dimensions, and category. Paginates via skip/limit offsets.
| Param | Type | Description |
|---|---|---|
| skip | integer | Number of products to skip for pagination. |
| limit | integer | Maximum number of products to return per page. |
| query | string | Search term to match against product title and description. Omitting returns all products. |
{
"type": "object",
"fields": {
"skip": "integer",
"limit": "integer",
"total": "integer",
"products": "array of product summaries with id, title, price, rating, stock, dimensions, and more"
},
"sample": {
"skip": 0,
"limit": 3,
"total": 23,
"products": [
{
"id": 101,
"sku": "MOB-APP-APP-101",
"tags": [
"electronics",
"over-ear headphones"
],
"brand": "Apple",
"price": 549.99,
"stock": 59,
"title": "Apple AirPods Max Silver",
"rating": 3.47,
"weight": 2,
"category": "mobile-accessories",
"thumbnail": "https://cdn.dummyjson.com/product-images/mobile-accessories/apple-airpods-max-silver/thumbnail.webp",
"dimensions": {
"depth": 27.54,
"width": 24.88,
"height": 14.9
},
"description": "Premium over-ear headphones",
"availability_status": "In Stock",
"discount_percentage": 13.67
}
]
}
}About the dummyjson.com API
This API exposes 4 endpoints against DummyJSON's fake dataset, covering products, users, and shopping carts for prototyping and testing. The search_products endpoint supports full-text search across product titles and descriptions, returning fields like price, rating, stock, dimensions, and category. Individual product records via get_product include reviews, warranty info, meta barcodes, and QR codes — enough detail to simulate a realistic e-commerce catalog without a live backend.
Products
The search_products endpoint accepts an optional query string for full-text matching against product titles and descriptions. Without a query, it returns the full catalog paginated via skip and limit offsets. Each item in the products array includes id, title, price, rating, stock, dimensions, and category data. The total field in the response lets you calculate pages server-side.
Single Product Details
get_product takes a numeric product_id and returns the complete record for that item. On top of the listing fields, this includes a reviews array (each with rating, comment, date, reviewerName, and reviewerEmail), a meta object carrying createdAt, updatedAt, barcode, and qrCode, plus tags, brand, images, shipping details, warranty text, and return policy. This makes it useful for testing product detail pages that need rich structured data.
Users and Carts
list_users returns paginated user profiles. Each user object includes id, name, email, phone, company, and address. list_carts returns shopping cart records that include per-product quantities, prices, and discount values, as well as a cart-level total. You can filter carts to a specific owner by passing a user_id; note that pagination parameters (skip and limit) are ignored when user_id is set.
The dummyjson.com API is a managed, monitored endpoint for dummyjson.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dummyjson.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official dummyjson.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Populate a frontend product catalog UI with realistic titles, prices, ratings, and stock levels during development.
- Seed a test database with user profiles including names, emails, addresses, and company data.
- Test checkout and cart UI components using cart objects with per-product quantities, discounts, and totals.
- Prototype a product detail page with review sections, barcode data, and warranty/return policy fields.
- Validate pagination logic for listing views using the skip/limit/total fields returned by search_products or list_users.
- Filter a user's purchase history by passing user_id to list_carts during integration testing.
- Simulate a search feature by querying search_products with various terms and inspecting matched titles and descriptions.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does DummyJSON have an official developer API?+
What does get_product return beyond basic listing data?+
get_product returns a reviews array (with per-reviewer rating, comment, date, name, and email), a meta object with barcode, qrCode, createdAt, and updatedAt, plus tags, brand, images, shipping info, warranty text, and return policy. These fields are not present in the search_products listing array.How does user_id filtering work in list_carts?+
user_id, the endpoint returns only carts owned by that user. The skip and limit pagination parameters are ignored in that case — you receive all matching carts for that user in a single response.Can I retrieve a single user by ID or search users by name?+
skip/limit pagination via list_users, but does not expose a lookup-by-ID or name-search endpoint. You can fork this API on Parse and revise it to add those endpoints.Does the API expose product categories as a browsable resource?+
search_products and get_product, but there is no dedicated endpoint to list all categories or filter products by category. You can fork this API on Parse and revise it to add a category-filter or category-listing endpoint.