Embedded Widget
The embedded widget is the simplest way to put a Runway Character on your website. Drop a single script tag into your HTML and your visitors can start a video conversation — no backend, no React, no API key management on the client.
When to use the widget
Section titled “When to use the widget”| Embedded Widget | React SDK | |
|---|---|---|
| Setup effort | One script tag | Server route + React components |
| Requires a server | No | Yes (API key must stay server-side) |
| Customization | Portal configuration | Full programmatic control |
| Best for | Marketing pages, landing pages, support portals | Custom apps, deep integrations |
Use the widget when you want the lowest-effort integration. Use the React SDK when you need full control over the UI and session lifecycle.
1. Configure your widget in the Developer Portal
Section titled “1. Configure your widget in the Developer Portal”Go to the Developer Portal, open your Character, and navigate to the Embed tab. Here you can configure:
- Allowed origins — restrict which domains can load the widget
- Limits — set the maximum session duration and maximum daily calls
- Interface — customize the widget’s appearance (colors, layout, CTA text, video call shape, placement)
Once configured, copy the embed code snippet shown at the top of the page.
2. Add the script tag to your site
Section titled “2. Add the script tag to your site”Paste the snippet into your site’s HTML, before the closing </body> tag:
<scriptsrc="https://cdn.runwayml.com/v1/embeds/widget.js"data-pub-key="pub_..."></script>That’s it — your visitors can now click the button to start a conversation with your Character.
Configuration
Section titled “Configuration”All configuration is managed through the Embed tab in the Developer Portal.
Allowed origins
Section titled “Allowed origins”The widget only loads on origins you explicitly allow. Add your production domain (and any staging/preview domains) in the Allowed origins section.
Requests from unlisted origins are rejected.
Limits
Section titled “Limits”| Setting | Description |
|---|---|
| Max Duration | Maximum session length in seconds (default: 120) |
| Max Daily | Maximum number of calls per day |
Interface
Section titled “Interface”Customize the widget’s look and feel to match your brand:
- Icon — use the default icon or upload a custom image
- Label — toggle a text label next to the icon (e.g. “Need help?”)
- Colors — set icon/label color, background color, CTA colors
- CTA copy — customize the call-to-action text (e.g. “Ask anything”)
- Layout — choose between compact and full expanded views, and whether the widget starts expanded
- Video call — choose between circle and full video call shapes
- Placement — position the widget (e.g. bottom right)
Options
Section titled “Options”- Share screen automatically — when enabled, the visitor’s screen is shared with the Character automatically when a call starts