Updated Oct 2026
Wix Reviews API in Python: query reviews, reply, delete a reply
Wix Reviews (the reviews app of Wix Stores) has a clean REST API: one query endpoint with cursor paging, the reply returned inside each review, and a reply endpoint that sets, overwrites or deletes the single reply a review can have. This guide does it with requests, following dev.wix.com, which is also how Prisma’s Wix connector works (in beta). The store-platform picture is on e-commerce reviews API.
pip install requestsCredentials: a Wix API key (Account settings → API keys) with the Wix Reviews Manage Reviews permission, and the site id, the GUID in your dashboard address (/dashboard/<site id>/).
1. Query public reviews, 100 at a time
import os, requests
API = "https://www.wixapis.com"
H = {"Authorization": os.environ["WIX_API_KEY"], "wix-site-id": os.environ["WIX_SITE_ID"], "Content-Type": "application/json"}
def reviews(created_after=None):
query = {"sort": [{"fieldName": "createdDate", "order": "DESC"}], "cursorPaging": {"limit": 100}}
if created_after:
query["filter"] = {"createdDate": {"$gte": created_after}} # ISO 8601
while True:
r = requests.post(f"{API}/reviews/v1/reviews/query", headers=H, json={"query": query}, timeout=30)
r.raise_for_status()
body = r.json()
yield from body.get("reviews", [])
cursor = ((body.get("metadata") or {}).get("cursors") or {}).get("next")
if not cursor or not body.get("reviews"):
break
query = {"cursorPaging": {"limit": 100, "cursor": cursor}} # the cursor carries the filter and sort
for rev in reviews():
c = rev.get("content") or {}
reply = (rev.get("reply") or {}).get("message")
print(rev["id"], c.get("rating"), (rev.get("author") or {}).get("authorName"), c.get("title"), (c.get("body") or "")[:80], "| replied" if reply else "")Fields: id, entityId (the product), content.rating (1 to 5), content.title, content.body, author.authorName, createdDate, updatedDate, reviewDate, and reply with message, createdDate and updatedDate. Only public reviews are returned. The filter works on createdDate; there’s no update filter, so re-query recent reviews to see new replies.
2. Reply, overwrite, delete
rid = rev["id"]
requests.patch(f"{API}/reviews/v1/reviews/{rid}/reply", headers=H, json={"message": "Thank you, Laura. The new colours ship next week."}, timeout=30).raise_for_status()
# the same PATCH overwrites; to remove:
requests.delete(f"{API}/reviews/v1/reviews/{rid}/reply", headers=H, timeout=30).raise_for_status()
# read it back
print(requests.get(f"{API}/reviews/v1/reviews/{rid}", headers=H, timeout=30).json()["review"].get("reply"))One reply per review; the API has no limit documented beyond that, but Wix displays long replies truncated, so keep them short.
3. The same job through Prisma
Prisma connects a Wix site with the API key and site id (checked before storing, encrypted), syncs public reviews, keeps the reply in the same shape as every other platform, publishes replies with PATCH and, because Wix lets it read the reply back, reconciles after a dropped request instead of risking a duplicate. One key covers Wix plus WooCommerce, Judge.me, Yotpo, Google and 50+ more.
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "wix", "has_reply": "false", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
print(rev["rating"], rev["author"], rev["title"], rev["text"])
requests.post(f"https://api.prismareviews.com/v1/reviews/{rev['id']}/reply", headers=H, json={"text": "Thank you, Laura. The new colours ship next week."}, timeout=30).raise_for_status()Wix is in beta in Prisma, with replies live. Connection fields: Platforms. A test key returns sample reviews so the code runs now.
FAQ
How do I authenticate to the Wix Reviews API?
With a Wix API key created in Account settings → API keys with the Wix Reviews Manage Reviews permission, sent in the Authorization header as is (no Bearer prefix), plus the wix-site-id header with the site’s GUID from the dashboard address.
Can I edit or delete a reply on Wix by API?
Yes. PATCH /reviews/v1/reviews/{id}/reply sets or overwrites the single reply a review can have, and DELETE on the same path removes it. The reply comes back inside the review object.
Can I filter Wix reviews by update date?
The query supports filtering and sorting on createdDate but not on updates, so to catch new replies or edits re-query recent reviews on each sync; the reply object carries its own createdDate and updatedDate.
Wix, WooCommerce, Judge.me and Google, one key.
2 locations free. Test keys return sample reviews from every platform.