Resources
Products
Writes are simulated
POST, PUT, PATCH, and DELETE validate your input and return realistic responses, but the shared dataset is never modified.
Endpoints
- GET
/productsList products - GET
/products/searchSearch products - GET
/products/categoriesList product categories - GET
/products/category/{category}List products in a category - GET
/products/{id}Get a product - POST
/productsCreate a product (simulated) - PUT
/products/{id}Replace a product (simulated) - PATCH
/products/{id}Update a product (simulated) - DELETE
/products/{id}Delete a product (simulated)
The product object
Use select to return a subset of these fields. Sort with sortBy on id, title, price, rating, stock, discountPercentage; search matches title, description, brand, category, tags. See query parameters.
| Field | Type | Notes |
|---|---|---|
id | integer | min -9007199254740991, max 9007199254740991 |
title | string | |
description | string | |
category | string | |
brand | string | |
price | number | |
discountPercentage | number | |
rating | number | |
stock | integer | min -9007199254740991, max 9007199254740991 |
sku | string | |
tags | string[] | |
availabilityStatus | "In Stock" | "Low Stock" | "Out of Stock" | |
thumbnail | string |
List products
/api/v1/productsReturns a paginated list of products. Supports pagination, field selection, sorting, and filtering.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
limit | query | integer | Number of records to return (1-100).Default: 30Range: 1-100 |
skip | query | integer | Number of records to skip before returning results.Default: 0Range: 0-1000000 |
select | query | string | Comma-separated list of fields to return. id is always included. Allowed: id, title, description, category, brand, price, discountPercentage, rating, stock, sku, tags, availabilityStatus, thumbnail. |
sortBy | query | string | Field to sort by.One of: id, title, price, rating, stock, discountPercentageDefault: id |
order | query | string | Sort direction.One of: asc, descDefault: asc |
category | query | string | Filter by category slug. |
brand | query | string | Filter by brand (case-insensitive exact match). |
availabilityStatus | query | string | Filter by stock availability.One of: In Stock, Low Stock, Out of Stock |
minPrice | query | number | Minimum price (inclusive). |
maxPrice | query | number | Maximum price (inclusive). |
minRating | query | number | Minimum rating (inclusive). |
delay | query | integer | Delay the response by this many milliseconds (0-5000). Subject to a stricter rate limit.Range: 0-5000 |
Status codes
- 200A page of products with
total,skip, andlimitmetadata. - 400Invalid path or query parameter (
INVALID_PARAMETER/INVALID_ID). - 429Too many requests from this IP (
RATE_LIMIT_EXCEEDED). - 503The database is temporarily unavailable (
SERVICE_UNAVAILABLE).
Request
curl 'https://test.naimulhassan.me/api/v1/products?limit=2'Example responses
Captured from the real API with the requests shown on this page.
{
"products": [
{
"id": 1,
"title": "Lumio Nova X5 Smartphone",
"description": "The Lumio Nova X5 Smartphone features all-day battery life and water and dust resistance. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 1190.99,
"discountPercentage": 21.56,
"rating": 2.9,
"stock": 50,
"sku": "SMA-LUM-0001",
"tags": [
"mobile",
"5g",
"electronics"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/1"
},
{
"id": 2,
"title": "Lumio Nova X5 Pro Smartphone",
"description": "The Lumio Nova X5 Pro Smartphone features water and dust resistance and a dual-lens camera system. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 306.99,
"discountPercentage": 9.03,
"rating": 4.4,
"stock": 146,
"sku": "SMA-LUM-0002",
"tags": [
"mobile",
"5g"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/2"
}
],
"total": 100,
"skip": 0,
"limit": 2
}Try it
Search products
/api/v1/products/searchCase-insensitive search across title, description, brand, category, tags. Returns an empty products array with total: 0 when nothing matches.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
qrequired | query | string | Search term (1-100 characters). |
limit | query | integer | Number of records to return (1-100).Default: 30Range: 1-100 |
skip | query | integer | Number of records to skip before returning results.Default: 0Range: 0-1000000 |
select | query | string | Comma-separated list of fields to return. id is always included. Allowed: id, title, description, category, brand, price, discountPercentage, rating, stock, sku, tags, availabilityStatus, thumbnail. |
sortBy | query | string | Field to sort by.One of: id, title, price, rating, stock, discountPercentageDefault: id |
order | query | string | Sort direction.One of: asc, descDefault: asc |
delay | query | integer | Delay the response by this many milliseconds (0-5000). Subject to a stricter rate limit.Range: 0-5000 |
Status codes
- 200Matching products (possibly empty).
- 400Missing or invalid
qparameter (INVALID_PARAMETER). - 429Too many requests from this IP (
RATE_LIMIT_EXCEEDED).
Request
curl 'https://test.naimulhassan.me/api/v1/products/search?q=phone&limit=2'Example responses
Captured from the real API with the requests shown on this page.
{
"products": [
{
"id": 1,
"title": "Lumio Nova X5 Smartphone",
"description": "The Lumio Nova X5 Smartphone features all-day battery life and water and dust resistance. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 1190.99,
"discountPercentage": 21.56,
"rating": 2.9,
"stock": 50,
"sku": "SMA-LUM-0001",
"tags": [
"mobile",
"5g",
"electronics"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/1"
},
{
"id": 2,
"title": "Lumio Nova X5 Pro Smartphone",
"description": "The Lumio Nova X5 Pro Smartphone features water and dust resistance and a dual-lens camera system. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 306.99,
"discountPercentage": 9.03,
"rating": 4.4,
"stock": 146,
"sku": "SMA-LUM-0002",
"tags": [
"mobile",
"5g"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/2"
}
],
"total": 18,
"skip": 0,
"limit": 2
}Try it
List product categories
/api/v1/products/categoriesReturns every product category with a display name and product count.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
delay | query | integer | Delay the response by this many milliseconds (0-5000). Subject to a stricter rate limit.Range: 0-5000 |
Status codes
- 200All categories.
Request
curl 'https://test.naimulhassan.me/api/v1/products/categories'Example responses
Captured from the real API with the requests shown on this page.
{
"categories": [
{
"slug": "audio",
"name": "Audio",
"productCount": 10
},
{
"slug": "beauty",
"name": "Beauty",
"productCount": 10
},
{
"slug": "furniture",
"name": "Furniture",
"productCount": 10
},
{
"slug": "groceries",
"name": "Groceries",
"productCount": 10
},
{
"slug": "kitchen-accessories",
"name": "Kitchen Accessories",
"productCount": 10
},
{
"slug": "laptops",
"name": "Laptops",
"productCount": 10
},
{
"slug": "smartphones",
"name": "Smartphones",
"productCount": 10
},
{
"slug": "sports-accessories",
"name": "Sports Accessories",
"productCount": 10
},
{
"slug": "tablets",
"name": "Tablets",
"productCount": 10
},
{
"slug": "wearables",
"name": "Wearables",
"productCount": 10
}
],
"total": 10
}Try it
List products in a category
/api/v1/products/category/{category}Returns products in the given category. Unknown categories return 404.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
categoryrequired | path | string | Category slug. |
limit | query | integer | Number of records to return (1-100).Default: 30Range: 1-100 |
skip | query | integer | Number of records to skip before returning results.Default: 0Range: 0-1000000 |
select | query | string | Comma-separated list of fields to return. id is always included. Allowed: id, title, description, category, brand, price, discountPercentage, rating, stock, sku, tags, availabilityStatus, thumbnail. |
sortBy | query | string | Field to sort by.One of: id, title, price, rating, stock, discountPercentageDefault: id |
order | query | string | Sort direction.One of: asc, descDefault: asc |
delay | query | integer | Delay the response by this many milliseconds (0-5000). Subject to a stricter rate limit.Range: 0-5000 |
Status codes
- 200A page of products in the category.
- 400Invalid path or query parameter (
INVALID_PARAMETER/INVALID_ID). - 404Unknown category (
RESOURCE_NOT_FOUND).
Request
curl 'https://test.naimulhassan.me/api/v1/products/category/smartphones?limit=2'Example responses
Captured from the real API with the requests shown on this page.
{
"products": [
{
"id": 1,
"title": "Lumio Nova X5 Smartphone",
"description": "The Lumio Nova X5 Smartphone features all-day battery life and water and dust resistance. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 1190.99,
"discountPercentage": 21.56,
"rating": 2.9,
"stock": 50,
"sku": "SMA-LUM-0001",
"tags": [
"mobile",
"5g",
"electronics"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/1"
},
{
"id": 2,
"title": "Lumio Nova X5 Pro Smartphone",
"description": "The Lumio Nova X5 Pro Smartphone features water and dust resistance and a dual-lens camera system. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 306.99,
"discountPercentage": 9.03,
"rating": 4.4,
"stock": 146,
"sku": "SMA-LUM-0002",
"tags": [
"mobile",
"5g"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/2"
}
],
"total": 10,
"skip": 0,
"limit": 2
}Try it
Get a product
/api/v1/products/{id}Returns a single product by its numeric ID.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | integer | Numeric product ID (positive integer).Min: 1 |
select | query | string | Comma-separated list of fields to return. id is always included. Allowed: id, title, description, category, brand, price, discountPercentage, rating, stock, sku, tags, availabilityStatus, thumbnail. |
delay | query | integer | Delay the response by this many milliseconds (0-5000). Subject to a stricter rate limit.Range: 0-5000 |
Status codes
- 200The product object.
- 400Invalid path or query parameter (
INVALID_PARAMETER/INVALID_ID). - 404No record exists with that ID (
RESOURCE_NOT_FOUND).
Request
curl 'https://test.naimulhassan.me/api/v1/products/1'Example responses
Captured from the real API with the requests shown on this page.
{
"id": 1,
"title": "Lumio Nova X5 Smartphone",
"description": "The Lumio Nova X5 Smartphone features all-day battery life and water and dust resistance. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 1190.99,
"discountPercentage": 21.56,
"rating": 2.9,
"stock": 50,
"sku": "SMA-LUM-0001",
"tags": [
"mobile",
"5g",
"electronics"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/1"
}Try it
Create a product (simulated)
/api/v1/productsValidates the body and returns the product as it would be created, with the next available ID. Nothing is persisted: the shared dataset is never modified.
Headers
| Name | In | Type | Description |
|---|---|---|---|
Content-Typerequired | header | string | Must be application/json. |
Request body
Products fields.
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | Yes | min length 1, max length 120 |
description | string | No | min length 1, max length 1000 |
category | string | No | |
brand | string | No | min length 1, max length 60 |
price | number | Yes | min 0, max 1000000 |
discountPercentage | number | No | min 0, max 100 |
stock | integer | No | min 0, max 1000000 |
tags | string[] | No |
Status codes
- 201The simulated product, including its new
id. - 400The request body is not valid JSON (
INVALID_JSON). - 422The JSON body failed validation (
VALIDATION_ERROR).
Request
curl -X POST 'https://test.naimulhassan.me/api/v1/products' \
-H 'Content-Type: application/json' \
-d '{
"title": "Trail Runner Water Bottle",
"category": "sports-accessories",
"brand": "Peakline",
"price": 18.5,
"stock": 40
}'Example responses
Captured from the real API with the requests shown on this page.
{
"id": 101,
"title": "Trail Runner Water Bottle",
"category": "sports-accessories",
"brand": "Peakline",
"price": 18.5,
"stock": 40
}Try it
Replace a product (simulated)
/api/v1/products/{id}Validates a complete replacement body and returns the resulting product. The stored record is not changed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | integer | Numeric product ID (positive integer).Min: 1 |
Headers
| Name | In | Type | Description |
|---|---|---|---|
Content-Typerequired | header | string | Must be application/json. |
Request body
Complete product representation.
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | Yes | min length 1, max length 120 |
description | string | No | min length 1, max length 1000 |
category | string | No | |
brand | string | No | min length 1, max length 60 |
price | number | Yes | min 0, max 1000000 |
discountPercentage | number | No | min 0, max 100 |
stock | integer | No | min 0, max 1000000 |
tags | string[] | No |
Status codes
- 200The replaced product.
- 400Invalid path or query parameter (
INVALID_PARAMETER/INVALID_ID). - 404No record exists with that ID (
RESOURCE_NOT_FOUND). - 422The JSON body failed validation (
VALIDATION_ERROR).
Request
curl -X PUT 'https://test.naimulhassan.me/api/v1/products/1' \
-H 'Content-Type: application/json' \
-d '{
"title": "Nova X5 Smartphone (2026 Edition)",
"category": "smartphones",
"brand": "Lumio",
"price": 649,
"stock": 25
}'Example responses
Captured from the real API with the requests shown on this page.
{
"id": 1,
"title": "Nova X5 Smartphone (2026 Edition)",
"category": "smartphones",
"brand": "Lumio",
"price": 649,
"stock": 25
}Try it
Update a product (simulated)
/api/v1/products/{id}Merges the provided fields into the existing product and returns the result. The stored record is not changed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | integer | Numeric product ID (positive integer).Min: 1 |
Headers
| Name | In | Type | Description |
|---|---|---|---|
Content-Typerequired | header | string | Must be application/json. |
Request body
Any subset of product fields.
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | No | min length 1, max length 120 |
description | string | No | min length 1, max length 1000 |
category | string | No | |
brand | string | No | min length 1, max length 60 |
price | number | No | min 0, max 1000000 |
discountPercentage | number | No | min 0, max 100 |
stock | integer | No | min 0, max 1000000 |
tags | string[] | No |
Status codes
- 200The updated product.
- 400Invalid path or query parameter (
INVALID_PARAMETER/INVALID_ID). - 404No record exists with that ID (
RESOURCE_NOT_FOUND). - 422The JSON body failed validation (
VALIDATION_ERROR).
Request
curl -X PATCH 'https://test.naimulhassan.me/api/v1/products/1' \
-H 'Content-Type: application/json' \
-d '{
"price": 599.99
}'Example responses
Captured from the real API with the requests shown on this page.
{
"id": 1,
"title": "Lumio Nova X5 Smartphone",
"description": "The Lumio Nova X5 Smartphone features all-day battery life and water and dust resistance. A dependable choice from Lumio.",
"category": "smartphones",
"brand": "Lumio",
"price": 599.99,
"discountPercentage": 21.56,
"rating": 2.9,
"stock": 50,
"sku": "SMA-LUM-0001",
"tags": [
"mobile",
"5g",
"electronics"
],
"availabilityStatus": "In Stock",
"thumbnail": "https://test.naimulhassan.me/api/v1/images/products/1"
}Try it
Delete a product (simulated)
/api/v1/products/{id}Returns 204 No Content if the product exists. The record is not actually removed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | integer | Numeric product ID (positive integer).Min: 1 |
Status codes
- 204Empty body.
- 400Invalid path or query parameter (
INVALID_PARAMETER/INVALID_ID). - 404No record exists with that ID (
RESOURCE_NOT_FOUND).
Request
curl -X DELETE 'https://test.naimulhassan.me/api/v1/products/1'Example responses
Captured from the real API with the requests shown on this page.
No response body.