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.