Drop-in components, iframe embeds, or server-side proxy. Any framework, any backend.
1<rai-store-widget2 widget-id="YOUR_WIDGET_ID"3 api-url="YOUR_API_URL"4 widget-url="YOUR_WIDGET_URL"5 data-email="user@example.com"6 data-userId="USR-9a3f2b"7></rai-store-widget>iPhone 17 Pro Max
Latest flagship with A19 chip
iPad Pro 14" M4
Liquid Retina XDR display
AirPods Pro 3
Active noise cancellation
Apple Watch Ultra 3
Titanium case, GPS + cellular
Rolex Submariner
Oystersteel, black dial
Tag Heuer Monaco
Chronograph, blue dial
Pass user identity directly as HTML attributes. Ideal when you only have access to an HTML container or limited backend resources.
<rai-store-widget widget-id="YOUR_WIDGET_ID" api-url="YOUR_API_URL" widget-url="YOUR_WIDGET_URL" data-email="user@example.com" data-userId="USR-9a3f2b" data-firstname="Jane" data-tier="gold"></rai-store-widget>Stack attributes for stronger identity verification. Each additional field makes the identity harder to spoof. Custom fields from your platform add extra layers of security.
Your backend calls Returning.AI's signin endpoint and gets a short-lived JWT. The API key never touches the client.
<rai-store-widget widget-id="YOUR_WIDGET_ID" auth-url="/api/widget-auth"></rai-store-widget>// Your backend endpointconst { token } = await fetch( signinUrl, { headers: { "returningai-api-key": API_KEY, "email": user.email, }, }).then(r => r.json());Rewards marketplace with loyalty currency
<rai-store-widget>Community hub with missions and quests
<rai-channel-widget>Achievement stages and unlock rewards
<rai-milestone-widget>Social media engagement tasks
<rai-social-widget>Points balance and transaction history
<rai-currency-widget>Spin-the-wheel and scratch cards
<rai-minigame-widget>