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.

Shell
pip install requests

Credentials: 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

Python
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

Python
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.

Python
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.

Get API key

2 locations free. Test keys return sample reviews from every platform.

Get your API key in a minute

Free Spark plan: 2 locations, no card. Test keys return sample data on all 62 platforms, so you can build before connecting a real one.