Reviews
Product reviews.
List reviews#
List reviews, newest first. Lists product reviews of the shop.
Query parameters
Page size. Clamped to 1..200. Non-numeric values fall back to the default. Default: 50.
Value of next_cursor from the previous page. Returns items with created_at strictly before this timestamp.
Exact status (e.g. pending, published, hidden).
Only reviews of this product.
Only this star rating. Ignored unless a single digit 1-5.
Only for OAuth tokens that cover several shops: the shop to query. Must be one of the token's shops (else 403 forbidden). Required when the token covers more than one shop (else 400 shop_required). Optional for API keys (a key belongs to exactly one shop; any other value returns 403).
Response fields
Items of this page.
created_at of the last item when more items exist, otherwise null.
Review id.
Reviewed product.
Order the review is linked to.
Reviewer e-mail.
Reviewer display name.
Reviewer country.
1-5 stars.
Review title.
Review text.
Photos/videos as stored.
Moderation status. Values seen in code: pending, published, hidden.
Verified purchase flag.
Helpful votes.
Merchant reply.
Reply time.
Featured flag.
Origin of the review (e.g. imported).
Publication time.
Creation time; pagination key.
Last update.
Errors
Any endpoint. Response carries header WWW-Authenticate: Bearer resource_metadata="<origin>/.well-known/oauth-protected-resource".
Scope check per endpoint (and per body field on PATCH /orders/:id).
shop_id query parameter names a shop outside the credential's reach.
Multi-shop OAuth token without shop_id.
Any endpoint when the resolved shop has active=false.
Any endpoint. Header Retry-After (seconds until the next minute bucket).
Any endpoint.
curl "https://api.ecomone.shop/api/public/v1/reviews?limit=10" \
-H "X-Api-Key: $ECOMONE_API_KEY" \
-H "X-Api-Secret: $ECOMONE_API_SECRET"const res = await fetch("https://api.ecomone.shop/api/public/v1/reviews?limit=10", {
method: "GET",
headers: {
"X-Api-Key": process.env.ECOMONE_API_KEY,
"X-Api-Secret": process.env.ECOMONE_API_SECRET,
},
});
if (!res.ok) throw new Error((await res.json()).message);
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.ecomone.shop/api/public/v1/reviews?limit=10",
headers={
"X-Api-Key": os.environ["ECOMONE_API_KEY"],
"X-Api-Secret": os.environ["ECOMONE_API_SECRET"],
},
timeout=30,
)
res.raise_for_status()
data = res.json()["data"]{
"data": [
{
"id": "7e2f4c11-9999-4bbb-8ccc-0d1e2f3a4b5c",
"product_id": "3b8b1f0a-1d2c-4f34-8a7c-6e2f9b4d5c11",
"order_id": "9f1c2b7e-4a55-4d1f-9b62-1c0a3f6d8e21",
"customer_email": "jane.doe@example.com",
"customer_name": "Jane D.",
"customer_country": "CH",
"rating": 5,
"title": "Great quality",
"body": "Fits perfectly.",
"media": [],
"status": "published",
"verified_purchase": true,
"helpful_count": 3,
"reply": null,
"replied_at": null,
"featured": false,
"source": null,
"published_at": "2026-07-19T16:40:00.000Z",
"created_at": "2026-07-19T16:32:00.000Z",
"updated_at": "2026-07-19T16:40:00.000Z"
}
],
"next_cursor": null
}Retrieve a review#
Retrieve one review. Lookup by UUID only.
Path parameters
Review UUID.
Query parameters
Only for OAuth tokens that cover several shops: the shop to query. Must be one of the token's shops (else 403 forbidden). Required when the token covers more than one shop (else 400 shop_required). Optional for API keys (a key belongs to exactly one shop; any other value returns 403).
Response fields
Review id.
Reviewed product.
Order the review is linked to.
Reviewer e-mail.
Reviewer display name.
Reviewer country.
1-5 stars.
Review title.
Review text.
Photos/videos as stored.
Moderation status. Values seen in code: pending, published, hidden.
Verified purchase flag.
Helpful votes.
Merchant reply.
Reply time.
Featured flag.
Origin of the review (e.g. imported).
Publication time.
Creation time; pagination key.
Last update.
Errors
Detail endpoints and PATCH.
Detail endpoints.
Any endpoint. Response carries header WWW-Authenticate: Bearer resource_metadata="<origin>/.well-known/oauth-protected-resource".
Scope check per endpoint (and per body field on PATCH /orders/:id).
shop_id query parameter names a shop outside the credential's reach.
Multi-shop OAuth token without shop_id.
Any endpoint when the resolved shop has active=false.
Any endpoint. Header Retry-After (seconds until the next minute bucket).
Any endpoint.
curl "https://api.ecomone.shop/api/public/v1/reviews/3b0e1c52-7d1a-4c2e-9a51-6c8f2d4e7b10" \
-H "X-Api-Key: $ECOMONE_API_KEY" \
-H "X-Api-Secret: $ECOMONE_API_SECRET"const res = await fetch("https://api.ecomone.shop/api/public/v1/reviews/3b0e1c52-7d1a-4c2e-9a51-6c8f2d4e7b10", {
method: "GET",
headers: {
"X-Api-Key": process.env.ECOMONE_API_KEY,
"X-Api-Secret": process.env.ECOMONE_API_SECRET,
},
});
if (!res.ok) throw new Error((await res.json()).message);
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.ecomone.shop/api/public/v1/reviews/3b0e1c52-7d1a-4c2e-9a51-6c8f2d4e7b10",
headers={
"X-Api-Key": os.environ["ECOMONE_API_KEY"],
"X-Api-Secret": os.environ["ECOMONE_API_SECRET"],
},
timeout=30,
)
res.raise_for_status()
data = res.json()["data"]{
"data": {
"id": "7e2f4c11-9999-4bbb-8ccc-0d1e2f3a4b5c",
"product_id": "3b8b1f0a-1d2c-4f34-8a7c-6e2f9b4d5c11",
"order_id": "9f1c2b7e-4a55-4d1f-9b62-1c0a3f6d8e21",
"customer_email": "jane.doe@example.com",
"customer_name": "Jane D.",
"customer_country": "CH",
"rating": 5,
"title": "Great quality",
"body": "Fits perfectly.",
"media": [],
"status": "published",
"verified_purchase": true,
"helpful_count": 3,
"reply": null,
"replied_at": null,
"featured": false,
"source": null,
"published_at": "2026-07-19T16:40:00.000Z",
"created_at": "2026-07-19T16:32:00.000Z",
"updated_at": "2026-07-19T16:40:00.000Z"
}
}