List widget themes

get/v1/widget/presets

The 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

19

Every 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"
    }
  ]
}