List widget themes
get
/v1/widget/presetsThe organization's saved widget themes, oldest first, as the theme
builder lists them. Pass a theme's id as themeId to the embed (or
to GET /v1/widget/preflight) to use it; with no themeId, the widget
uses the theme changed most recently. At most 200 are returned.
Private keyapi.v1.widget.presets.listNo demo
Response
200Every saved theme.
array<WidgetPreset>required
Saved themes, oldest first.
idstring (uuid)required
Pass it to the embed, or to preflight, as themeId.
namestringrequired
Shown in the theme builder.
objectrequired
The colours, grouped as stored.
createdstring (date-time)required
When it was saved first.
modifiedstring (date-time)required
When it was last changed.
Errors
19Every error is JSON with a single error string unless noted. Match on the status code; the message is for humans.
This endpoint has no errors of its own beyond the shared set below.
curl -X GET "https://stylor.ai/api/v1/widget/presets" \
-H "Authorization: Bearer $STYLOR_API_KEY"Response · 200
{
"presets": [
{
"id": "7e6d5c4b-3a2f-4e1d-9c8b-7a6f5e4d3c2b",
"name": "Ranch",
"options": {
"button": {
"label": "Ask a stylist",
"color": "#2D2926",
"hoverColor": "#000000",
"textColor": "#FFFFFF"
},
"widget": {
"typingDotColor": "#999999",
"accentColor": "#B5651D",
"accentHoverColor": "#8A4B12",
"mutedTextColor": "#6B6B6B",
"primaryTextColor": "#2D2926",
"pageColor": "#FBF8F3",
"surfaceColor": "#FFFFFF",
"borderColor": "#E6E1DA",
"inputColor": "#F3EFE9",
"footerColor": "#FBF8F3",
"roundness": 60
}
},
"created": "2026-10-04T18:20:03.001Z",
"modified": "2026-10-04T18:20:03.001Z"
}
]
}