Themes API
List installed themes, read their assets, browse the marketplace and switch the live storefront theme from code.
Version v1 · updated 2026-09-04
Everything the Themes screen does is a REST call, so a deploy pipeline can promote a theme the same way a person clicks Activate. Reads need `themes.read`; activation needs `themes.write`.
Endpoints#
GET /api/public/v1/themes # installed themes, active first
GET /api/public/v1/themes/:id # one installed theme
GET /api/public/v1/themes/:id/assets # css / tokens / font / image assets
POST /api/public/v1/themes/:id/activate # switch the live storefront theme
GET /api/public/v1/marketplace/themes # published marketplace listingsSwitching the live theme#
curl -X POST https://your-store.example/api/public/v1/themes/$THEME_ID/activate \
-H "authorization: Bearer $FRAMIQUE_API_KEY" \
-H "idempotency-key: $(uuidgen)"Assets#
An asset with `scope: "global"` is injected under every theme; `scope: "theme"` is scoped to that theme only. CSS is sanitised on write (no `@import`, no `javascript:`, no `<script>`) and capped at 100 KB per asset.