DummyJSON
App · Utilities · 29 actions
Free fake data and developer tools for testing and prototyping, from DummyJSON. Products with prices, discounts and reviews, shopping carts, whole user profiles, posts, comments, to-dos, recipes and quotes, all searchable, filterable and paged. Add, change and delete steps are answered as though they worked without anything being stored, and any of the fake users can log in for a real access token. The tools make placeholder images and identicons, answer with any HTTP status, serve your own JSON from a mock endpoint, record what is sent to a test webhook and generate two-factor codes for test accounts. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Add a cart (simulated) | Put a cart together for a user from product ids and quantities, and get it back priced by DummyJSON: each line multiplied out and discounted, and the cart totalled. |
| Add a product (simulated) | Send a new product to DummyJSON and get back what a real create would answer, without anything being stored: the product as sent, under the next id after the catalogue's last. |
| Create a mock endpoint | Get a public address that answers with the JSON you give it: a stand-in for an API that does not exist yet. |
| Create a test webhook | Make a temporary address that records every request sent to it for 24 hours. |
| Delete a product (simulated) | Send a delete for a product and get back what a real delete would answer: the whole product and the moment it was deleted. |
| Generate a 2FA code for a test account | Get the current six-digit two-factor code for a test account: the code Google Authenticator or Authy would show for it, so a scripted sign-in can get past its 2FA step. |
| Get a cart | Get one cart by its id: each product in it with its quantity, price, discount and line total, and the cart's total before and after discounts. |
| Get a post | Get one blog post by its id, with its text, tags, likes, dislikes, views and its author's id. |
| Get a product | Get one product by its id, with everything DummyJSON holds on it: the price before and after its discount, stock, reviews, pictures, size, SKU and barcode. |
| Get a recipe | Get one recipe by its id: ingredients, step by step instructions, preparation and cooking time, servings, calories and a photo. |
| Get a user | Get one of DummyJSON's fake people by their id: the whole profile, from home address and employer to the username and password Log in as a test user takes. |
| Get random quotes | Get one to ten random quotes from DummyJSON's 1,454, each with its author, different every time. |
| Get the logged-in user | Get the user an access token from Log in as a test user belongs to: the whole profile. |
| List a test webhook's requests | List what a test webhook has received, newest first: each request's method, headers, query parameters, body and time. |
| List carts | List DummyJSON's 208 fake shopping carts, or one user's, each priced line by line with quantities, discounts and totals. |
| List comments | List DummyJSON's 340 fake comments, or the ones on one post, each with its likes and the commenter's name and username. |
| List posts | List DummyJSON's 251 fake blog posts, with their tags, likes, dislikes and views. |
| List product categories | List DummyJSON's 24 product categories, each with its slug, its name and how many products are in it. |
| List products | List DummyJSON's 194 fake products, each with a price and a discount, stock, brand, category, rating, reviews, pictures, SKU and barcode. |
| List recipes | List DummyJSON's 50 fake recipes, each with ingredients, steps, times, servings, calories, cuisine and a rating. |
| List to-dos | List DummyJSON's 254 fake to-dos, or one user's, and keep only the done or only the open ones. |
| List users | List DummyJSON's 208 fake people, each a whole profile: name, age, email, phone, home address with coordinates, employer, university, bank card, and the username and password that log them in. |
| Log in as a test user | Log in as one of DummyJSON's fake users and get a real, signed access token (a JWT) and a refresh token, with the user's short profile. |
| Make a placeholder image | Get the address of a placeholder image of any size up to 4000 pixels a side, with your own caption, colors, font and format (PNG, JPEG or WebP). |
| Make an identicon | Get the address of an identicon: a pattern drawn from any text, the same every time, for a default avatar. |
| Refresh a login session | Trade a refresh token for a new access token and a new refresh token, the way an app keeps someone logged in. |
| Send a request to a test webhook | Send a request into a test webhook, the way another system would call it: any method, a JSON body and query parameters. |
| Simulate an HTTP status | Have DummyJSON answer with the status code of your choosing, 404, 429 or 503 say, and a message of your own. |
| Update a product (simulated) | Send a change to a product and get back what a real update would answer, without anything being stored: the product with the fields you set applied. |
Add a cart (simulated)
Put a cart together for a user from product ids and quantities, and get it back priced by DummyJSON: each line multiplied out and discounted, and the cart totalled. Nothing is stored. Product ids DummyJSON does not have are left out of the cart and listed separately. A realistic order to test a checkout, invoice or receipt workflow with. No API key required.
Inputs
- User
user_idnumberRequired - The id of the user the cart is for. Users are numbered 1 to 208.At least 1.
- Products
productslistRequired - What goes in the cart: a list of products, each with an 'id' and a 'quantity' (1 when left out). Text works too, one product per line or comma, written as an id or as id:quantity, e.g. 144:4, 98. The same product twice is added together.
Outputs
cartobject- One shopping cart, priced line by line.
simulatedtrue/false- Always true. DummyJSON fakes every write: nothing is stored, changed or removed, and reading the record back gives what was there before.
unknown_product_idslist- The product ids DummyJSON does not have, which it left out of the cart. Empty when every product was found.
Example output
{
"cart": {
"api_url": null,
"discounted_total": 105.41,
"id": 209,
"products": [
{
"discount_percentage": 12.13,
"discounted_total": 105.41,
"id": 162,
"price": 29.99,
"quantity": 4,
"thumbnail_url": "https://cdn.dummyjson.com/product-images/tops/blue-frock/thumbnail.webp",
"title": "Blue Frock",
"total": 119.96
}
],
"total": 119.96,
"total_products": 1,
"total_quantity": 4,
"user_id": 1
},
"simulated": true,
"unknown_product_ids": []
}Add a product (simulated)
Send a new product to DummyJSON and get back what a real create would answer, without anything being stored: the product as sent, under the next id after the catalogue's last. DummyJSON keeps ten fields of a product (title, description, price, discount, stock, rating, brand, category, thumbnail and pictures) and drops anything else. The way to prove a workflow puts the right product together before pointing it at a real store. No API key required.
Inputs
- Title
titletextRequired - The product's name.
- Description
descriptiontext - Optional. A paragraph about the product.
- Price
pricenumber - Optional. The price.At least 0.
- Discount (%)
discount_percentagenumber - Optional. The discount on it, as a percentage from 0 to 100.From 0 to 100.
- Stock
stocknumber - Optional. How many are in stock, a whole number.At least 0.
- Rating
ratingnumber - Optional. The average rating, from 0 to 5.From 0 to 5.
- Brand
brandtext - Optional. The brand.
- Category
categorytext - Optional. The category's slug. Pick one of DummyJSON's or type any; a simulated write takes a new one as readily as an existing one.
- Thumbnail URL
thumbnail_urltext - Optional. The address of a small picture of it, starting with https://.
- Image URLs
image_urlslist - Optional. The addresses of its pictures: a list, or text with one address per line.
Outputs
productobject- One product from DummyJSON's catalogue.
simulatedtrue/false- Always true. DummyJSON fakes every write: nothing is stored, changed or removed, and reading the record back gives what was there before.
Example output
{
"product": {
"api_url": null,
"availability_status": null,
"barcode": null,
"brand": null,
"category": "stationery",
"created_at": null,
"description": null,
"dimensions": {
"depth": null,
"height": null,
"width": null
},
"discount_percentage": 10.0,
"discounted_price": 3.15,
"id": 195,
"image_urls": [],
"minimum_order_quantity": null,
"price": 3.5,
"qr_code_url": null,
"rating": null,
"return_policy": null,
"reviews": [],
"shipping_information": null,
"sku": null,
"stock": null,
"tags": [],
"thumbnail_url": null,
"title": "Lodol Test Pencil",
"updated_at": null,
"warranty_information": null,
"weight": null
},
"simulated": true
}Create a mock endpoint
Get a public address that answers with the JSON you give it: a stand-in for an API that does not exist yet. The same JSON and method always get the same address, and DummyJSON deletes one nobody has called for 90 days. Anyone with the address can call it, so keep secrets out of it. No API key required.
Inputs
- Response
response_bodyobjectRequired - The JSON the address answers with: an object, a list, or JSON text, up to 300 KB.
- Method
methodtext - Optional. The HTTP method the address answers. GET by default.One of:
GET,POST,PUT,PATCH,DELETE. Default:GET.
Outputs
endpoint_idtext- The last part of the address, DummyJSON's id for it.
methodtext- The HTTP method it answers.
size_bytesnumber- How big the response is, in bytes.
urltext- The address that answers with the JSON.
Example output
{
"endpoint_id": "cde2-77cc-4977-9d5d",
"method": "GET",
"size_bytes": 39,
"url": "https://dummyjson.com/c/cde2-77cc-4977-9d5d"
}Create a test webhook
Make a temporary address that records every request sent to it for 24 hours. Point another service or a workflow's HTTP step at it, then read what arrived with List a test webhook's requests; opening the address in a browser shows DummyJSON's live inspector. DummyJSON allows 10 new test webhooks an hour. No API key required.
Inputs
None.
Outputs
expires_attext- When the webhook stops recording.
urltext- The address to send requests to. Anyone who has it can send to it and read what arrived.
webhook_idtext- The webhook's id, e.g. 0f02351d.
Example output
{
"expires_at": "2026-09-25T06:54:49.956Z",
"url": "https://dummyjson.com/webhook/0f02351d",
"webhook_id": "0f02351d"
}Delete a product (simulated)
Send a delete for a product and get back what a real delete would answer: the whole product and the moment it was deleted. Nothing is removed, so Get a product still finds it and this can run again on the same id. No API key required.
Inputs
- Product
product_idnumberRequired - The product's id. DummyJSON publishes 194 products, numbered 1 to 194, and the numbering stays put, so an id from an earlier run still means the same product.At least 1.
Outputs
deleted_attext- When DummyJSON says it deleted the product, as an ISO 8601 timestamp.
productobject- One product from DummyJSON's catalogue.
simulatedtrue/false- Always true. DummyJSON fakes every write: nothing is stored, changed or removed, and reading the record back gives what was there before.
Example output
{
"deleted_at": "2026-09-24T06:54:17.383Z",
"product": {
"api_url": "https://dummyjson.com/products/1",
"availability_status": "In Stock",
"barcode": "5784719087687",
"brand": "Essence",
"category": "beauty",
"created_at": "2025-10-09T14:47:01.588Z",
"description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects.",
"dimensions": {
"depth": 22.99,
"height": 13.08,
"width": 15.14
},
"discount_percentage": 10.48,
"discounted_price": 8.94,
"id": 1,
"image_urls": [
"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"
],
"minimum_order_quantity": 48,
"price": 9.99,
"qr_code_url": "https://cdn.dummyjson.com/public/qr-code.png",
"rating": 2.56,
"return_policy": "No return policy",
"reviews": [
{
"comment": "Would not recommend!",
"date": "2025-04-30T09:41:02.053Z",
"rating": 3,
"reviewer_email": "eleanor.collins@x.dummyjson.com",
"reviewer_name": "Eleanor Collins"
}
],
"shipping_information": "Ships in 3-5 business days",
"sku": "BEA-ESS-ESS-001",
"stock": 99,
"tags": [
"beauty",
"mascara"
],
"thumbnail_url": "https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp",
"title": "Essence Mascara Lash Princess",
"updated_at": "2026-05-23T11:27:41.868Z",
"warranty_information": "1 week warranty",
"weight": 4.0
},
"simulated": true
}Generate a 2FA code for a test account
Get the current six-digit two-factor code for a test account: the code Google Authenticator or Authy would show for it, so a scripted sign-in can get past its 2FA step. You supply the account's own secret, the key its authenticator was set up with or the otpauth link in its QR code; this action does not make one up. That secret is sent to DummyJSON's servers to work the code out, and whoever holds it can make the account's codes for good, so use this only with a test account's secret, never a real account's. The example, JBSWY3DPEHPK3PXP, is the public test secret from DummyJSON's docs. No API key required.
Inputs
- Test account's secret
secrettextRequired - The test account's own authenticator secret: the base32 key shown when its 2FA was set up (spaces are fine), or the whole otpauth://totp link from its QR code. It goes to DummyJSON as it is, so never enter a real account's secret. From a link only the secret is sent, not the account name or issuer. DummyJSON makes 6-digit, 30-second SHA-1 codes, so a link asking for any other kind is refused.
Outputs
codetext- The six-digit code.
expires_attext- When the code stops working.
expires_in_secondsnumber- How many seconds it has left, at least 5: a code about to change is waited out for the next one.
period_secondsnumber- How often a new code comes, every 30 seconds.
Example output
{
"code": "944629",
"expires_at": "2026-09-24T07:17:00Z",
"expires_in_seconds": 22,
"period_seconds": 30
}Get a cart
Get one cart by its id: each product in it with its quantity, price, discount and line total, and the cart's total before and after discounts. No API key required.
Inputs
- Cart
cart_idnumberRequired - The cart's id. DummyJSON publishes 208 carts, numbered 1 to 208, one per user.At least 1.
Outputs
cartobject- One shopping cart, priced line by line.
Example output
{
"cart": {
"api_url": "https://dummyjson.com/carts/1",
"discounted_total": 105.41,
"id": 1,
"products": [
{
"discount_percentage": 12.13,
"discounted_total": 105.41,
"id": 162,
"price": 29.99,
"quantity": 4,
"thumbnail_url": "https://cdn.dummyjson.com/product-images/tops/blue-frock/thumbnail.webp",
"title": "Blue Frock",
"total": 119.96
}
],
"total": 119.96,
"total_products": 1,
"total_quantity": 4,
"user_id": 1
}
}Get a post
Get one blog post by its id, with its text, tags, likes, dislikes, views and its author's id. No API key required.
Inputs
- Post
post_idnumberRequired - The post's id. DummyJSON publishes 251 posts, numbered 1 to 251.At least 1.
Outputs
postobject- One blog post.
Example output
{
"post": {
"api_url": "https://dummyjson.com/posts/1",
"body": "His mother had always taught him not to ever think of himself as better than others.",
"dislikes": 25,
"id": 1,
"likes": 192,
"tags": [
"history",
"american",
"crime"
],
"title": "His mother had always taught him",
"user_id": 121,
"views": 305
}
}Get a product
Get one product by its id, with everything DummyJSON holds on it: the price before and after its discount, stock, reviews, pictures, size, SKU and barcode. No API key required.
Inputs
- Product
product_idnumberRequired - The product's id. DummyJSON publishes 194 products, numbered 1 to 194, and the numbering stays put, so an id from an earlier run still means the same product.At least 1.
Outputs
productobject- One product from DummyJSON's catalogue.
Example output
{
"product": {
"api_url": "https://dummyjson.com/products/1",
"availability_status": "In Stock",
"barcode": "5784719087687",
"brand": "Essence",
"category": "beauty",
"created_at": "2025-10-09T14:47:01.588Z",
"description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects.",
"dimensions": {
"depth": 22.99,
"height": 13.08,
"width": 15.14
},
"discount_percentage": 10.48,
"discounted_price": 8.94,
"id": 1,
"image_urls": [
"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"
],
"minimum_order_quantity": 48,
"price": 9.99,
"qr_code_url": "https://cdn.dummyjson.com/public/qr-code.png",
"rating": 2.56,
"return_policy": "No return policy",
"reviews": [
{
"comment": "Would not recommend!",
"date": "2025-04-30T09:41:02.053Z",
"rating": 3,
"reviewer_email": "eleanor.collins@x.dummyjson.com",
"reviewer_name": "Eleanor Collins"
}
],
"shipping_information": "Ships in 3-5 business days",
"sku": "BEA-ESS-ESS-001",
"stock": 99,
"tags": [
"beauty",
"mascara"
],
"thumbnail_url": "https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp",
"title": "Essence Mascara Lash Princess",
"updated_at": "2026-05-23T11:27:41.868Z",
"warranty_information": "1 week warranty",
"weight": 4.0
}
}Get a recipe
Get one recipe by its id: ingredients, step by step instructions, preparation and cooking time, servings, calories and a photo. No API key required.
Inputs
- Recipe
recipe_idnumberRequired - The recipe's id. DummyJSON publishes 50 recipes, numbered 1 to 50.At least 1.
Outputs
recipeobject- One recipe.
Example output
{
"recipe": {
"api_url": "https://dummyjson.com/recipes/1",
"calories_per_serving": 300,
"cook_time_minutes": 15,
"cuisine": "Italian",
"difficulty": "Easy",
"id": 1,
"image_url": "https://cdn.dummyjson.com/recipe-images/1.webp",
"ingredients": [
"Pizza dough",
"Tomato sauce",
"Fresh mozzarella cheese"
],
"instructions": [
"Preheat the oven to 475\u00b0F (245\u00b0C).",
"Roll out the pizza dough and spread tomato sauce evenly."
],
"meal_types": [
"Dinner"
],
"name": "Classic Margherita Pizza",
"prep_time_minutes": 20,
"rating": 4.6,
"review_count": 98,
"servings": 4,
"tags": [
"Pizza",
"Italian"
],
"total_time_minutes": 35,
"user_id": 166
}
}Get a user
Get one of DummyJSON's fake people by their id: the whole profile, from home address and employer to the username and password Log in as a test user takes. No API key required.
Inputs
- User
user_idnumberRequired - The user's id. DummyJSON publishes 208 users, numbered 1 to 208.At least 1.
Outputs
userobject- One of DummyJSON's fake people: a whole profile, every detail of it made up.
Example output
{
"user": {
"address": {
"city": "Phoenix",
"country": "United States",
"latitude": -77.16213,
"longitude": -92.084824,
"postal_code": "29112",
"state": "Mississippi",
"state_code": "MS",
"street": "626 Main Street"
},
"age": 29,
"api_url": "https://dummyjson.com/users/1",
"bank": {
"card_expire": "05/28",
"card_number": "3693233511855044",
"card_type": "Diners Club International",
"currency": "GBP",
"iban": "GB74MH2UZLR9TRPHYNU8F8"
},
"birth_date": "1996-05-30",
"blood_group": "O-",
"company": {
"address": {
"city": "San Francisco",
"country": "United States",
"latitude": 71.814525,
"longitude": -161.150263,
"postal_code": "37657",
"state": "Wisconsin",
"state_code": "WI",
"street": "263 Tenth Street"
},
"department": "Engineering",
"name": "Dooley, Kozey and Cronin",
"title": "Sales Manager"
},
"crypto": {
"coin": "Bitcoin",
"network": "Ethereum (ERC20)",
"wallet": "0xb9fc2fe63b2a6c003f1c324c3bfa53259162181a"
},
"ein": "977-175",
"email": "emily.johnson@x.dummyjson.com",
"eye_color": "Green",
"first_name": "Emily",
"full_name": "Emily Johnson",
"gender": "female",
"hair": {
"color": "Brown",
"type": "Curly"
},
"height": 193.24,
"id": 1,
"image_url": "https://dummyjson.com/icon/emilys/128",
"ip_address": "42.48.100.32",
"last_name": "Johnson",
"mac_address": "47:fa:41:18:ec:eb",
"maiden_name": "Smith",
"password": "emilyspass",
"phone": "+81 965-431-3024",
"role": "admin",
"ssn": "900-590-289",
"university": "University of Wisconsin--Madison",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
"username": "emilys",
"weight": 63.16
}
}Get random quotes
Get one to ten random quotes from DummyJSON's 1,454, each with its author, different every time. The quote of the day for a newsletter, a chat post or a screen. No API key required.
Inputs
- How many
countnumber - Optional. How many quotes, from 1 to 10. 1 by default.From 1 to 10. Default:
1.
Outputs
authortext- Who said the first quote.
countnumber- How many came back.
quotetext- The first quote's text, for the step that wanted one.
quoteslist- The quotes, in no particular order.
Example output
{
"author": "Rumi",
"count": 1,
"quote": "Your heart is the size of an ocean. Go find yourself in its hidden depths.",
"quotes": [
{
"api_url": "https://dummyjson.com/quotes/1",
"author": "Rumi",
"id": 1,
"quote": "Your heart is the size of an ocean. Go find yourself in its hidden depths."
}
]
}Get the logged-in user
Get the user an access token from Log in as a test user belongs to: the whole profile. It proves the token works, and says why when it does not. No API key required.
Inputs
- Access token
access_tokentextRequired - The access token Log in as a test user or Refresh a login session returned. A leading 'Bearer ' is fine.
Outputs
userobject- One of DummyJSON's fake people: a whole profile, every detail of it made up.
Example output
{
"user": {
"address": {
"city": "Phoenix",
"country": "United States",
"latitude": -77.16213,
"longitude": -92.084824,
"postal_code": "29112",
"state": "Mississippi",
"state_code": "MS",
"street": "626 Main Street"
},
"age": 29,
"api_url": "https://dummyjson.com/users/1",
"bank": {
"card_expire": "05/28",
"card_number": "3693233511855044",
"card_type": "Diners Club International",
"currency": "GBP",
"iban": "GB74MH2UZLR9TRPHYNU8F8"
},
"birth_date": "1996-05-30",
"blood_group": "O-",
"company": {
"address": {
"city": "San Francisco",
"country": "United States",
"latitude": 71.814525,
"longitude": -161.150263,
"postal_code": "37657",
"state": "Wisconsin",
"state_code": "WI",
"street": "263 Tenth Street"
},
"department": "Engineering",
"name": "Dooley, Kozey and Cronin",
"title": "Sales Manager"
},
"crypto": {
"coin": "Bitcoin",
"network": "Ethereum (ERC20)",
"wallet": "0xb9fc2fe63b2a6c003f1c324c3bfa53259162181a"
},
"ein": "977-175",
"email": "emily.johnson@x.dummyjson.com",
"eye_color": "Green",
"first_name": "Emily",
"full_name": "Emily Johnson",
"gender": "female",
"hair": {
"color": "Brown",
"type": "Curly"
},
"height": 193.24,
"id": 1,
"image_url": "https://dummyjson.com/icon/emilys/128",
"ip_address": "42.48.100.32",
"last_name": "Johnson",
"mac_address": "47:fa:41:18:ec:eb",
"maiden_name": "Smith",
"password": "emilyspass",
"phone": "+81 965-431-3024",
"role": "admin",
"ssn": "900-590-289",
"university": "University of Wisconsin--Madison",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
"username": "emilys",
"weight": 63.16
}
}List a test webhook's requests
List what a test webhook has received, newest first: each request's method, headers, query parameters, body and time. It can wait up to two minutes for something to arrive, and keep only what came in after a given moment. DummyJSON keeps a webhook's latest 100 requests, and keeps JSON and form bodies only. No API key required.
Inputs
- Test webhook
webhooktextRequired - The test webhook's address or its id, as Create a test webhook returned them, e.g. https://dummyjson.com/webhook/0f02351d. A webhook lasts 24 hours.
- Received after
received_afterdate and time - Optional. Keep only the requests that arrived after this moment, to the millisecond. Pass the latest received at of an earlier listing to see only what is new.
- Wait up to (seconds)
wait_secondsnumber - Optional. When nothing (new) has arrived yet, keep asking every few seconds for up to this long, 120 at most. 0 by default. Nothing arriving is an empty list, not an error.From 0 to 120. Default:
0.
Outputs
countnumber- How many there are.
expires_attext- When the webhook stops recording.
latest_received_attext- When the newest of them arrived, to hand to the next listing's received after. Null when there are none.
requestslist- The requests, newest first.
webhook_idtext- The webhook's id.
Example output
{
"count": 1,
"expires_at": "2026-09-25T06:54:49.956Z",
"latest_received_at": "2026-09-24T07:17:08.662Z",
"requests": [
{
"body": {
"event": "order.created",
"order_id": 1001
},
"content_type": "application/json",
"headers": {
"content-type": "application/json",
"host": "dummyjson.com",
"user-agent": "Stripe/1.0 (+https://stripe.com/docs/webhooks)"
},
"method": "POST",
"query": {
"source": "checkout"
},
"received_at": "2026-09-24T07:17:08.662Z",
"request_id": "098a1aeb-63e6-40d9-80ac-ee6c2b9750e5",
"truncated": false
}
],
"webhook_id": "0f02351d"
}List carts
List DummyJSON's 208 fake shopping carts, or one user's, each priced line by line with quantities, discounts and totals. Sort by total or by how much is in them, and page through. No API key required.
Inputs
- User
user_idnumber - Optional. Return only this user's records. Users are numbered 1 to 208; leave blank for everyone's.At least 1.
- Sort by
sort_bytext - Optional. The field to sort on. Leave blank for id order.One of:
total,discounted_total(Total after discounts),total_products(Number of products),total_quantity(Number of items). - Sort order
sort_ordertext - Optional. Which way to sort, when a field to sort by is chosen. Ascending by default.One of:
asc(Ascending (A to Z, lowest first)),desc(Descending (Z to A, highest first)). Default:asc. - Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
cartslist- The carts in this page.
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
total_countnumber- How many records matched in total, across every page.
Example output
{
"carts": [
{
"api_url": "https://dummyjson.com/carts/1",
"discounted_total": 105.41,
"id": 1,
"products": [
{
"discount_percentage": 12.13,
"discounted_total": 105.41,
"id": 162,
"price": 29.99,
"quantity": 4,
"thumbnail_url": "https://cdn.dummyjson.com/product-images/tops/blue-frock/thumbnail.webp",
"title": "Blue Frock",
"total": 119.96
}
],
"total": 119.96,
"total_products": 1,
"total_quantity": 4,
"user_id": 1
}
],
"count": 1,
"has_more": true,
"next_offset": 30,
"total_count": 208
}List comments
List DummyJSON's 340 fake comments, or the ones on one post, each with its likes and the commenter's name and username. No API key required.
Inputs
- Post
post_idnumber - Optional. Return only the comments on this post. Posts are numbered 1 to 251; leave blank for every comment.At least 1.
- Sort by
sort_bytext - Optional. The field to sort on. Leave blank for id order.One of:
likes,post_id(Post). - Sort order
sort_ordertext - Optional. Which way to sort, when a field to sort by is chosen. Ascending by default.One of:
asc(Ascending (A to Z, lowest first)),desc(Descending (Z to A, highest first)). Default:asc. - Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
commentslist- The comments in this page.
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
total_countnumber- How many records matched in total, across every page.
Example output
{
"comments": [
{
"api_url": "https://dummyjson.com/comments/93",
"body": "These are fabulous ideas!",
"id": 93,
"likes": 7,
"post_id": 1,
"user": {
"full_name": "Leah Gutierrez",
"id": 190,
"username": "leahw"
}
}
],
"count": 1,
"has_more": true,
"next_offset": 30,
"total_count": 340
}List posts
List DummyJSON's 251 fake blog posts, with their tags, likes, dislikes and views. Search their text, keep one tag or one author's posts (these combine), sort by views or likes, and page through. No API key required.
Inputs
- Search text
searchtext - Optional. Keep the posts whose text contains this, ignoring capitals. DummyJSON searches the post's body, which begins with its title.
- Tag
tagtext - Optional. Keep the posts with this tag. Pick one or type it; a tag DummyJSON does not use is refused with the nearest it does.
- User
user_idnumber - Optional. Return only this user's records. Users are numbered 1 to 208; leave blank for everyone's.At least 1.
- Sort by
sort_bytext - Optional. The field to sort on. Leave blank for id order.One of:
views,likes,dislikes,title. - Sort order
sort_ordertext - Optional. Which way to sort, when a field to sort by is chosen. Ascending by default.One of:
asc(Ascending (A to Z, lowest first)),desc(Descending (Z to A, highest first)). Default:asc. - Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
postslist- The posts in this page.
total_countnumber- How many records matched in total, across every page.
Example output
{
"count": 1,
"has_more": true,
"next_offset": 30,
"posts": [
{
"api_url": "https://dummyjson.com/posts/1",
"body": "His mother had always taught him not to ever think of himself as better than others.",
"dislikes": 25,
"id": 1,
"likes": 192,
"tags": [
"history",
"american",
"crime"
],
"title": "His mother had always taught him",
"user_id": 121,
"views": 305
}
],
"total_count": 251
}List product categories
List DummyJSON's 24 product categories, each with its slug, its name and how many products are in it. The slug is what List products and Add a product take. No API key required.
Inputs
None.
Outputs
categorieslist- Every category, in DummyJSON's order.
countnumber- How many categories there are.
Example output
{
"categories": [
{
"api_url": "https://dummyjson.com/products/category/beauty",
"name": "Beauty",
"product_count": 5,
"slug": "beauty"
}
],
"count": 24
}List products
List DummyJSON's 194 fake products, each with a price and a discount, stock, brand, category, rating, reviews, pictures, SKU and barcode. Search their titles and descriptions, keep one category, sort by price, rating, stock or last change, and page through. The stand-in catalogue for a store workflow while the real one is being built. No API key required.
Inputs
- Search text
searchtext - Optional. Keep the products whose title or description contains this text, ignoring capitals.
- Category
categorytext - Optional. Return only the products in this category. Pick one, or type its name or slug (mens-shirts and Mens Shirts are the same). A name DummyJSON does not know is refused with the nearest it does.
- Sort by
sort_bytext - Optional. The field to sort on. Leave blank for id order.One of:
title,price,rating,stock,discount_percentage(Discount),brand,updated_at(Last modified). - Sort order
sort_ordertext - Optional. Which way to sort, when a field to sort by is chosen. Ascending by default.One of:
asc(Ascending (A to Z, lowest first)),desc(Descending (Z to A, highest first)). Default:asc. - Changed after
modified_afterdate and time - Optional. Keep the products last changed after this moment.
- Changed before
modified_beforedate and time - Optional. Keep the products last changed before this moment.
- Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
productslist- The products in this page.
total_countnumber- How many records matched in total, across every page.
Example output
{
"count": 1,
"has_more": true,
"next_offset": 30,
"products": [
{
"api_url": "https://dummyjson.com/products/1",
"availability_status": "In Stock",
"barcode": "5784719087687",
"brand": "Essence",
"category": "beauty",
"created_at": "2025-10-09T14:47:01.588Z",
"description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects.",
"dimensions": {
"depth": 22.99,
"height": 13.08,
"width": 15.14
},
"discount_percentage": 10.48,
"discounted_price": 8.94,
"id": 1,
"image_urls": [
"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"
],
"minimum_order_quantity": 48,
"price": 9.99,
"qr_code_url": "https://cdn.dummyjson.com/public/qr-code.png",
"rating": 2.56,
"return_policy": "No return policy",
"reviews": [
{
"comment": "Would not recommend!",
"date": "2025-04-30T09:41:02.053Z",
"rating": 3,
"reviewer_email": "eleanor.collins@x.dummyjson.com",
"reviewer_name": "Eleanor Collins"
}
],
"shipping_information": "Ships in 3-5 business days",
"sku": "BEA-ESS-ESS-001",
"stock": 99,
"tags": [
"beauty",
"mascara"
],
"thumbnail_url": "https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp",
"title": "Essence Mascara Lash Princess",
"updated_at": "2026-05-23T11:27:41.868Z",
"warranty_information": "1 week warranty",
"weight": 4.0
}
],
"total_count": 194
}List recipes
List DummyJSON's 50 fake recipes, each with ingredients, steps, times, servings, calories, cuisine and a rating. Search by name, keep a tag, a meal, a cuisine or a difficulty (they combine), sort by rating or time, and page through. No API key required.
Inputs
- Search text
searchtext - Optional. Keep the recipes whose name contains this text, ignoring capitals.
- Tag
tagtext - Optional. Keep the recipes with this tag. Pick one or type it; a tag no recipe has is refused with the nearest one.
- Meal
meal_typetext - Optional. Keep the recipes for this meal.One of:
breakfast,lunch,dinner,snack,dessert,appetizer,side_dish(Side Dish),beverage. - Cuisine
cuisinetext - Optional. Keep the recipes of this cuisine. Pick one or type it; a cuisine no recipe has is refused with the nearest one.
- Difficulty
difficultytext - Optional. Keep the recipes of this difficulty.One of:
easy,medium. - Sort by
sort_bytext - Optional. The field to sort on. Leave blank for id order.One of:
name,rating,review_count(Number of reviews),prep_time_minutes(Preparation time),cook_time_minutes(Cooking time),calories_per_serving(Calories per serving),servings. - Sort order
sort_ordertext - Optional. Which way to sort, when a field to sort by is chosen. Ascending by default.One of:
asc(Ascending (A to Z, lowest first)),desc(Descending (Z to A, highest first)). Default:asc. - Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
recipeslist- The recipes in this page.
total_countnumber- How many records matched in total, across every page.
Example output
{
"count": 1,
"has_more": true,
"next_offset": 30,
"recipes": [
{
"api_url": "https://dummyjson.com/recipes/1",
"calories_per_serving": 300,
"cook_time_minutes": 15,
"cuisine": "Italian",
"difficulty": "Easy",
"id": 1,
"image_url": "https://cdn.dummyjson.com/recipe-images/1.webp",
"ingredients": [
"Pizza dough",
"Tomato sauce",
"Fresh mozzarella cheese"
],
"instructions": [
"Preheat the oven to 475\u00b0F (245\u00b0C).",
"Roll out the pizza dough and spread tomato sauce evenly."
],
"meal_types": [
"Dinner"
],
"name": "Classic Margherita Pizza",
"prep_time_minutes": 20,
"rating": 4.6,
"review_count": 98,
"servings": 4,
"tags": [
"Pizza",
"Italian"
],
"total_time_minutes": 35,
"user_id": 166
}
],
"total_count": 50
}List to-dos
List DummyJSON's 254 fake to-dos, or one user's, and keep only the done or only the open ones. Stand-in tasks for a reminder or progress workflow. No API key required.
Inputs
- User
user_idnumber - Optional. Return only this user's records. Users are numbered 1 to 208; leave blank for everyone's.At least 1.
- Completed?
completiontext - Optional. Which to-dos to keep. Both by default.One of:
any(Both, completed or not),completed(Completed only),outstanding(Not completed only). Default:any. - Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
todoslist- The to-dos in this page.
total_countnumber- How many records matched in total, across every page.
Example output
{
"count": 1,
"has_more": true,
"next_offset": 30,
"todos": [
{
"api_url": "https://dummyjson.com/todos/1",
"completed": false,
"id": 1,
"todo": "Do something nice for someone you care about",
"user_id": 152
}
],
"total_count": 254
}List users
List DummyJSON's 208 fake people, each a whole profile: name, age, email, phone, home address with coordinates, employer, university, bank card, and the username and password that log them in. Search by name, email or username, keep the people with a given role, city, department or the like, sort, and page through. No API key required.
Inputs
- Search text
searchtext - Optional. Keep the people whose first name, last name, email or username contains this text, ignoring capitals.
- Filter on
filter_fieldtext - Optional. A field to keep people by, together with the value it must have below.One of:
role(Role (admin, moderator or user)),gender,age,eye_color(Eye color),hair_color(Hair color),blood_group(Blood group),city,state,university,department,job_title(Job title). - Filter value
filter_valuetext - Optional. The value the chosen field must have, in full but ignoring capitals: admin, Brown, Phoenix, Engineering. An age is compared as a number.
- Sort by
sort_bytext - Optional. The field to sort on. Leave blank for id order.One of:
first_name(First name),last_name(Last name),age,username,email,height,weight. - Sort order
sort_ordertext - Optional. Which way to sort, when a field to sort by is chosen. Ascending by default.One of:
asc(Ascending (A to Z, lowest first)),desc(Descending (Z to A, highest first)). Default:asc. - Number of records
limitnumber - Optional. How many records to return in this page, from 1 to 100. 30 by default, which is DummyJSON's own page size.From 1 to 100. Default:
30. - Skip
offsetnumber - Optional. How many matching records to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default:
0.
Outputs
countnumber- How many records are in this page.
has_moretrue/false- True when more records matched than this page holds.
next_offsetnumber- The offset that fetches the next page. Null when this is the last one.
total_countnumber- How many records matched in total, across every page.
userslist- The users in this page.
Example output
{
"count": 1,
"has_more": true,
"next_offset": 30,
"total_count": 208,
"users": [
{
"address": {
"city": "Phoenix",
"country": "United States",
"latitude": -77.16213,
"longitude": -92.084824,
"postal_code": "29112",
"state": "Mississippi",
"state_code": "MS",
"street": "626 Main Street"
},
"age": 29,
"api_url": "https://dummyjson.com/users/1",
"bank": {
"card_expire": "05/28",
"card_number": "3693233511855044",
"card_type": "Diners Club International",
"currency": "GBP",
"iban": "GB74MH2UZLR9TRPHYNU8F8"
},
"birth_date": "1996-05-30",
"blood_group": "O-",
"company": {
"address": {
"city": "San Francisco",
"country": "United States",
"latitude": 71.814525,
"longitude": -161.150263,
"postal_code": "37657",
"state": "Wisconsin",
"state_code": "WI",
"street": "263 Tenth Street"
},
"department": "Engineering",
"name": "Dooley, Kozey and Cronin",
"title": "Sales Manager"
},
"crypto": {
"coin": "Bitcoin",
"network": "Ethereum (ERC20)",
"wallet": "0xb9fc2fe63b2a6c003f1c324c3bfa53259162181a"
},
"ein": "977-175",
"email": "emily.johnson@x.dummyjson.com",
"eye_color": "Green",
"first_name": "Emily",
"full_name": "Emily Johnson",
"gender": "female",
"hair": {
"color": "Brown",
"type": "Curly"
},
"height": 193.24,
"id": 1,
"image_url": "https://dummyjson.com/icon/emilys/128",
"ip_address": "42.48.100.32",
"last_name": "Johnson",
"mac_address": "47:fa:41:18:ec:eb",
"maiden_name": "Smith",
"password": "emilyspass",
"phone": "+81 965-431-3024",
"role": "admin",
"ssn": "900-590-289",
"university": "University of Wisconsin--Madison",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
"username": "emilys",
"weight": 63.16
}
]
}Log in as a test user
Log in as one of DummyJSON's fake users and get a real, signed access token (a JWT) and a refresh token, with the user's short profile. Every user's username and password are in their record; user 1 is emilys, password emilyspass. For testing a login flow or a step that needs a bearer token. No API key required.
Inputs
- Username
usernametextRequired - The user's username, from their record. Capitals do not matter.
- Password
passwordtextRequired - The user's password, from their record. Capitals matter. It is fake, like every password DummyJSON holds.
- Access token lifetime (minutes)
expires_in_minutesnumber - Optional. How long the new access token works, in minutes: 60 by default, and up to 43,200 (30 days). The refresh token always lasts 30 days.From 1 to 43200. Default:
60.
Outputs
access_tokentext- A signed JWT. Send it as 'Authorization: Bearer <token>'; Get the logged-in user takes it as it is.
expires_attext- When the access token stops working, as an ISO 8601 timestamp read from the token itself.
expires_in_minutesnumber- How long the access token was asked to last.
refresh_expires_attext- When the refresh token stops working.
refresh_tokentext- What Refresh a login session trades for a new access token. It lasts 30 days.
userobject- The short profile a login answers with. Get the logged-in user has the whole one.
Example output
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJlbWlseXMifQ.4f1n",
"expires_at": "2026-09-24T08:16:36Z",
"expires_in_minutes": 60,
"refresh_expires_at": "2026-10-24T07:16:36Z",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJlbWlseXMifQ.9kq2",
"user": {
"api_url": "https://dummyjson.com/users/1",
"email": "emily.johnson@x.dummyjson.com",
"first_name": "Emily",
"full_name": "Emily Johnson",
"gender": "female",
"id": 1,
"image_url": "https://dummyjson.com/icon/emilys/128",
"last_name": "Johnson",
"username": "emilys"
}
}Make a placeholder image
Get the address of a placeholder image of any size up to 4000 pixels a side, with your own caption, colors, font and format (PNG, JPEG or WebP). The image is made and checked before the address comes back. For mockups, emails and test posts. No API key required.
Inputs
- Width (pixels)
widthnumber - Optional. From 1 to 4000. 150 by default.From 1 to 4000. Default:
150. - Height (pixels)
heightnumber - Optional. From 1 to 4000. The same as the width by default, which makes a square.From 1 to 4000.
- Caption
texttext - Optional. The text in the middle of the image. Its size, like 400 x 200, by default.
- Background color
background_colortext - Optional. A hex color like 008080 or a color name like teal. Light grey (cccccc) by default.
- Text color
text_colortext - Optional. A hex color or a color name. Black or white, whichever stands out on the background, by default.
- Font
fonttext - Optional. The caption's font. Bitter by default.One of:
bitter,cairo,comfortaa,cookie,dosis,gotham,lobster,marhey,pacifico,poppins, and 4 more. - Font size (pixels)
font_sizenumber - Optional. From 1 to 500. By default the caption is sized to fit the width.From 1 to 500.
- Format
image_formattext - Optional. PNG by default.One of:
png,jpg(JPEG),webp. Default:png.
Outputs
content_typetext- The type DummyJSON serves it as, e.g. image/png.
heightnumber- Height, in pixels.
image_formattext- png, jpg or webp.
texttext- The caption it shows.
urltext- The image's address, ready for an <img>, an email or a post. It works for anyone, for good.
widthnumber- Width, in pixels.
Example output
{
"content_type": "image/png",
"height": 200,
"image_format": "png",
"text": "Hello from Lodol",
"url": "https://dummyjson.com/image/400x200?background=008080&text=Hello%20from%20Lodol",
"width": 400
}Make an identicon
Get the address of an identicon: a pattern drawn from any text, the same every time, for a default avatar. DummyJSON's users have these as their avatars, so a username's identicon matches that user's picture. No API key required.
Inputs
- Text
seedtextRequired - What the pattern is drawn from: a username, an email, anything. The same text always draws the same pattern.
- Size (pixels)
sizenumber - Optional. From 1 to 1000. 100 by default.From 1 to 1000. Default:
100. - Format
image_formattext - Optional. PNG by default. DummyJSON labels an SVG image/svg rather than image/svg+xml, which some browsers and mail apps will not show.One of:
png,svg. Default:png.
Outputs
content_typetext- The type DummyJSON serves it as.
image_formattext- png or svg.
seedtext- The text it was drawn from.
sizenumber- Its size, in pixels.
urltext- The identicon's address.
Example output
{
"content_type": "image/png",
"image_format": "png",
"seed": "emilys",
"size": 128,
"url": "https://dummyjson.com/icon/emilys/128"
}Refresh a login session
Trade a refresh token for a new access token and a new refresh token, the way an app keeps someone logged in. No API key required.
Inputs
- Refresh token
refresh_tokentextRequired - The refresh token Log in as a test user, or an earlier refresh, returned.
- Access token lifetime (minutes)
expires_in_minutesnumber - Optional. How long the new access token works, in minutes: 60 by default, and up to 43,200 (30 days). The refresh token always lasts 30 days.From 1 to 43200. Default:
60.
Outputs
access_tokentext- A new signed JWT.
expires_attext- When the new access token stops working.
expires_in_minutesnumber- How long the access token was asked to last.
refresh_expires_attext- When the new refresh token stops working.
refresh_tokentext- A new refresh token, good for 30 days.
Example output
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJlbWlseXMifQ.4f1n",
"expires_at": "2026-09-24T08:16:36Z",
"expires_in_minutes": 60,
"refresh_expires_at": "2026-10-24T07:16:36Z",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJlbWlseXMifQ.9kq2"
}Send a request to a test webhook
Send a request into a test webhook, the way another system would call it: any method, a JSON body and query parameters. For rehearsing a callback, or checking what the webhook records. No API key required.
Inputs
- Test webhook
webhooktextRequired - The test webhook's address or its id, as Create a test webhook returned them, e.g. https://dummyjson.com/webhook/0f02351d. A webhook lasts 24 hours.
- Method
methodtext - Optional. The HTTP method to send. POST by default.One of:
POST,PUT,PATCH,DELETE,GET. Default:POST. - Body
payloadobject - Optional. The JSON body to send: an object or a list. A GET carries none.
- Query parameters
queryobject - Optional. Parameters to add to the address: an object of names and values, or text like source=lodol&attempt=1.
Outputs
expires_attext- When the webhook stops recording.
methodtext- The method sent.
receivedtrue/false- True when the webhook recorded the request.
request_idtext- DummyJSON's id for the recorded request.
webhook_idtext- The webhook's id.
Example output
{
"expires_at": "2026-09-25T06:54:49.956Z",
"method": "POST",
"received": true,
"request_id": "098a1aeb-63e6-40d9-80ac-ee6c2b9750e5",
"webhook_id": "0f02351d"
}Simulate an HTTP status
Have DummyJSON answer with the status code of your choosing, 404, 429 or 503 say, and a message of your own. The answer comes back as a value, or an error status can fail the step, for rehearsing what a workflow does when a service it calls fails. No API key required.
Inputs
- Status code
status_codenumberRequired - The HTTP status to answer with. DummyJSON knows 63 of them, from 200 to 599.From 200 to 599.
- Message
messagetext - Optional. What the answer should say. The status's own name by default, like Not Found.
- Fail the step on an error status
fail_on_errortrue/false - Optional. When on, a status of 400 or more fails the step the way a real failed call would. Off by default, so the status comes back as a value to branch on.Default:
false.
Outputs
messagetext- What the answer said.
oktrue/false- True for a status under 400. The field to branch on.
reasontext- The status's name, e.g. Not Found.
response_bodyobject- The body as DummyJSON sent it: an RFC 7807 problem object for an error status. Null for 204 and 304, which carry none.
status_codenumber- The status DummyJSON answered with.
Example output
{
"message": "Not Found",
"ok": false,
"reason": "Not Found",
"response_body": {
"detail": "Not Found",
"message": "Not Found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
},
"status_code": 404
}Update a product (simulated)
Send a change to a product and get back what a real update would answer, without anything being stored: the product with the fields you set applied. DummyJSON answers with the ten fields a product write can change, so tags, reviews and the like come back empty. No API key required.
Inputs
- Product
product_idnumberRequired - The product's id. DummyJSON publishes 194 products, numbered 1 to 194, and the numbering stays put, so an id from an earlier run still means the same product.At least 1.
- Title
titletext - Optional. The product's new name. Leave blank to keep it.
- Description
descriptiontext - Optional. A paragraph about the product.
- Price
pricenumber - Optional. The price.At least 0.
- Discount (%)
discount_percentagenumber - Optional. The discount on it, as a percentage from 0 to 100.From 0 to 100.
- Stock
stocknumber - Optional. How many are in stock, a whole number.At least 0.
- Rating
ratingnumber - Optional. The average rating, from 0 to 5.From 0 to 5.
- Brand
brandtext - Optional. The brand.
- Category
categorytext - Optional. The category's slug. Pick one of DummyJSON's or type any; a simulated write takes a new one as readily as an existing one.
- Thumbnail URL
thumbnail_urltext - Optional. The address of a small picture of it, starting with https://.
- Image URLs
image_urlslist - Optional. The addresses of its pictures: a list, or text with one address per line.
Outputs
productobject- One product from DummyJSON's catalogue.
simulatedtrue/false- Always true. DummyJSON fakes every write: nothing is stored, changed or removed, and reading the record back gives what was there before.
Example output
{
"product": {
"api_url": "https://dummyjson.com/products/1",
"availability_status": null,
"barcode": null,
"brand": "Essence",
"category": "beauty",
"created_at": null,
"description": "The Essence Mascara Lash Princess is a popular mascara known for its volumizing and lengthening effects.",
"dimensions": {
"depth": null,
"height": null,
"width": null
},
"discount_percentage": 10.48,
"discounted_price": 11.19,
"id": 1,
"image_urls": [
"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"
],
"minimum_order_quantity": null,
"price": 12.5,
"qr_code_url": null,
"rating": 2.56,
"return_policy": null,
"reviews": [],
"shipping_information": null,
"sku": null,
"stock": 99,
"tags": [],
"thumbnail_url": "https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp",
"title": "Essence Mascara Lash Princess",
"updated_at": null,
"warranty_information": null,
"weight": null
},
"simulated": true
}