Read REVIEWS.io product and company reviews, ratings, UGC, surveys; tag reviews; invite one buyer.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Average rating and review count for one or more products by SKU (batch). GET /product/rating-batch.
Product SKUs, separated by semicolons for several (e.g. "SKU-1;SKU-2").
Average rating and review count for one or more products by SKU (batch). GET /product/rating-batch.
| Argument | Type | Description |
|---|---|---|
| sku* | string | Product SKUs, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sku"
],
"properties": {
"sku": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Product SKUs, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
}
}
}Short, highlight-worthy review snippets (nuggets) of company and/or product reviews, for marketing. Filter by SKU, tags, branch, minimum rating. GET /review-nuggets/data.
| Argument | Type | Description |
|---|---|---|
| sku | array | Only these product SKUs. |
| tags | array | Only reviews with these tags. |
| types* | array | Which review kinds to draw nuggets from. |
| branch | string | Only reviews of this branch. |
| per_page | integer | Results per page, 1-100. |
| min_rating | integer | Minimum star rating 1-5. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"types"
],
"properties": {
"sku": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50,
"description": "Only these product SKUs."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 50,
"description": "Only reviews with these tags."
},
"types": {
"type": "array",
"items": {
"enum": [
"store_review",
"product_review"
],
"type": "string"
},
"maxItems": 2,
"minItems": 1,
"description": "Which review kinds to draw nuggets from."
},
"branch": {
"type": "string",
"maxLength": 200,
"description": "Only reviews of this branch."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100."
},
"min_rating": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Minimum star rating 1-5."
}
}
}Basic review statistics: average rating and review count for product reviews, company reviews and third-party reviews. GET /stats/all.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Company review invitations that are queued or sent (customer, order, send date, status); filter by order id or sent state, and page through with page/limit. GET /merchant/invitations.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page (default 1). |
| limit | integer | Invitations per page. |
| order_id | string | Only invitations for this order id. |
| invite_sent | boolean | true = only invitations already sent, false = only those still queued. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Page (default 1)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Invitations per page."
},
"order_id": {
"type": "string",
"maxLength": 200,
"description": "Only invitations for this order id."
},
"invite_sent": {
"type": "boolean",
"description": "true = only invitations already sent, false = only those still queued."
}
}
}Company (store) reviews with private data (order number, reviewer details, tags) and optionally the replies. Filter by rating range, dates, order number, branch, invitation id; order by date or rating. Pages are 0-based; next_page is set when more remain. GET /merchant/reviews.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page, 0-based (default 0). |
| order | string | Order by date ascending/descending, or by rating. |
| branch | string | Only reviews of this branch name. |
| photos | boolean | Only reviews with photos. |
| max_date | string | Reviews created on or before this date (yyyy-mm-dd). |
| min_date | string | Reviews created on or after this date (yyyy-mm-dd). |
| per_page | integer | Results per page, 1-100. |
| review_id | integer | Return only this review. |
| max_rating | integer |
Product review invitations that are queued or sent (customer, order, send date, status); filter by SKU, order id or sent state, and page through with page/limit. GET /product/invitation.
| Argument | Type | Description |
|---|---|---|
| sku | string | Only invitations for this product SKU. |
| page | integer | Page (default 1). |
| limit | integer | Invitations per page. |
| order_id | string | Only invitations for this order id. |
| invite_sent | boolean | true = only invitations already sent, false = only those still queued. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sku": {
"type": "string",
"maxLength": 200,
"description": "Only invitations for this product SKU."
},
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Page (default 1)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Invitations per page."
},
"order_id": {
"type": "string",
"maxLength": 200,
"description": "Only invitations for this order id."
},
"invite_sent": {
"type": "boolean",
"description": "true = only invitations already sent, false = only those still queued."
}
}
}The recommended way to read reviews: company (store) reviews, product reviews, third-party reviews and product questions in one filterable timeline, with the account's private data (reviewer e-mail, order). Filter by type, SKU/MPN/GTIN, tag, branch, keyword, date range, minimum rating, photos/videos; sort newest-first by default. Pages are 1-based; next_page is set when more results remain. GET /reviews.
| Argument | Type | Description |
|---|---|---|
| mpn | string | Product MPNs, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| sku | string | Product SKUs, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| tag | string | Review tags, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| gtin | string | Product GTINs, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| page | integer | Page, 1-based (default 1). |
| sort | string | Sort order (default date_desc). |
| type | string | What to return (default: all review kinds). |
| with | string | Only reviews with active photos, videos or either. |
The responses submitted to one survey. Get the survey id from reviewsio_list_surveys. GET /widget/survey-responses.
| Argument | Type | Description |
|---|---|---|
| survey_id* | integer | The survey id (campaign_id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"survey_id"
],
"properties": {
"survey_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The survey id (campaign_id).",
"exclusiveMinimum": 0
}
}
}The store's surveys (campaigns) with their ids; use an id with reviewsio_list_survey_responses. GET /widget/surveys.
| Argument | Type | Description |
|---|---|---|
| exclude_inactive | boolean | Leave out inactive surveys. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"exclude_inactive": {
"type": "boolean",
"description": "Leave out inactive surveys."
}
}
}Customer photos/videos (UGC) collected through REVIEWS.io, filterable by SKU, tag, category or videos only. GET /ugc.
| Argument | Type | Description |
|---|---|---|
| sku | string | Product SKUs, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| tags | string | Tags, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| per_page | integer | Results per page, 1-100. |
| categories | string | Categories, separated by semicolons for several (e.g. "SKU-1;SKU-2"). |
| include_videos | boolean | Only videos. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sku": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Product SKUs, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"tags": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Tags, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100."
},
"categories": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Categories, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"include_videos": {
"type": "boolean",
"description": "Only videos."
}
}
}E-mail addresses that unsubscribed from (or were unsubscribed from) REVIEWS.io invitation e-mails. GET /unsubscribe/list.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}The review-submitted webhooks registered for the store (read-only; this server never adds or removes webhooks). GET /webhook/list.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page (default 1). |
| per_page | integer | Results per page, 1-100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Page (default 1)."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100."
}
}
}WRITE - SENDS A MESSAGE TO A REAL CUSTOMER: queues ONE company review invitation e-mail to the given customer address; REVIEWS.io then e-mails that person (when and with which template follows your Flow Sequence / template_id, usually within hours or days). It cannot be recalled from this server. Only call it when the user has explicitly asked to invite this exact customer, and pass confirm_send_email: true. There is no bulk or SMS invitation tool. POST /merchant/invitation.
| Argument | Type | Description |
|---|---|---|
| name* | string | The customer's name (used in the e-mail greeting). |
| email* | string | The customer's e-mail address: the invitation is sent HERE. |
| order_id* | string | The order reference (e.g. #12345). |
| template_id | string | Invitation e-mail template id (overrides the Flow Sequence template). |
| confirm_send_email* | boolean | Must be true: confirms the user asked for a real e-mail to this customer. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"email",
"order_id",
"confirm_send_email"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The customer's name (used in the e-mail greeting)."
},
"email": {
"type": "string",
"maxLength": 254,
"description": "The customer's e-mail address: the invitation is sent HERE."
},
"order_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The order reference (e.g. #12345)."
},
"template_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Invitation e-mail template id (overrides the Flow Sequence template)."
},
"confirm_send_email": {
"type": "boolean",
"const": true,
"description": "Must be true: confirms the user asked for a real e-mail to this customer."
}
}
}WRITE: adds a tag to one company review (visible in your REVIEWS.io dashboard and usable as a filter). Adding the same tag twice changes nothing. Nothing is sent to the customer. POST /review/tag/{id}.
| Argument | Type | Description |
|---|---|---|
| tag* | string | The tag to add, e.g. positive-review. Tags help you filter and display reviews. |
| review_id* | integer | The company review id (store_review_id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"review_id",
"tag"
],
"properties": {
"tag": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The tag to add, e.g. positive-review. Tags help you filter and display reviews."
},
"review_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The company review id (store_review_id).",
"exclusiveMinimum": 0
}
}
}WRITE: adds a tag to one product review (visible in your REVIEWS.io dashboard and usable as a filter). Adding the same tag twice changes nothing. Nothing is sent to the customer. POST /product-review/tag/{id}.
| Argument | Type | Description |
|---|---|---|
| tag* | string | The tag to add, e.g. positive-review. Tags help you filter and display reviews. |
| review_id* | integer | The product review id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"review_id",
"tag"
],
"properties": {
"tag": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The tag to add, e.g. positive-review. Tags help you filter and display reviews."
},
"review_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The product review id.",
"exclusiveMinimum": 0
}
}
}WRITE: stops REVIEWS.io sending review invitation e-mails to one e-mail address. Use it for a customer who asked not to be contacted. This server has no tool to re-subscribe an address; it can only be undone in the REVIEWS.io dashboard. Nothing is sent to the customer. POST /unsubscribe/email.
| Argument | Type | Description |
|---|---|---|
| email* | string | The customer's e-mail address. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"description": "The customer's e-mail address."
}
}
}| Maximum star rating 1-5. |
| min_rating | integer | Minimum star rating 1-5. |
| max_updated | string | Reviews not updated after this date (yyyy-mm-dd). |
| min_updated | string | Reviews updated since this date (yyyy-mm-dd). |
| order_number | string | Only reviews for this order number. |
| invitation_id | string | Only the review that answered this invitation (service_feedback_email_id). |
| include_replies | boolean | Include the store's replies to each review. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Page, 0-based (default 0)."
},
"order": {
"enum": [
"asc",
"desc",
"rating"
],
"type": "string",
"description": "Order by date ascending/descending, or by rating."
},
"branch": {
"type": "string",
"maxLength": 200,
"description": "Only reviews of this branch name."
},
"photos": {
"type": "boolean",
"description": "Only reviews with photos."
},
"max_date": {
"type": "string",
"description": "Reviews created on or before this date (yyyy-mm-dd)."
},
"min_date": {
"type": "string",
"description": "Reviews created on or after this date (yyyy-mm-dd)."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100."
},
"review_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Return only this review.",
"exclusiveMinimum": 0
},
"max_rating": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Maximum star rating 1-5."
},
"min_rating": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Minimum star rating 1-5."
},
"max_updated": {
"type": "string",
"description": "Reviews not updated after this date (yyyy-mm-dd)."
},
"min_updated": {
"type": "string",
"description": "Reviews updated since this date (yyyy-mm-dd)."
},
"order_number": {
"type": "string",
"maxLength": 200,
"description": "Only reviews for this order number."
},
"invitation_id": {
"type": "string",
"maxLength": 100,
"description": "Only the review that answered this invitation (service_feedback_email_id)."
},
"include_replies": {
"type": "boolean",
"description": "Include the store's replies to each review."
}
}
}| string | Only reviews left by this e-mail address. |
| branch | string | Only reviews of this branch name. |
| date_to | string | Reviews older than this date (yyyy-mm-dd). |
| keyword | string | Only reviews whose text contains this keyword. |
| per_page | integer | Results per page, 1-100. |
| date_from | string | Reviews newer than this date (yyyy-mm-dd). |
| min_rating | integer | Minimum star rating 1-5. |
| must_have_body | boolean | Only reviews with a comment. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mpn": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Product MPNs, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"sku": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Product SKUs, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"tag": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Review tags, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"gtin": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Product GTINs, separated by semicolons for several (e.g. \"SKU-1;SKU-2\")."
},
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Page, 1-based (default 1)."
},
"sort": {
"enum": [
"date_desc",
"date_asc",
"highest_rating",
"lowest_rating",
"helpful_desc",
"helpful_asc",
"date_update_desc",
"date_update_asc"
],
"type": "string",
"description": "Sort order (default date_desc)."
},
"type": {
"enum": [
"store_review",
"product_review",
"store_third_party_review",
"questions"
],
"type": "string",
"description": "What to return (default: all review kinds)."
},
"with": {
"enum": [
"images",
"videos",
"media"
],
"type": "string",
"description": "Only reviews with active photos, videos or either."
},
"email": {
"type": "string",
"maxLength": 254,
"description": "Only reviews left by this e-mail address."
},
"branch": {
"type": "string",
"maxLength": 200,
"description": "Only reviews of this branch name."
},
"date_to": {
"type": "string",
"description": "Reviews older than this date (yyyy-mm-dd)."
},
"keyword": {
"type": "string",
"maxLength": 200,
"description": "Only reviews whose text contains this keyword."
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100."
},
"date_from": {
"type": "string",
"description": "Reviews newer than this date (yyyy-mm-dd)."
},
"min_rating": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Minimum star rating 1-5."
},
"must_have_body": {
"type": "boolean",
"description": "Only reviews with a comment."
}
}
}