> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ethioreview.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Display platform, shop, and product reviews

> SSR partner APIs and widget embeds for each review layer.

Choose the display path that fits each page. Keep layers separate so customers see the right rating. Credentials come from **Integrations → Digital platform** or **Integrations → API keys**.

## Who this is for

Frontend and SSR teams rendering marketplace homepage, seller, and product pages.

## Platform (marketplace homepage)

### SSR

```http theme={null}
GET /api/v1/partner/platform/reviews?limit=5
Authorization: Bearer sk_live_YOUR_SECRET
```

```http theme={null}
GET /api/v1/partner/platform/rating
Authorization: Bearer sk_live_YOUR_SECRET
```

### Widget

```html theme={null}
<script async src="https://cdn.ethioreview.com/widget.js"></script>
<review-widget
  data-base-url="https://api.ethioreview.com"
  data-public-key="pk_live_YOUR_KEY"
  data-business-id="YOUR_MARKETPLACE_ORG_ID"
></review-widget>
```

Or ask the API for a ready snippet:

```http theme={null}
GET /api/v1/partner/platform/widget
Authorization: Bearer sk_live_YOUR_SECRET
```

## Shop (seller page)

```http theme={null}
GET /api/v1/partner/platform/shops/{externalShopId}/reviews
Authorization: Bearer sk_live_YOUR_SECRET
```

```http theme={null}
GET /api/v1/partner/platform/shops/{externalShopId}/widget
Authorization: Bearer sk_live_YOUR_SECRET
```

Use the shop publishable key from the widget response when embedding on a vendor storefront.

## Product (SKU page)

Widgets are organization-scoped. For product pages use the partner SSR API (recommended):

```http theme={null}
GET /api/v1/partner/platform/shops/{externalShopId}/products/{externalProductId}/reviews?limit=10
Authorization: Bearer sk_live_YOUR_SECRET
```

```http theme={null}
GET /api/v1/partner/platform/shops/{externalShopId}/products/{externalProductId}/rating
Authorization: Bearer sk_live_YOUR_SECRET
```

Render the JSON in your own product UI so the rating matches that SKU only.

## React widget example (shop / platform)

```tsx theme={null}
import { ReviewWidget } from "@ethioreview/review-widget-react";

export function ShopReviews({ orgId }: { orgId: string }) {
  return (
    <ReviewWidget
      baseUrl="https://api.ethioreview.com"
      publicKey={process.env.NEXT_PUBLIC_ETHIOREVIEW_PUBLIC_KEY!}
      businessId={orgId}
      minStars={4}
    />
  );
}
```

Use `pk_test_*` in development. See [Sandbox](/integrations/digital-platform/sandbox.md).

## One failure mode

**Showing platform ratings on a product page** — customers see the wrong score. Always call the product-scoped partner endpoints for SKU pages.

## Next

[SDK overview →](/sdks/review-widget/overview.md) · [Digital platform setup →](/dashboard/digital-platform-setup.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.