Updated Oct 2026

Loox API in Python: store and product reviews, plan requirements

Loox’s Merchant API is tidy: one key, two endpoints (store reviews and product reviews), date filtering and nextPageUrl paging. The catch is the plan: the key only exists on Convert and Unlimited. It is read-only for replies. This guide reads it with requests, following Loox’s OpenAPI spec as Prisma’s Loox connector does, then shows the same through Prisma. The wider picture of Shopify review apps is on e-commerce reviews API.

Shell
pip install requests

Credentials: the public store id and an API secret key (Loox → Settings → API Keys; Convert or Unlimited plan).

1. Page through store and product reviews

Python
import os, requests
from datetime import date, timedelta

API = "https://api.loox.io/api/v1/store"
STORE = os.environ["LOOX_STORE_ID"]
H = {"X-Api-Secret-Key": os.environ["LOOX_API_SECRET"], "Accept": "application/json"}

def reviews(kind, from_date=None, limit=100):
    """kind: 'store-reviews' or 'product-reviews'."""
    url = f"{API}/{STORE}/{kind}?status=published&sort=date&direction=desc&limit={limit}" + (f"&from_date={from_date}" if from_date else "")
    while url:
        r = requests.get(url, headers=H, timeout=30)
        r.raise_for_status()
        body = r.json()
        yield from body.get("reviews", [])
        pag = body.get("pagination") or {}
        url = pag.get("nextPageUrl") if pag.get("hasMore") else None

since = (date.today() - timedelta(days=2)).isoformat()
for kind in ("store-reviews", "product-reviews"):
    for rev in reviews(kind, from_date=since):
        who = rev.get("reviewer") or {}
        name = who.get("name") or " ".join(x for x in [who.get("firstName"), (who.get("lastName") or "")[:1] and f"{who['lastName'][0]}."] if x)
        reply = (rev.get("reply") or {}).get("body")
        print(kind, rev["id"], rev.get("rating"), name, rev.get("createdAt"), (rev.get("product") or {}).get("name"), (rev.get("body") or "")[:80], "| replied" if reply else "")

Fields: id, rating (1 to 5), body, date, createdAt, status, originalLanguage, reviewer (name, or first and last name), product (name and url, on product reviews) and reply with body and repliedAt when the store answered. from_date filters by the review’s date, not the reply’s, so look back a day or two to pick up fresh replies on recent reviews. Stay under 120 requests a minute.

2. What the API won’t do

No reply endpoint: replies are written in the Loox admin and arrive in reply. No unpublished reviews with status=published; drop the parameter if you need pending ones.

3. The same job through Prisma

Prisma connects a Loox store with the store id and secret key (checked against Loox before storing, encrypted), reads store and product reviews with their replies, respects the rate limit and returns everything in the same JSON as Judge.me, Yotpo, Okendo, Google and 50+ other platforms, with a webhook per new review.

Python
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "loox", "has_reply": "false", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
    print(rev["rating"], rev["author"], rev["title"], rev["text"], rev["url"])

Loox is read-only in Prisma, like on Loox, and in beta. Connection fields: Loox on Platforms. A test key returns sample reviews so the code runs now.

FAQ

Which Loox plan includes the API?

Convert and Unlimited. Those plans let you create an API secret key in Loox → Settings → API Keys; lower plans have no key, so no API access. Calls are limited to 120 a minute per key.

Can I reply to Loox reviews by API?

No. The Merchant API returns the store’s existing reply (reply.body and reply.repliedAt) but has no endpoint to post one; replies are written in the Loox admin.

How do I sync only new Loox reviews?

Pass from_date (a date) to the reviews endpoints, sorted by date descending. The filter applies to the review date, not the reply date, so start a day or two before your last sync to catch new replies on recent reviews.

Loox, Judge.me, Yotpo 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 66 platforms, so you can build before connecting a real one.