← Guides

Show reviews with schema markup

Render reviews on your own site, and mark them up so search results can show stars.

New here?

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.

1. Fetch what the page is about

Markup has to describe the thing on the page. For a product or a location page, that means the reviews for that profile, not everything on the account:

curl -u :$REPUSO_KEY \
  'https://api.repuso.com/public/v1/reviews/get?profiles=49331&limit=20&min_rating=1'

The profile itself carries the aggregate you need - score and reviews - from GET /profiles/get/49331.

2. Emit the JSON-LD

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Merino Crew Neck",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": 128,
    "bestRating": 5
  },
  "review": [{
    "@type": "Review",
    "author": { "@type": "Person", "name": "Dana R." },
    "datePublished": "2026-08-01",
    "reviewBody": "Holds shape after washing and the colour has not faded.",
    "reviewRating": {
      "@type": "Rating", "ratingValue": 5, "bestRating": 5
    }
  }]
}
</script>

Map straight from the API: rating_value to ratingValue, rating_scale to bestRating, from_name to the author, posted_on to datePublished, text to reviewBody. Set bestRating from rating_scale rather than hardcoding 5 - some platforms rate out of 10, and a 9 presented as out of 5 is both wrong and rejected.

3. The rules that decide whether stars appear

4. Check it before you ship it

Paste the URL into Google's Rich Results Test, and watch the Enhancements section in Search Console afterwards - eligibility and actual display are different things, and neither is instant.

If you would rather not own any of this, the Repuso widgets render the reviews and emit the markup for you; this guide is for teams rendering reviews in their own UI.

← All guides