Skip to main content
The widget registry stores layout configuration for each embed. Integrators reference a widget by widgetId; the backend returns reviews, rating data, and dashboard settings in one call.

Setup flow

1. Create an API client

In the dashboard: Integrations → API Clients → Create.
  • Set allowedOrigins to every domain that will host the widget
  • Copy the publishable key (pk_live_* or pk_test_*)

2. Create a widget

Integrations → Widgets → Create. Copy the widget ID from the widget detail page.

3. Embed on your site

React (recommended):
Web Component:

Resolve endpoint

GET /api/v1/widgets/resolve/{widgetId} returns:
  • Widget metadata (type, minStars, config)
  • Paginated reviews
  • ratingSummary with star distribution
Auth: X-Widget-Key header with your publishable key.

Widget type → layout mapping

Override with config.layout in the dashboard or the React layout prop.

Generate embed snippet

Use buildReactEmbedSnippet from @ethioreview/review-widget-core:
Credentials → · React embed →