Any public profile can be monitored - watch the ones you compete with.
Repuso collects customer reviews from Google, TripAdvisor, Trustpilot, the App Store and 50+ other platforms, and serves them through one REST API in a single JSON schema - with rating history, sentiment, AI summaries and webhooks on new reviews. You point it at a public profile; it keeps that profile current and tells you when something changes.
This guide assumes you already have an API key and at least one profile connected. Both take about two minutes: start with the quickstart, or get a key in the console - the trial is 10 days and needs no card.
curl -u :$REPUSO_KEY \
-X POST https://api.repuso.com/public/v1/profiles/add \
-H 'Content-Type: application/json' \
-d '{"type": "google", "url": "https://maps.google.com/?cid=123", "competitor": true}'The competitor flag matters: those profiles are collected and tracked like any other, but stay out of your own widgets and aggregate reporting. Without it, a rival's three-star average quietly joins your numbers.
curl -u :$REPUSO_KEY \
'https://api.repuso.com/public/v1/profiles/rating_history/49333?days=365'{
"history": [
{ "date": "2026-06-14", "score": 4.8, "reviews": 112, "estimated": true },
{ "date": "2026-08-01", "score": 4.7, "reviews": 1284 }
]
}History starts the day you add the profile and builds from there, up to 365 days per call. Points marked estimated were interpolated rather than measured - fine for a trend line, not for claiming an exact figure on a date.
Polling daily works, but the event is cheaper and faster:
curl -u :$REPUSO_KEY \
-X POST https://api.repuso.com/public/v1/webhooks/add \
-H 'Content-Type: application/json' \
-d '{"url": "https://yourapp.com/hooks/repuso", "events": ["rating.changed"]}'rating.changed fires when a monitored profile's score or review count moves, competitor profiles included. Signature verification and retry behaviour are covered in the webhook guide.
The comparison people actually want is rate of change, not absolute score. A rival at 4.3 gaining thirty reviews a month is a different problem from a rival sitting at 4.8 gaining two.
# reviews collected per profile, last 90 days
?profiles=49333&since=2026-06-18&limit=1 # read "count" from the responsecount is the total matching your filters, so a single request with limit=1 answers "how many reviews did they get this quarter" without paging through them.
Public review pages only - anything a visitor could read themselves. There is no private data, no customer detail beyond the published author name, and nothing that requires access to the other business's accounts.