Display your best reviews on your website with customizable widgets that match your brand.

AI-crawlable embed (SEO)

The standard embed renders your reviews with JavaScript in the visitor's browser. That's the quickest way to install, but it has a trade-off: search bots and AI/LLM assistants that don't run JavaScript see an empty container, so your review text and star ratings are invisible to them.

If your site is built on a platform where you control the server or a build step (Astro, Next.js, WordPress, etc.), you can fetch the server-rendered version of your reviews and place it directly in your page's HTML. The review text and AggregateRating structured data then ship in the static HTML — visible to Google and to AI crawlers. The JavaScript widget still loads on top and upgrades it to the interactive carousel for human visitors.

The endpoint

https://app.divinerone.com/api/widgets/YOUR_WIDGET_ID/embed

It returns ready-to-inline HTML (review cards + JSON-LD). Optional query params:

  • ?business=Your+Business+Name — sets the name used in the JSON-LD schema
  • ?limit=12 — cap the number of reviews rendered
  • ?format=json — return { html, jsonLd, reviewCount } instead of raw HTML

Astro

---
const res = await fetch('https://app.divinerone.com/api/widgets/YOUR_WIDGET_ID/embed?business=Your+Business')
const reviews = res.ok ? await res.text() : ''
---
<div id="promptreviews-multi-widget" data-widget-id="YOUR_WIDGET_ID" set:html={reviews}></div>
<script async src="https://app.divinerone.com/widgets/multi/widget-embed.min.js"></script>

Next.js (App Router)

export default async function Reviews() {
  const res = await fetch('https://app.divinerone.com/api/widgets/YOUR_WIDGET_ID/embed', { next: { revalidate: 300 } })
  const html = res.ok ? await res.text() : ''
  return (
    <>
      <div id="promptreviews-multi-widget" data-widget-id="YOUR_WIDGET_ID" dangerouslySetInnerHTML={{ __html: html }} />
      <script async src="https://app.divinerone.com/widgets/multi/widget-embed.min.js" />
    </>
  )
}

WordPress / PHP

<?php $html = @file_get_contents('https://app.divinerone.com/api/widgets/YOUR_WIDGET_ID/embed'); ?>
<div id="promptreviews-multi-widget" data-widget-id="YOUR_WIDGET_ID"><?php echo $html; ?></div>
<script async src="https://app.divinerone.com/widgets/multi/widget-embed.min.js"></script>

Note: Platforms without a server or build step (Webflow, Squarespace, Wix, plain static HTML) can't use this method — stick with the standard JavaScript embed there. You can copy both versions any time from the Embed button on your widget.