---
title: "Roll back as a new immutable revision"
method: POST
path: "/themes/{id}/rollback"
tags: ["Organization Themes"]
---

# Roll back as a new immutable revision

`POST /themes/{id}/rollback`

## Request

- Base URL: `https://app.openpo.st/api/v1`
- URL: `https://app.openpo.st/api/v1/themes/{id}/rollback`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `openpost_session`

## Path parameters

- `id` string, required: Organization theme ID

## Request body

- RollbackThemeInputBody
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `expected_draft_revision` integer, required: Draft revision loaded before rollback
  - `expected_published_revision` integer, required: Published head loaded before rollback
  - `organization_id` string, required: Organization ID
  - `source_revision` integer, required: Prior published revision to copy into a new head revision

## Response `200`

OK

- PublishedRevision
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `manifest` ThemeManifest, required
    - `assets` ThemeAsset[], required
      - `alt` string
      - `id` string, required
      - `mimeType` 'image/png' | 'image/jpeg' | 'image/webp' | 'image/avif', required
      - `slot` 'background-texture' | 'sidebar-decoration' | 'header-decoration' | 'empty-state-illustration' | 'loading-illustration', required
      - `sourceUrl` string, required
    - `description` string, required
    - `fonts` ThemeFontFace[], required
      - `display` 'swap' | 'fallback' | 'optional', required
      - `family` string, required
      - `format` 'woff2', required
      - `id` string, required
      - `sourceUrl` string, required
      - `style` 'normal' | 'italic', required
      - `weight` integer, required
    - `iconPack` 'lucide' | 'heroicons-outline' | 'heroicons-solid' | 'phosphor' | 'tabler', required
    - `id` string, required
    - `name` string, required
    - `revision` string, required
    - `schemaVersion` 1, required
    - `schemes` ThemeSchemes, required
      - `dark` ThemeSchemeManifest
        - `colors` ThemeColorTokens, required
          - `actionDestructive` string, required
          - `actionDestructiveActive` string, required
          - `actionDestructiveHover` string, required
          - `actionDestructiveInk` string, required
          - `actionFocal` string, required
          - `actionFocalActive` string, required
          - `actionFocalHover` string, required
          - `actionFocalInk` string, required
          - `actionLink` string, required
          - `actionLinkHover` string, required
          - `actionOrdinary` string, required
          - `actionOrdinaryActive` string, required
          - `actionOrdinaryBorder` string, required
          - `actionOrdinaryHover` string, required
          - `actionOrdinaryInk` string, required
          - `actionPrimary` string, required
          - `actionPrimaryActive` string, required
          - `actionPrimaryHover` string, required
          - `actionPrimaryInk` string, required
          - `actionQuiet` string, required
          - `actionQuietActive` string, required
          - `actionQuietHover` string, required
          - `actionQuietInk` string, required
          - `border` string, required
          - `brand` string, required
          - `brandInk` string, required
          - `browserChrome` string, required
          - `browserSurface` string, required
          - `canvas` string, required
          - `cardHover` string, required
          - `caret` string, required
          - `chart1` string, required
          - `chart2` string, required
          - `chart3` string, required
          - `chart4` string, required
          - `chart5` string, required
          - `chrome` string, required
          - `chromeInk` string, required
          - `danger` string, required
          - `dangerInk` string, required
          - `disabled` string, required
          - `disabledInk` string, required
          - `field` string, required
          - `fieldBorder` string, required
          - `fieldDisabled` string, required
          - `fieldDisabledInk` string, required
          - `fieldFocus` string, required
          - `fieldHover` string, required
          - `fieldInk` string, required
          - `focus` string, required
          - `info` string, required
          - `infoInk` string, required
          - `ink` string, required
          - `input` string, required
          - `link` string, required
          - `mutedInk` string, required
          - `navigationActive` string, required
          - `navigationActiveInk` string, required
          - `navigationHover` string, required
          - `overlay` string, required
          - `scrim` string, required
          - `selection` string, required
          - `selectionInk` string, required
          - `sidebar` string, required
          - `sidebarActive` string, required
          - `sidebarActiveInk` string, required
          - `sidebarBorder` string, required
          - `sidebarInk` string, required
          - `success` string, required
          - `successInk` string, required
          - `surface` string, required
          - `surfaceRaised` string, required
          - `surfaceSunken` string, required
          - `warning` string, required
          - `warningInk` string, required
          - `workspace` string, required
          - `workspaceInk` string, required
        - `components` ThemeComponentRecipes, required
          - `badge` 'solid' | 'tonal' | 'outlined', required
          - `button` 'solid' | 'tonal' | 'outlined' | 'precise' | 'pill' | 'dither', required
          - `card` 'flat' | 'outlined' | 'paper' | 'lifted' | 'dither', required
          - `checkbox` 'solid' | 'tonal' | 'outlined', required
          - `chip` 'solid' | 'tonal' | 'outlined', required
          - `container` 'flat' | 'outlined' | 'tinted', required
          - `decoration` 'none' | 'editorial' | 'playful' | 'botanical' | 'study' | 'tactile' | 'precision' | 'dither', required
          - `dialog` 'flat' | 'outlined' | 'elevated', required
          - `editorChrome` 'neutral' | 'compact' | 'precision', required
          - `emptyState` 'plain' | 'illustrated' | 'framed', required
          - `input` 'filled' | 'outlined' | 'underlined', required
          - `link` 'underlined' | 'subtle' | 'plain', required
          - `list` 'divided' | 'spaced' | 'plain', required
          - `loadingState` 'spinner' | 'pulse' | 'skeleton', required
          - `navigation` 'quiet' | 'tonal' | 'outlined', required
          - `pagination` 'quiet' | 'outlined' | 'pill', required
          - `popover` 'flat' | 'outlined' | 'elevated', required
          - `radio` 'solid' | 'tonal' | 'outlined', required
          - `select` 'filled' | 'outlined' | 'underlined', required
          - `switch` 'solid' | 'tonal' | 'outlined', required
          - `table` 'ruled' | 'striped' | 'plain', required
          - `tabs` 'underline' | 'pill' | 'segmented', required
          - `toast` 'flat' | 'outlined' | 'elevated', required
          - `toolbar` 'flat' | 'outlined' | 'floating', required
        - `elevation` ThemeElevationTokens, required
          - `card` string, required
          - `dialog` string, required
          - `focalAction` string, required
          - `popover` string, required
        - `motion` ThemeMotionTokens, required
          - `entry` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `exit` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `hover` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `loading` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `pageTransition` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `press` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `reducedMotion` 'instant' | 'crossfade', required
          - `selection` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
        - `protectedEditor` ThemeProtectedEditorTokens, required
          - `canvasGrid` string, required
          - `canvasHandle` string, required
          - `canvasPasteboard` string, required
          - `canvasSafeArea` string, required
          - `canvasSelection` string, required
          - `editorBorder` string, required
          - `editorCanvas` string, required
          - `editorControl` string, required
          - `editorControlHover` string, required
          - `editorFocus` string, required
          - `editorFocusBorder` string, required
          - `editorMuted` string, required
          - `editorPanel` string, required
          - `editorText` string, required
          - `protectedGlyph` string, required
          - `timelineClip` string, required
          - `timelinePlayhead` string, required
          - `timelineSelection` string, required
          - `timelineTrack` string, required
          - `timelineWaveform` string, required
        - `shape` ThemeCornerTokens, required
          - `borderStyle` 'solid' | 'dashed', required
          - `borderWidth` string, required
          - `radius` string, required
          - `radiusLg` string, required
          - `radiusMd` string, required
          - `radiusMedia` string, required
          - `radiusPill` string, required
          - `radiusSm` string, required
        - `shell` ThemeShellTokens, required
          - `canvasTreatment` 'plain' | 'paper' | 'playful' | 'garden' | 'study' | 'tactile' | 'precision', required
          - `contentMaxWidth` string, required
          - `headerHeight` string, required
          - `mobileNavigationHeight` string, required
          - `sidebarWidth` string, required
        - `spacing` ThemeSpacingTokens, required
          - `base` string, required
          - `compactControlHeight` string, required
          - `componentGap` string, required
          - `controlHeight` string, required
          - `density` 'compact' | 'comfortable' | 'spacious', required
          - `pageGutter` string, required
          - `sectionGap` string, required
          - `touchTarget` string, required
        - `typography` ThemeTypographyTokens, required
          - `body` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `code` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `display` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `label` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `metadata` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `title` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
      - `light` ThemeSchemeManifest
        - `colors` ThemeColorTokens, required
          - `actionDestructive` string, required
          - `actionDestructiveActive` string, required
          - `actionDestructiveHover` string, required
          - `actionDestructiveInk` string, required
          - `actionFocal` string, required
          - `actionFocalActive` string, required
          - `actionFocalHover` string, required
          - `actionFocalInk` string, required
          - `actionLink` string, required
          - `actionLinkHover` string, required
          - `actionOrdinary` string, required
          - `actionOrdinaryActive` string, required
          - `actionOrdinaryBorder` string, required
          - `actionOrdinaryHover` string, required
          - `actionOrdinaryInk` string, required
          - `actionPrimary` string, required
          - `actionPrimaryActive` string, required
          - `actionPrimaryHover` string, required
          - `actionPrimaryInk` string, required
          - `actionQuiet` string, required
          - `actionQuietActive` string, required
          - `actionQuietHover` string, required
          - `actionQuietInk` string, required
          - `border` string, required
          - `brand` string, required
          - `brandInk` string, required
          - `browserChrome` string, required
          - `browserSurface` string, required
          - `canvas` string, required
          - `cardHover` string, required
          - `caret` string, required
          - `chart1` string, required
          - `chart2` string, required
          - `chart3` string, required
          - `chart4` string, required
          - `chart5` string, required
          - `chrome` string, required
          - `chromeInk` string, required
          - `danger` string, required
          - `dangerInk` string, required
          - `disabled` string, required
          - `disabledInk` string, required
          - `field` string, required
          - `fieldBorder` string, required
          - `fieldDisabled` string, required
          - `fieldDisabledInk` string, required
          - `fieldFocus` string, required
          - `fieldHover` string, required
          - `fieldInk` string, required
          - `focus` string, required
          - `info` string, required
          - `infoInk` string, required
          - `ink` string, required
          - `input` string, required
          - `link` string, required
          - `mutedInk` string, required
          - `navigationActive` string, required
          - `navigationActiveInk` string, required
          - `navigationHover` string, required
          - `overlay` string, required
          - `scrim` string, required
          - `selection` string, required
          - `selectionInk` string, required
          - `sidebar` string, required
          - `sidebarActive` string, required
          - `sidebarActiveInk` string, required
          - `sidebarBorder` string, required
          - `sidebarInk` string, required
          - `success` string, required
          - `successInk` string, required
          - `surface` string, required
          - `surfaceRaised` string, required
          - `surfaceSunken` string, required
          - `warning` string, required
          - `warningInk` string, required
          - `workspace` string, required
          - `workspaceInk` string, required
        - `components` ThemeComponentRecipes, required
          - `badge` 'solid' | 'tonal' | 'outlined', required
          - `button` 'solid' | 'tonal' | 'outlined' | 'precise' | 'pill' | 'dither', required
          - `card` 'flat' | 'outlined' | 'paper' | 'lifted' | 'dither', required
          - `checkbox` 'solid' | 'tonal' | 'outlined', required
          - `chip` 'solid' | 'tonal' | 'outlined', required
          - `container` 'flat' | 'outlined' | 'tinted', required
          - `decoration` 'none' | 'editorial' | 'playful' | 'botanical' | 'study' | 'tactile' | 'precision' | 'dither', required
          - `dialog` 'flat' | 'outlined' | 'elevated', required
          - `editorChrome` 'neutral' | 'compact' | 'precision', required
          - `emptyState` 'plain' | 'illustrated' | 'framed', required
          - `input` 'filled' | 'outlined' | 'underlined', required
          - `link` 'underlined' | 'subtle' | 'plain', required
          - `list` 'divided' | 'spaced' | 'plain', required
          - `loadingState` 'spinner' | 'pulse' | 'skeleton', required
          - `navigation` 'quiet' | 'tonal' | 'outlined', required
          - `pagination` 'quiet' | 'outlined' | 'pill', required
          - `popover` 'flat' | 'outlined' | 'elevated', required
          - `radio` 'solid' | 'tonal' | 'outlined', required
          - `select` 'filled' | 'outlined' | 'underlined', required
          - `switch` 'solid' | 'tonal' | 'outlined', required
          - `table` 'ruled' | 'striped' | 'plain', required
          - `tabs` 'underline' | 'pill' | 'segmented', required
          - `toast` 'flat' | 'outlined' | 'elevated', required
          - `toolbar` 'flat' | 'outlined' | 'floating', required
        - `elevation` ThemeElevationTokens, required
          - `card` string, required
          - `dialog` string, required
          - `focalAction` string, required
          - `popover` string, required
        - `motion` ThemeMotionTokens, required
          - `entry` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `exit` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `hover` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `loading` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `pageTransition` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `press` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
          - `reducedMotion` 'instant' | 'crossfade', required
          - `selection` ThemeMotionRecipe, required
            - `distance` string, required
            - `duration` string, required
            - `easing` string, required
            - `opacity` number, double, required
        - `protectedEditor` ThemeProtectedEditorTokens, required
          - `canvasGrid` string, required
          - `canvasHandle` string, required
          - `canvasPasteboard` string, required
          - `canvasSafeArea` string, required
          - `canvasSelection` string, required
          - `editorBorder` string, required
          - `editorCanvas` string, required
          - `editorControl` string, required
          - `editorControlHover` string, required
          - `editorFocus` string, required
          - `editorFocusBorder` string, required
          - `editorMuted` string, required
          - `editorPanel` string, required
          - `editorText` string, required
          - `protectedGlyph` string, required
          - `timelineClip` string, required
          - `timelinePlayhead` string, required
          - `timelineSelection` string, required
          - `timelineTrack` string, required
          - `timelineWaveform` string, required
        - `shape` ThemeCornerTokens, required
          - `borderStyle` 'solid' | 'dashed', required
          - `borderWidth` string, required
          - `radius` string, required
          - `radiusLg` string, required
          - `radiusMd` string, required
          - `radiusMedia` string, required
          - `radiusPill` string, required
          - `radiusSm` string, required
        - `shell` ThemeShellTokens, required
          - `canvasTreatment` 'plain' | 'paper' | 'playful' | 'garden' | 'study' | 'tactile' | 'precision', required
          - `contentMaxWidth` string, required
          - `headerHeight` string, required
          - `mobileNavigationHeight` string, required
          - `sidebarWidth` string, required
        - `spacing` ThemeSpacingTokens, required
          - `base` string, required
          - `compactControlHeight` string, required
          - `componentGap` string, required
          - `controlHeight` string, required
          - `density` 'compact' | 'comfortable' | 'spacious', required
          - `pageGutter` string, required
          - `sectionGap` string, required
          - `touchTarget` string, required
        - `typography` ThemeTypographyTokens, required
          - `body` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `code` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `display` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `label` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `metadata` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
          - `title` ThemeTypographyRoleTokens, required
            - `fallbacks` string[], required
            - `family` string, required
            - `lineHeight` string, required
            - `size` string, required
            - `tracking` string, required
            - `weight` integer, required
    - `supportedSchemes` string[], required
  - `published_at` string, date-time, required
  - `published_by` string, required
  - `revision` integer, required
  - `source_revision` integer
  - `theme_id` string, required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Entity
- `500`: Internal Server Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/openpo/apis/openpost-api.md) · [All operations](https://skmtc.dev/openpo/apis/openpost-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openpo/apis/openpost-api/revisions/67d3964458a7?raw)
