Updated Oct 2026
REVIEWS.io API in Python: company and product reviews, replies as data
REVIEWS.io gives Plus-plan merchants an API key and a reviews list that mixes company and product reviews, with existing replies attached. It is read-only for replies. This guide reads it with requests, the way Prisma’s REVIEWS.io connector does, then shows the same through Prisma. The wider picture of which store review apps allow what is on e-commerce reviews API.
pip install requestsCredentials: the store key and the private API key from Integrations → API (Plus plan).
1. List reviews, newest first
import os, requests
API = "https://api.reviews.io"
P = {"store": os.environ["REVIEWSIO_STORE"], "apikey": os.environ["REVIEWSIO_API_KEY"]}
def reviews(date_from=None):
page = 1
while True:
params = {**P, "per_page": 100, "page": page, "sort": "date_desc"}
if date_from:
params["dateFrom"] = date_from # YYYY-MM-DD
r = requests.get(f"{API}/reviews", params=params, headers={"Accept": "application/json"}, timeout=30)
r.raise_for_status()
batch = r.json().get("reviews", [])
if not batch:
break
yield from batch
page += 1
for rev in reviews():
if rev.get("type") == "question":
continue
first_reply = (rev.get("replies") or [None])[0]
print(rev["id"], rev.get("type"), rev.get("rating"), rev.get("title"), (rev.get("comments") or "")[:80], (rev.get("author") or {}).get("name"), rev["date_created"], "| replied" if first_reply else "")Fields: id, type (company or product review; questions appear too and are skipped above), rating (1 to 5), title, comments (the text), author.name, date_created (YYYY-MM-DD HH:MM:SS in UTC, or ISO) and replies, a list of {comments, date_created} with your existing replies. The public store page is https://www.reviews.io/company-reviews/store/<store key>.
2. Incremental sync
Pass dateFrom with the date of your last sync and stop when you reach reviews you already have. Replies added later to older reviews don’t change date_created, so widen the window (for example 90 days) if reply status matters to you.
3. The same job through Prisma
Prisma connects a REVIEWS.io store with the store key and API key (checked against REVIEWS.io before storing, encrypted), syncs company and product reviews with their replies, skips questions, and returns everything in the same JSON as Trustpilot, Judge.me, Google and 50+ other platforms, with a webhook per new review.
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "reviews_io", "has_reply": "false", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
print(rev["rating"], rev["author"], rev["title"], rev["text"], rev["url"])REVIEWS.io is read-only in Prisma too, like on REVIEWS.io; each review carries its url. Included from the Beam plan up. Connection fields: REVIEWS.io on Platforms. A test key returns sample reviews so the code runs now.
FAQ
Which REVIEWS.io plan includes the API?
The private API key is issued on the Plus plan (Integrations → API). Below that there is no key, so no API access; the widgets still work.
Can I reply to REVIEWS.io reviews by API?
No. The API returns existing replies inside each review but has no endpoint to post one; replies are written in the REVIEWS.io dashboard.
How do I sync only new REVIEWS.io reviews?
Pass dateFrom (YYYY-MM-DD) to the reviews list, sorted date_desc, and stop paging when a review older than your last sync appears. Replies to older reviews won’t be caught that way; re-read a wider window if you need them.
REVIEWS.io, Trustpilot, Judge.me and Google, one key.
2 locations free. Test keys return sample reviews from every platform.