{"openapi":"3.0.3","info":{"title":"DummyJSON API","version":"0.2.1","description":"Free fake REST API for placeholder JSON data.\n\nMost resources also accept an authenticated prefix: `GET /auth/{resource}` with a Bearer token\n(or `accessToken` cookie) returns the same payload as the public route while simulating a logged-in user.\n\nSingular aliases work too (`/product` ≡ `/products`, `/user` ≡ `/users`, etc.).\n\nHuman-readable docs: https://dummyjson.com/docs","contact":{"name":"DummyJSON","url":"https://dummyjson.com"},"license":{"name":"MIT","url":"https://github.com/Ovi/DummyJSON/blob/master/LICENSE"}},"servers":[{"url":"https://dummyjson.com","description":"Production"}],"tags":[{"name":"Products","description":"Product catalog endpoints"},{"name":"Carts","description":"Shopping cart endpoints"},{"name":"Users","description":"User profile endpoints"},{"name":"Posts","description":"Blog post endpoints"},{"name":"Comments","description":"Comment endpoints"},{"name":"Todos","description":"Todo endpoints"},{"name":"Quotes","description":"Quote endpoints"},{"name":"Recipes","description":"Recipe endpoints"},{"name":"Auth","description":"Login, logout, refresh, and current user"},{"name":"HTTP","description":"Mock HTTP status responses"},{"name":"Test","description":"Connectivity / health check"},{"name":"Image","description":"Placeholder image generator"},{"name":"Icon","description":"Identicon generator"},{"name":"Custom Response","description":"Custom JSON response URLs"},{"name":"IP","description":"Client IP helper"},{"name":"2FA","description":"TOTP generator"},{"name":"Webhook","description":"Temporary webhook inbox"}],"security":[],"paths":{"/products":{"get":{"tags":["Products"],"summary":"Get all products","operationId":"getAllProducts","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"},{"$ref":"#/components/parameters/modifiedAfter"},{"$ref":"#/components/parameters/modifiedBefore"}],"responses":{"200":{"description":"Paginated products","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductList"}}}}}}},"/products/search":{"get":{"tags":["Products"],"summary":"Search products","operationId":"searchProducts","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"},{"$ref":"#/components/parameters/q"},{"$ref":"#/components/parameters/modifiedAfter"},{"$ref":"#/components/parameters/modifiedBefore"}],"responses":{"200":{"description":"Matching products","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductList"}}}}}}},"/products/{id}":{"get":{"tags":["Products"],"summary":"Get a single product","operationId":"getProductById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Products"],"summary":"Update a product","operationId":"updateProduct","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductInput"},"example":{"title":"iPhone Galaxy +1"}}}},"responses":{"200":{"description":"Updated product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Products"],"summary":"Partial update a product","operationId":"patchProduct","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductInput"},"example":{"title":"iPhone Galaxy +1"}}}},"responses":{"200":{"description":"Updated product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Products"],"summary":"Delete a product","operationId":"deleteProduct","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/products/add":{"post":{"tags":["Products"],"summary":"Add a new product","operationId":"addProduct","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductInput"},"example":{"title":"BMW Pencil","price":9.99,"brand":"BMW","category":"stationery"}}}},"responses":{"201":{"description":"Created product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}}}}},"/products/category-list":{"get":{"tags":["Products"],"summary":"Get product category list","operationId":"getProductCategoryList","responses":{"200":{"description":"Category name strings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryList"}}}}}}},"/products/categories":{"get":{"tags":["Products"],"summary":"Get product categories","operationId":"getProductCategories","responses":{"200":{"description":"Category objects with slug and url","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Category"}}}}}}}},"/products/category/{categoryName}":{"get":{"tags":["Products"],"summary":"Get products by category","operationId":"getProductsByCategory","parameters":[{"name":"categoryName","in":"path","required":true,"schema":{"type":"string"},"example":"beauty"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"},{"$ref":"#/components/parameters/modifiedAfter"},{"$ref":"#/components/parameters/modifiedBefore"}],"responses":{"200":{"description":"Products in category","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductList"}}}}}}},"/carts":{"get":{"tags":["Carts"],"summary":"Get all carts","operationId":"getAllCarts","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated carts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartList"}}}}}}},"/carts/{id}":{"get":{"tags":["Carts"],"summary":"Get a single cart","operationId":"getCartById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Carts"],"summary":"Update a cart","operationId":"updateCart","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartInput"},"example":{"merge":true,"products":[{"id":1,"quantity":1}]}}}},"responses":{"200":{"description":"Updated cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Carts"],"summary":"Partial update a cart","operationId":"patchCart","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartInput"},"example":{"merge":true,"products":[{"id":1,"quantity":1}]}}}},"responses":{"200":{"description":"Updated cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Carts"],"summary":"Delete a cart","operationId":"deleteCart","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/carts/add":{"post":{"tags":["Carts"],"summary":"Add a new cart","operationId":"addCart","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/CartInput"},{"required":["userId","products"]}]},"example":{"userId":1,"products":[{"id":144,"quantity":4},{"id":98,"quantity":1}]}}}},"responses":{"201":{"description":"Created cart","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}}}}}},"/carts/user/{userId}":{"get":{"tags":["Carts"],"summary":"Get carts by user id","operationId":"getCartsByUserId","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User carts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartList"}}}}}}},"/users":{"get":{"tags":["Users"],"summary":"Get all users","operationId":"getAllUsers","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}}}}}},"/users/search":{"get":{"tags":["Users"],"summary":"Search users","operationId":"searchUsers","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"},{"$ref":"#/components/parameters/q"}],"responses":{"200":{"description":"Matching users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}}}}}},"/users/{id}":{"get":{"tags":["Users"],"summary":"Get a single user","operationId":"getUserById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Users"],"summary":"Update a user","operationId":"updateUser","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInput"},"example":{"lastName":"Owais"}}}},"responses":{"200":{"description":"Updated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Users"],"summary":"Partial update a user","operationId":"patchUser","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInput"},"example":{"lastName":"Owais"}}}},"responses":{"200":{"description":"Updated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Users"],"summary":"Delete a user","operationId":"deleteUser","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/add":{"post":{"tags":["Users"],"summary":"Add a new user","operationId":"addUser","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInput"},"example":{"firstName":"Muhammad","lastName":"Ovi","age":250}}}},"responses":{"201":{"description":"Created user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/users/login":{"post":{"tags":["Users"],"summary":"Login user (alias of /auth/login)","operationId":"loginUser","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"type":"string","example":"emilys"},"password":{"type":"string","example":"emilyspass"},"expiresInMins":{"type":"integer","example":60}}}}}},"responses":{"200":{"description":"Login success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/me":{"get":{"tags":["Users"],"summary":"Get current authenticated user","operationId":"getCurrentUser","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Authenticated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/filter":{"get":{"tags":["Users"],"summary":"Filter users by key/value","operationId":"filterUsers","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"},"example":"gender"},{"name":"value","in":"query","required":true,"schema":{"type":"string"},"example":"female"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Filtered users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}}}}}},"/users/{userId}/carts":{"get":{"tags":["Users"],"summary":"Get carts for a user","operationId":"getUserCarts","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User carts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartList"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{userId}/posts":{"get":{"tags":["Users"],"summary":"Get posts for a user","operationId":"getUserPosts","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostList"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/users/{userId}/todos":{"get":{"tags":["Users"],"summary":"Get todos for a user","operationId":"getUserTodos","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User todos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoList"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts":{"get":{"tags":["Posts"],"summary":"Get all posts","operationId":"getAllPosts","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostList"}}}}}}},"/posts/search":{"get":{"tags":["Posts"],"summary":"Search posts","operationId":"searchPosts","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"},{"$ref":"#/components/parameters/q"}],"responses":{"200":{"description":"Matching posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostList"}}}}}}},"/posts/{id}":{"get":{"tags":["Posts"],"summary":"Get a single post","operationId":"getPostById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Posts"],"summary":"Update a post","operationId":"updatePost","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostInput"},"example":{"title":"I think I should shift to the moon"}}}},"responses":{"200":{"description":"Updated post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Posts"],"summary":"Partial update a post","operationId":"patchPost","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostInput"},"example":{"title":"I think I should shift to the moon"}}}},"responses":{"200":{"description":"Updated post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Posts"],"summary":"Delete a post","operationId":"deletePost","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/posts/add":{"post":{"tags":["Posts"],"summary":"Add a new post","operationId":"addPost","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PostInput"},{"required":["userId"]}]},"example":{"title":"I am in love with someone.","userId":5}}}},"responses":{"201":{"description":"Created post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}}}}},"/posts/tag-list":{"get":{"tags":["Posts"],"summary":"Get post tag list","operationId":"getPostTagList","responses":{"200":{"description":"Tag name strings","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/posts/tags":{"get":{"tags":["Posts"],"summary":"Get post tags","operationId":"getPostTags","responses":{"200":{"description":"Tag objects with slug and url","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Category"}}}}}}}},"/posts/tag/{tag}":{"get":{"tags":["Posts"],"summary":"Get posts by tag","operationId":"getPostsByTag","parameters":[{"name":"tag","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Posts with tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostList"}}}}}}},"/posts/user/{userId}":{"get":{"tags":["Posts"],"summary":"Get posts by user id","operationId":"getPostsByUserId","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostList"}}}}}}},"/posts/{postId}/comments":{"get":{"tags":["Posts"],"summary":"Get comments for a post","operationId":"getPostComments","parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Post comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}}}}}},"/comments":{"get":{"tags":["Comments"],"summary":"Get all comments","operationId":"getAllComments","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}}}}}},"/comments/{id}":{"get":{"tags":["Comments"],"summary":"Get a single comment","operationId":"getCommentById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Comments"],"summary":"Update a comment","operationId":"updateComment","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentInput"},"example":{"body":"I think I should shift to the moon"}}}},"responses":{"200":{"description":"Updated comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Comments"],"summary":"Partial update a comment","operationId":"patchComment","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentInput"},"example":{"body":"I think I should shift to the moon"}}}},"responses":{"200":{"description":"Updated comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Comments"],"summary":"Delete a comment","operationId":"deleteComment","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/comments/add":{"post":{"tags":["Comments"],"summary":"Add a new comment","operationId":"addComment","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/CommentInput"},{"required":["body","postId","userId"]}]},"example":{"body":"This makes all sense to me!","postId":3,"userId":5}}}},"responses":{"201":{"description":"Created comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}}}}},"/comments/post/{postId}":{"get":{"tags":["Comments"],"summary":"Get comments by post id","operationId":"getCommentsByPostId","parameters":[{"name":"postId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Comments for post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentList"}}}}}}},"/todos":{"get":{"tags":["Todos"],"summary":"Get all todos","operationId":"getAllTodos","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated todos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoList"}}}}}}},"/todos/{id}":{"get":{"tags":["Todos"],"summary":"Get a single todo","operationId":"getTodoById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Todo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Todo"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Todos"],"summary":"Update a todo","operationId":"updateTodo","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoInput"},"example":{"completed":false}}}},"responses":{"200":{"description":"Updated todo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Todo"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Todos"],"summary":"Partial update a todo","operationId":"patchTodo","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoInput"},"example":{"completed":false}}}},"responses":{"200":{"description":"Updated todo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Todo"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Todos"],"summary":"Delete a todo","operationId":"deleteTodo","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted todo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/todos/add":{"post":{"tags":["Todos"],"summary":"Add a new todo","operationId":"addTodo","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/TodoInput"},{"required":["userId"]}]},"example":{"todo":"Use DummyJSON in the project","completed":false,"userId":5}}}},"responses":{"201":{"description":"Created todo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Todo"}}}}}}},"/todos/random":{"get":{"tags":["Todos"],"summary":"Get a random todo","operationId":"getRandomTodo","parameters":[{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Random todo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Todo"}}}}}}},"/todos/random/{length}":{"get":{"tags":["Todos"],"summary":"Get random todos","operationId":"getRandomTodos","parameters":[{"name":"length","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10},"description":"Number of random todos (1–10)."},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Array of random todos","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Todo"}}}}}}}},"/todos/user/{userId}":{"get":{"tags":["Todos"],"summary":"Get todos by user id","operationId":"getTodosByUserId","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"User todos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoList"}}}}}}},"/quotes":{"get":{"tags":["Quotes"],"summary":"Get all quotes","operationId":"getAllQuotes","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated quotes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteList"}}}}}}},"/quotes/{id}":{"get":{"tags":["Quotes"],"summary":"Get a single quote","operationId":"getQuoteById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/quotes/random":{"get":{"tags":["Quotes"],"summary":"Get a random quote","operationId":"getRandomQuote","parameters":[{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Random quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}}}}},"/quotes/random/{length}":{"get":{"tags":["Quotes"],"summary":"Get random quotes","operationId":"getRandomQuotes","parameters":[{"name":"length","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10}},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Array of random quotes","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Quote"}}}}}}}},"/recipes":{"get":{"tags":["Recipes"],"summary":"Get all recipes","operationId":"getAllRecipes","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Paginated recipes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeList"}}}}}}},"/recipes/search":{"get":{"tags":["Recipes"],"summary":"Search recipes","operationId":"searchRecipes","parameters":[{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"},{"$ref":"#/components/parameters/q"}],"responses":{"200":{"description":"Matching recipes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeList"}}}}}}},"/recipes/{id}":{"get":{"tags":["Recipes"],"summary":"Get a single recipe","operationId":"getRecipeById","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Recipe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recipe"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Recipes"],"summary":"Update a recipe","operationId":"updateRecipe","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeInput"},"example":{"name":"Tasty Pizza"}}}},"responses":{"200":{"description":"Updated recipe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recipe"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Recipes"],"summary":"Partial update a recipe","operationId":"patchRecipe","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Any subset of fields. Omitted fields keep their current value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeInput"},"example":{"name":"Tasty Pizza"}}}},"responses":{"200":{"description":"Updated recipe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recipe"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Recipes"],"summary":"Delete a recipe","operationId":"deleteRecipe","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Deleted recipe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedResource"}}}},"404":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recipes/add":{"post":{"tags":["Recipes"],"summary":"Add a new recipe","operationId":"addRecipe","parameters":[{"$ref":"#/components/parameters/delay"}],"requestBody":{"required":true,"description":"Fields for the new resource. The response echoes them back with a generated id; nothing is persisted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeInput"},"example":{"name":"Tasty Pizza","cuisine":"Italian","difficulty":"Easy","servings":4}}}},"responses":{"201":{"description":"Created recipe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recipe"}}}}}}},"/recipes/tags":{"get":{"tags":["Recipes"],"summary":"Get recipe tags","operationId":"getRecipeTags","responses":{"200":{"description":"Unique recipe tags","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/recipes/tag/{tag}":{"get":{"tags":["Recipes"],"summary":"Get recipes by tag","operationId":"getRecipesByTag","parameters":[{"name":"tag","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Recipes with tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeList"}}}}}}},"/recipes/meal-type/{mealType}":{"get":{"tags":["Recipes"],"summary":"Get recipes by meal type","operationId":"getRecipesByMealType","parameters":[{"name":"mealType","in":"path","required":true,"schema":{"type":"string"},"example":"Dinner"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/skip"},{"$ref":"#/components/parameters/select"},{"$ref":"#/components/parameters/sortBy"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/delay"}],"responses":{"200":{"description":"Recipes for meal type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeList"}}}}}}},"/auth/login":{"post":{"tags":["Auth"],"summary":"Login and receive access/refresh tokens","operationId":"authLogin","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"type":"string","example":"emilys"},"password":{"type":"string","example":"emilyspass"},"expiresInMins":{"type":"integer","example":60}}}}}},"responses":{"200":{"description":"Login success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/logout":{"post":{"tags":["Auth"],"summary":"Logout and clear auth cookies","operationId":"authLogout","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Logged out","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Logged out successfully"}}}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/me":{"get":{"tags":["Auth"],"summary":"Get current authenticated user","operationId":"authMe","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"Authenticated user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/refresh":{"post":{"tags":["Auth"],"summary":"Refresh access and refresh tokens","operationId":"authRefresh","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"refreshToken":{"type":"string"},"expiresInMins":{"type":"integer","example":60}}}}}},"responses":{"200":{"description":"New tokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tokens"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/test":{"get":{"tags":["Test"],"summary":"Health / connectivity check","operationId":"testGet","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestStatus"}}}}}},"post":{"tags":["Test"],"summary":"Health check (POST)","operationId":"testPost","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestStatus"}}}}}},"put":{"tags":["Test"],"summary":"Health check (PUT)","operationId":"testPut","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestStatus"}}}}}},"patch":{"tags":["Test"],"summary":"Health check (PATCH)","operationId":"testPatch","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestStatus"}}}}}},"delete":{"tags":["Test"],"summary":"Health check (DELETE)","operationId":"testDelete","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestStatus"}}}}}}},"/http/{httpCode}":{"get":{"tags":["HTTP"],"summary":"Mock an HTTP status code response","operationId":"mockHttpStatus","parameters":[{"name":"httpCode","in":"path","required":true,"schema":{"type":"integer"},"example":200}],"responses":{"default":{"description":"Response with the requested status code","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}}}}}}}}},"/http/{httpCode}/{message}":{"get":{"tags":["HTTP"],"summary":"Mock an HTTP status with a custom message","operationId":"mockHttpStatusWithMessage","parameters":[{"name":"httpCode","in":"path","required":true,"schema":{"type":"integer"}},{"name":"message","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"Response with the requested status code","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}}}}}}}}},"/ip":{"get":{"tags":["IP"],"summary":"Get client IP and user agent","operationId":"getClientIp","responses":{"200":{"description":"Client info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInfo"}}}}}}},"/image/{size}":{"get":{"tags":["Image"],"summary":"Generate a placeholder image","operationId":"generateImage","description":"Optional path segments after size: /image/{size}/{background}/{color}/{type}. Query params `text` and `fontFamily` customize the overlay.","parameters":[{"name":"size","in":"path","required":true,"schema":{"type":"string"},"description":"Width or widthxheight (e.g. 300 or 300x200).","example":"300x200"},{"name":"text","in":"query","schema":{"type":"string"},"description":"Overlay text."},{"name":"fontFamily","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Generated image bytes (or redirect to cached CDN URL)","content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}}}}},"/icon/{hash}/{size}":{"get":{"tags":["Icon"],"summary":"Generate an identicon","operationId":"generateIcon","description":"Hash and size default to DummyJSON and 100 when omitted (`/icon`, `/icon/{hash}`).","parameters":[{"name":"hash","in":"path","required":true,"schema":{"type":"string"},"example":"emilys"},{"name":"size","in":"path","required":true,"schema":{"type":"string"},"example":"128"},{"name":"type","in":"query","schema":{"type":"string","enum":["png","svg"],"default":"png"}}],"responses":{"200":{"description":"Identicon image","content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/svg+xml":{"schema":{"type":"string","format":"binary"}}}}}}},"/c/generate":{"post":{"tags":["Custom Response"],"summary":"Create a custom JSON response URL","operationId":"generateCustomResponse","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["json"],"properties":{"json":{"description":"Arbitrary JSON payload (max 300kb)"},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"default":"GET"}}},"example":{"json":{"message":"Hello from DummyJSON","items":[1,2,3]},"method":"GET"}}}},"responses":{"200":{"description":"Created URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomResponseCreate"}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/c/{identifier}":{"get":{"tags":["Custom Response"],"summary":"Fetch a custom response by identifier","operationId":"getCustomResponse","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Stored JSON payload","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"}}}},"/2fa":{"get":{"tags":["2FA"],"summary":"Generate a TOTP code (query) or render the 2FA tool page","operationId":"generateTotpGet","parameters":[{"name":"key","in":"query","schema":{"type":"string"},"description":"Base32 secret or otpauth:// URI. When omitted, returns the HTML tool page."}],"responses":{"200":{"description":"TOTP payload or HTML page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotpResponse"}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["2FA"],"summary":"Generate a TOTP code","operationId":"generateTotpPost","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","description":"Base32 secret or otpauth:// URI","example":"JBSWY3DPEHPK3PXP"}}}}}},"responses":{"200":{"description":"TOTP payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotpResponse"}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook/create":{"post":{"tags":["Webhook"],"summary":"Create a temporary webhook inbox","operationId":"createWebhook","responses":{"200":{"description":"Webhook created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}}}}}},"/webhook/{identifier}/requests":{"get":{"tags":["Webhook"],"summary":"List captured requests for a webhook","operationId":"listWebhookRequests","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Captured requests","content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"requests":{"type":"array","items":{"type":"object"}}}}}}},"404":{"description":"Not found"}}}},"/webhook/{identifier}/requests/{requestId}":{"delete":{"tags":["Webhook"],"summary":"Delete a captured webhook request","operationId":"deleteWebhookRequest","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}},{"name":"requestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","example":true}}}}}},"404":{"description":"Not found"}}}},"/webhook/{identifier}":{"get":{"tags":["Webhook"],"summary":"Inspect webhook (HTML) or ingest a GET request","operationId":"getWebhook","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"HTML inspector or ingest acknowledgement","content":{"text/html":{"schema":{"type":"string"}},"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIngest"}}}},"404":{"description":"Not found"}}},"post":{"tags":["Webhook"],"summary":"Ingest a POST into the webhook inbox","operationId":"ingestWebhookPost","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Received","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIngest"}}}},"404":{"description":"Not found"}}},"put":{"tags":["Webhook"],"summary":"Ingest a PUT into the webhook inbox","operationId":"ingestWebhookPut","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Received","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIngest"}}}},"404":{"description":"Not found"}}},"patch":{"tags":["Webhook"],"summary":"Ingest a PATCH into the webhook inbox","operationId":"ingestWebhookPatch","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Received","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIngest"}}}},"404":{"description":"Not found"}}},"delete":{"tags":["Webhook"],"summary":"Ingest a DELETE into the webhook inbox","operationId":"ingestWebhookDelete","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Received","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIngest"}}}},"404":{"description":"Not found"}}}}},"components":{"parameters":{"limit":{"name":"limit","in":"query","schema":{"type":"integer","minimum":0,"default":30},"description":"Items per page. Use 0 to return all items."},"skip":{"name":"skip","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Number of items to skip."},"select":{"name":"select","in":"query","schema":{"type":"string"},"description":"Comma-separated fields to include (id is always included).","example":"title,price"},"sortBy":{"name":"sortBy","in":"query","schema":{"type":"string"},"description":"Field to sort by.","example":"title"},"order":{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"asc"},"description":"Sort order."},"delay":{"name":"delay","in":"query","schema":{"type":"integer","minimum":0,"maximum":5000},"description":"Artificial response delay in milliseconds (0–5000)."},"q":{"name":"q","in":"query","schema":{"type":"string"},"description":"Search query.","example":"phone"},"modifiedAfter":{"name":"modifiedAfter","in":"query","schema":{"type":"string","format":"date-time"},"description":"ISO 8601 date; return items updated after this time."},"modifiedBefore":{"name":"modifiedBefore","in":"query","schema":{"type":"string","format":"date-time"},"description":"ISO 8601 date; return items updated before this time."},"id":{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Resource id."}},"schemas":{"Product":{"type":"object","properties":{"id":{"type":"integer","example":1},"title":{"type":"string","example":"Essence Mascara Lash Princess"},"description":{"type":"string","example":"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":{"type":"string","example":"beauty"},"price":{"type":"number","example":9.99},"discountPercentage":{"type":"number","example":10.48},"rating":{"type":"number","example":2.56},"stock":{"type":"integer","example":99},"tags":{"type":"array","items":{"type":"string","example":"beauty"}},"brand":{"type":"string","example":"Essence"},"sku":{"type":"string","example":"BEA-ESS-ESS-001"},"weight":{"type":"integer","example":4},"dimensions":{"type":"object","properties":{"width":{"type":"number","example":15.14},"height":{"type":"number","example":13.08},"depth":{"type":"number","example":22.99}}},"warrantyInformation":{"type":"string","example":"1 week warranty"},"shippingInformation":{"type":"string","example":"Ships in 3-5 business days"},"availabilityStatus":{"type":"string","example":"In Stock"},"reviews":{"type":"array","items":{"type":"object","properties":{"rating":{"type":"integer","example":3},"comment":{"type":"string","example":"Would not recommend!"},"date":{"type":"string","example":"2025-04-30T09:41:02.053Z"},"reviewerName":{"type":"string","example":"Eleanor Collins"},"reviewerEmail":{"type":"string","example":"eleanor.collins@x.dummyjson.com"}}}},"returnPolicy":{"type":"string","example":"No return policy"},"minimumOrderQuantity":{"type":"integer","example":48},"meta":{"type":"object","properties":{"createdAt":{"type":"string","example":"2025-10-09T14:47:01.588Z"},"updatedAt":{"type":"string","example":"2026-05-23T11:27:41.868Z"},"barcode":{"type":"string","example":"5784719087687"},"qrCode":{"type":"string","example":"https://cdn.dummyjson.com/public/qr-code.png"}}},"images":{"type":"array","items":{"type":"string","example":"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"}},"thumbnail":{"type":"string","example":"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp"}}},"ProductList":{"type":"object","properties":{"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"Cart":{"type":"object","properties":{"id":{"type":"integer","example":1},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":162},"title":{"type":"string","example":"Blue Frock"},"price":{"type":"number","example":29.99},"quantity":{"type":"integer","example":4},"total":{"type":"number","example":119.96},"discountPercentage":{"type":"number","example":12.13},"discountedTotal":{"type":"number","example":105.41},"thumbnail":{"type":"string","example":"https://cdn.dummyjson.com/product-images/tops/blue-frock/thumbnail.webp"}}}},"total":{"type":"number","example":13037.88},"discountedTotal":{"type":"number","example":11510.81},"userId":{"type":"integer","example":1},"totalProducts":{"type":"integer","example":4},"totalQuantity":{"type":"integer","example":12}}},"CartList":{"type":"object","properties":{"carts":{"type":"array","items":{"$ref":"#/components/schemas/Cart"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"User":{"type":"object","properties":{"id":{"type":"integer","example":1},"firstName":{"type":"string","example":"Emily"},"lastName":{"type":"string","example":"Johnson"},"maidenName":{"type":"string","example":"Smith"},"age":{"type":"integer","example":29},"gender":{"type":"string","example":"female"},"email":{"type":"string","example":"emily.johnson@x.dummyjson.com"},"phone":{"type":"string","example":"+81 965-431-3024"},"username":{"type":"string","example":"emilys"},"password":{"type":"string","example":"emilyspass"},"birthDate":{"type":"string","example":"1996-5-30"},"image":{"type":"string","example":"https://dummyjson.com/icon/emilys/128"},"bloodGroup":{"type":"string","example":"O-"},"height":{"type":"number","example":193.24},"weight":{"type":"number","example":63.16},"eyeColor":{"type":"string","example":"Green"},"hair":{"type":"object","properties":{"color":{"type":"string","example":"Brown"},"type":{"type":"string","example":"Curly"}}},"ip":{"type":"string","example":"42.48.100.32"},"address":{"type":"object","properties":{"address":{"type":"string","example":"626 Main Street"},"city":{"type":"string","example":"Phoenix"},"state":{"type":"string","example":"Mississippi"},"stateCode":{"type":"string","example":"MS"},"postalCode":{"type":"string","example":"29112"},"coordinates":{"type":"object","properties":{"lat":{"type":"number","example":-77.16213},"lng":{"type":"number","example":-92.084824}}},"country":{"type":"string","example":"United States"}}},"macAddress":{"type":"string","example":"47:fa:41:18:ec:eb"},"university":{"type":"string","example":"University of Wisconsin--Madison"},"bank":{"type":"object","properties":{"cardExpire":{"type":"string","example":"05/28"},"cardNumber":{"type":"string","example":"3693233511855044"},"cardType":{"type":"string","example":"Diners Club International"},"currency":{"type":"string","example":"GBP"},"iban":{"type":"string","example":"GB74MH2UZLR9TRPHYNU8F8"}}},"company":{"type":"object","properties":{"department":{"type":"string","example":"Engineering"},"name":{"type":"string","example":"Dooley, Kozey and Cronin"},"title":{"type":"string","example":"Sales Manager"},"address":{"type":"object","properties":{"address":{"type":"string","example":"263 Tenth Street"},"city":{"type":"string","example":"San Francisco"},"state":{"type":"string","example":"Wisconsin"},"stateCode":{"type":"string","example":"WI"},"postalCode":{"type":"string","example":"37657"},"coordinates":{"type":"object","properties":{"lat":{"type":"number","example":71.814525},"lng":{"type":"number","example":-161.150263}}},"country":{"type":"string","example":"United States"}}}}},"ein":{"type":"string","example":"977-175"},"ssn":{"type":"string","example":"900-590-289"},"userAgent":{"type":"string","example":"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"},"crypto":{"type":"object","properties":{"coin":{"type":"string","example":"Bitcoin"},"wallet":{"type":"string","example":"0xb9fc2fe63b2a6c003f1c324c3bfa53259162181a"},"network":{"type":"string","example":"Ethereum (ERC20)"}}},"role":{"type":"string","example":"admin"}}},"UserList":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"Post":{"type":"object","properties":{"id":{"type":"integer","example":1},"title":{"type":"string","example":"His mother had always taught him"},"body":{"type":"string","example":"His mother had always taught him not to ever think of himself as better than others. He'd tried to live by this motto. He never looked down on those who were less fortunate or who had less money than him. But the stupidity of the group of people he was talking to made him change his mind."},"tags":{"type":"array","items":{"type":"string","example":"history"}},"reactions":{"type":"object","properties":{"likes":{"type":"integer","example":192},"dislikes":{"type":"integer","example":25}}},"views":{"type":"integer","example":305},"userId":{"type":"integer","example":121}}},"PostList":{"type":"object","properties":{"posts":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"Comment":{"type":"object","properties":{"id":{"type":"integer","example":1},"body":{"type":"string","example":"This is some awesome thinking!"},"postId":{"type":"integer","example":242},"likes":{"type":"integer","example":3},"user":{"type":"object","properties":{"id":{"type":"integer","example":105},"username":{"type":"string","example":"emmac"},"fullName":{"type":"string","example":"Emma Wilson"}}}}},"CommentList":{"type":"object","properties":{"comments":{"type":"array","items":{"$ref":"#/components/schemas/Comment"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"Todo":{"type":"object","properties":{"id":{"type":"integer","example":1},"todo":{"type":"string","example":"Do something nice for someone you care about"},"completed":{"type":"boolean","example":false},"userId":{"type":"integer","example":152}}},"TodoList":{"type":"object","properties":{"todos":{"type":"array","items":{"$ref":"#/components/schemas/Todo"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"Quote":{"type":"object","properties":{"id":{"type":"integer","example":1},"quote":{"type":"string","example":"Your heart is the size of an ocean. Go find yourself in its hidden depths."},"author":{"type":"string","example":"Rumi"}}},"QuoteList":{"type":"object","properties":{"quotes":{"type":"array","items":{"$ref":"#/components/schemas/Quote"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"Recipe":{"type":"object","properties":{"id":{"type":"integer","example":1},"name":{"type":"string","example":"Classic Margherita Pizza"},"ingredients":{"type":"array","items":{"type":"string","example":"Pizza dough"}},"instructions":{"type":"array","items":{"type":"string","example":"Preheat the oven to 475°F (245°C)."}},"prepTimeMinutes":{"type":"integer","example":20},"cookTimeMinutes":{"type":"integer","example":15},"servings":{"type":"integer","example":4},"difficulty":{"type":"string","example":"Easy"},"cuisine":{"type":"string","example":"Italian"},"caloriesPerServing":{"type":"integer","example":300},"tags":{"type":"array","items":{"type":"string","example":"Pizza"}},"userId":{"type":"integer","example":166},"image":{"type":"string","example":"https://cdn.dummyjson.com/recipe-images/1.webp"},"rating":{"type":"number","example":4.6},"reviewCount":{"type":"integer","example":98},"mealType":{"type":"array","items":{"type":"string","example":"Dinner"}}}},"RecipeList":{"type":"object","properties":{"recipes":{"type":"array","items":{"$ref":"#/components/schemas/Recipe"}},"total":{"type":"integer","example":0},"skip":{"type":"integer","example":0},"limit":{"type":"integer","example":30}}},"ProductInput":{"type":"object","properties":{"title":{"type":"string","example":"Essence Mascara Lash Princess"},"description":{"type":"string","example":"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":{"type":"string","example":"beauty"},"price":{"type":"number","example":9.99},"discountPercentage":{"type":"number","example":10.48},"rating":{"type":"number","example":2.56},"stock":{"type":"integer","example":99},"brand":{"type":"string","example":"Essence"},"thumbnail":{"type":"string","example":"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/thumbnail.webp"},"images":{"type":"array","items":{"type":"string","example":"https://cdn.dummyjson.com/product-images/beauty/essence-mascara-lash-princess/1.webp"}}}},"CartInput":{"type":"object","properties":{"userId":{"type":"integer","example":1},"products":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"Product id","example":144},"quantity":{"type":"integer","minimum":1,"default":1,"example":4}}}},"merge":{"type":"boolean","default":false,"description":"PUT/PATCH only: keep the existing cart products and add the new ones."}}},"UserInput":{"type":"object","properties":{"firstName":{"type":"string","example":"Emily"},"lastName":{"type":"string","example":"Johnson"},"maidenName":{"type":"string","example":"Smith"},"age":{"type":"integer","example":29},"gender":{"type":"string","example":"female"},"email":{"type":"string","example":"emily.johnson@x.dummyjson.com"},"phone":{"type":"string","example":"+81 965-431-3024"},"username":{"type":"string","example":"emilys"},"password":{"type":"string","example":"emilyspass"},"birthDate":{"type":"string","example":"1996-5-30"},"image":{"type":"string","example":"https://dummyjson.com/icon/emilys/128"},"bloodGroup":{"type":"string","example":"O-"},"height":{"type":"number","example":193.24},"weight":{"type":"number","example":63.16},"eyeColor":{"type":"string","example":"Green"},"hair":{"type":"object","properties":{"color":{"type":"string","example":"Brown"},"type":{"type":"string","example":"Curly"}}},"ip":{"type":"string","example":"42.48.100.32"},"address":{"type":"object","properties":{"address":{"type":"string","example":"626 Main Street"},"city":{"type":"string","example":"Phoenix"},"state":{"type":"string","example":"Mississippi"},"stateCode":{"type":"string","example":"MS"},"postalCode":{"type":"string","example":"29112"},"coordinates":{"type":"object","properties":{"lat":{"type":"number","example":-77.16213},"lng":{"type":"number","example":-92.084824}}},"country":{"type":"string","example":"United States"}}},"macAddress":{"type":"string","example":"47:fa:41:18:ec:eb"},"university":{"type":"string","example":"University of Wisconsin--Madison"},"bank":{"type":"object","properties":{"cardExpire":{"type":"string","example":"05/28"},"cardNumber":{"type":"string","example":"3693233511855044"},"cardType":{"type":"string","example":"Diners Club International"},"currency":{"type":"string","example":"GBP"},"iban":{"type":"string","example":"GB74MH2UZLR9TRPHYNU8F8"}}},"company":{"type":"object","properties":{"department":{"type":"string","example":"Engineering"},"name":{"type":"string","example":"Dooley, Kozey and Cronin"},"title":{"type":"string","example":"Sales Manager"},"address":{"type":"object","properties":{"address":{"type":"string","example":"263 Tenth Street"},"city":{"type":"string","example":"San Francisco"},"state":{"type":"string","example":"Wisconsin"},"stateCode":{"type":"string","example":"WI"},"postalCode":{"type":"string","example":"37657"},"coordinates":{"type":"object","properties":{"lat":{"type":"number","example":71.814525},"lng":{"type":"number","example":-161.150263}}},"country":{"type":"string","example":"United States"}}}}},"ein":{"type":"string","example":"977-175"},"ssn":{"type":"string","example":"900-590-289"},"userAgent":{"type":"string","example":"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"},"crypto":{"type":"object","properties":{"coin":{"type":"string","example":"Bitcoin"},"wallet":{"type":"string","example":"0xb9fc2fe63b2a6c003f1c324c3bfa53259162181a"},"network":{"type":"string","example":"Ethereum (ERC20)"}}},"role":{"type":"string","example":"admin"}}},"PostInput":{"type":"object","properties":{"title":{"type":"string","example":"His mother had always taught him"},"body":{"type":"string","example":"His mother had always taught him not to ever think of himself as better than others. He'd tried to live by this motto. He never looked down on those who were less fortunate or who had less money than him. But the stupidity of the group of people he was talking to made him change his mind."},"userId":{"type":"integer","example":121},"tags":{"type":"array","items":{"type":"string","example":"history"}},"reactions":{"type":"object","properties":{"likes":{"type":"integer","example":192},"dislikes":{"type":"integer","example":25}}}}},"CommentInput":{"type":"object","properties":{"body":{"type":"string","example":"This makes all sense to me!"},"postId":{"type":"integer","example":3},"userId":{"type":"integer","example":5}}},"TodoInput":{"type":"object","properties":{"todo":{"type":"string","example":"Do something nice for someone you care about"},"completed":{"type":"boolean","example":false},"userId":{"type":"integer","example":152}}},"RecipeInput":{"type":"object","properties":{"name":{"type":"string","example":"Classic Margherita Pizza"},"ingredients":{"type":"array","items":{"type":"string","example":"Pizza dough"}},"instructions":{"type":"array","items":{"type":"string","example":"Preheat the oven to 475°F (245°C)."}},"prepTimeMinutes":{"type":"integer","example":20},"cookTimeMinutes":{"type":"integer","example":15},"servings":{"type":"integer","example":4},"difficulty":{"type":"string","example":"Easy"},"cuisine":{"type":"string","example":"Italian"},"caloriesPerServing":{"type":"integer","example":300},"tags":{"type":"array","items":{"type":"string","example":"Pizza"}},"userId":{"type":"integer","example":166},"image":{"type":"string","example":"https://cdn.dummyjson.com/recipe-images/1.webp"},"rating":{"type":"number","example":4.6},"reviewCount":{"type":"integer","example":98},"mealType":{"type":"array","items":{"type":"string","example":"Dinner"}}}},"AuthUser":{"type":"object","properties":{"id":{"type":"integer","example":1},"username":{"type":"string","example":"emilys"},"email":{"type":"string","example":"emily.johnson@x.dummyjson.com"},"firstName":{"type":"string","example":"Emily"},"lastName":{"type":"string","example":"Johnson"},"gender":{"type":"string","example":"female"},"image":{"type":"string","example":"https://dummyjson.com/icon/emilys/128"}}},"LoginResponse":{"allOf":[{"$ref":"#/components/schemas/AuthUser"},{"type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"}}}]},"Tokens":{"type":"object","properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"}}},"DeletedResource":{"type":"object","properties":{"id":{"type":"integer"},"isDeleted":{"type":"boolean","example":true},"deletedOn":{"type":"string","format":"date-time"}},"additionalProperties":true},"Error":{"type":"object","properties":{"message":{"type":"string","example":"Something went wrong."}}},"ClientInfo":{"type":"object","properties":{"ip":{"type":"string","example":"127.0.0.1"},"userAgent":{"type":"string","example":"Mozilla/5.0 ..."}}},"TestStatus":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"method":{"type":"string","example":"GET"}}},"TotpResponse":{"type":"object","properties":{"totp":{"type":"string","example":"123456"},"expiresIn":{"type":"integer","example":25},"period":{"type":"integer","example":30}}},"CustomResponseCreate":{"type":"object","properties":{"url":{"type":"string","example":"https://dummyjson.com/c/abc-123"}}},"WebhookCreate":{"type":"object","properties":{"identifier":{"type":"string"},"url":{"type":"string","example":"https://dummyjson.com/webhook/abc"},"expiresAt":{"type":"string","format":"date-time"}}},"WebhookIngest":{"type":"object","properties":{"received":{"type":"boolean","example":true},"requestId":{"type":"string","format":"uuid"}}},"CategoryList":{"type":"array","items":{"type":"string"},"example":["beauty","fragrances","furniture","groceries","home-decoration"]},"Category":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Access token from /auth/login"},"cookieAuth":{"type":"apiKey","in":"cookie","name":"accessToken","description":"HttpOnly cookie set by /auth/login"}}}}