Embed Widget
Embeddable components for integrating Curate-Me AI governance into any website. Monitor costs, view agent status, and manage approvals from a lightweight widget — no backend required.
Quick Start
Add one line before </body> to get a floating governance dashboard:
<script src="https://embed.curate-me.ai/v1.js" data-key="YOUR_API_KEY"></script>Integration Methods
Script Tag (Easiest)
<script src="https://embed.curate-me.ai/v1.js" data-key="YOUR_API_KEY"></script>Adds a floating widget to the bottom-right corner. No coding required.
Inline Widget
Embed inside a specific container:
<div id="curateme-widget"></div>
<script src="https://embed.curate-me.ai/v1.js"
data-key="YOUR_API_KEY"
data-target="#curateme-widget"
data-mode="inline">
</script>Web Components
Use individual components for specific features:
<script src="https://embed.curate-me.ai/v1.js" data-key="YOUR_API_KEY"></script>
<!-- Cost Dashboard Widget -->
<curateme-costs theme="light"></curateme-costs>
<!-- Agent Status Monitor -->
<curateme-agents-status></curateme-agents-status>
<!-- Approval Queue -->
<curateme-approvals position="bottom-right"></curateme-approvals>React / Vue Components
npm install @curate-me/embedimport { CostDashboard, GatewayStatus } from '@curate-me/embed/react';
function App() {
return (
<CostDashboard
apiKey="YOUR_API_KEY"
onThresholdReached={(data) => console.log('Budget alert:', data)}
/>
);
}Headless Mode
Full programmatic control without any UI:
import { CurateMeClient } from '@curate-me/embed';
const client = new CurateMeClient({ apiKey: 'YOUR_API_KEY' });
const status = await client.gateway.status();
const costs = await client.costs.summary({ period: 'today' });
const approvals = await client.approvals.list({ status: 'pending' });Configuration
All options can be set via the dashboard (recommended), HTML attributes (data-*), or JavaScript API (CurateMe.configure({...})).
| Option | Type | Default | Description |
|---|---|---|---|
mode | 'floating' | 'inline' | 'modal' | 'floating' | Widget display mode |
theme | 'light' | 'dark' | 'auto' | 'auto' | Color theme |
position | 'bottom-right' | 'bottom-left' | 'bottom-right' | Floating widget position |
primaryColor | string | '#0D9488' | Brand color |
features | string[] | ['costs', 'status'] | Enabled feature panels |
language | string | 'en' | UI language |
Events and Callbacks
Listen for governance events from the widget:
CurateMe.on('cost:threshold', (data) => {
console.log('Cost threshold reached:', data);
});
CurateMe.on('approval:required', (request) => {
console.log('Approval needed:', request);
});
CurateMe.on('runner:status-change', (runner) => {
console.log('Runner status:', runner);
});Server-Side Webhooks
Configure webhooks in the dashboard to receive events on your backend:
POST https://your-site.com/webhooks/curateme
{
"event": "cost.threshold_reached",
"data": { ... },
"timestamp": "2026-03-26T..."
}Platform Integrations
| Platform | How to Install |
|---|---|
| Shopify | Install from Shopify App Store, click “Enable” in admin |
| WordPress | Install “Curate-Me AI Gateway” plugin, add API key in Settings |
| Wix | Add from Wix App Market, drag widget onto page |
| Squarespace | Add Code Block, paste embed code from dashboard |
Security
- API keys are domain-restricted (configure allowed domains in dashboard)
- All communication over HTTPS
- No PII stored without explicit consent
- GDPR/CCPA compliant
Next Steps
- Gateway Overview — understand what the widget is monitoring
- Cost Tracking — configure budgets and alerts
- Approval Queues — manage HITL approvals
- SDK Overview — explore all SDKs and integration options