Widget configuration is per bot. The settings represented in the app include light or dark theme, corner position, primary color, greeting, input placeholder, branding visibility, custom CSS, allowed domains, and active state. Verify the live widget after saving because site styles and content-security policies can affect its appearance.
Set appearance and placement
Choose a theme and a corner that does not cover navigation, cookie controls, or other fixed elements. Use a readable contrast ratio and a greeting that explains what the assistant can help with. Keep any CSS changes narrow and test common viewport sizes.
The API client exposes GET and PUT /bots/{uuid}/widget. Update only the fields you intend to change and preserve existing settings when your integration performs partial updates.
Limit allowed domains
Use allowed_domains to restrict where the widget can run when that control is enabled. Include the hostnames you actually use, such as production and an approved staging hostname, and test each one. Do not use domain restrictions as a substitute for protecting privileged API credentials.
Update widget appearance
curl --request PUT "$PRIMEWEBKIT_API_URL/bots/$BOT_ID/widget" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $PRIMEWEBKIT_ACCESS_TOKEN" \
--data '{
"theme": "light",
"position": "bottom-right",
"primary_color": "#2563EB",
"greeting_message": "Hi! What can I help you find?",
"placeholder_text": "Ask a question...",
"allowed_domains": ["example.com", "www.example.com"]
}'Example of a restrained custom style
/* Keep overrides scoped to the widget's documented custom CSS field. */
.chat-widget {
--brand-color: #2563eb;
}Frequently asked questions
Can I place the widget on multiple domains?
The widget settings include an allowed_domains list. Add only the hostnames you intend to permit and test each one after saving.
Can I hide widget branding?
The configuration includes a show_branding field, but availability may depend on the account or plan. Check the setting and current plan terms before promising that it is available.
Will custom CSS work on every site?
Site CSS, widget isolation, and content-security policies can affect rendering. Use small, scoped changes and verify on the actual published pages.