Organization Themes

Resolve the complete Workspace theme

Returns one complete manifest. Resolution precedence: locked or missing Workspace selection inherits the Organization default; the default falls back to Workshop. Missing, invalid, unpublished, deleted, inaccessible, or unsupported references fall back as a whole to Workshop with a fallbackReason; the response never mixes schemes or token sources. Cache identity is source:id:version:scheme (fallbacks additionally key on reason) and served as ETag. Native clients: token values use web CSS value syntax (px/rem/em/%, ms/s, oklch(), color-mix(), cubic-bezier); map them to platform values (16px root, hex8 color, millisecond durations, closed recipe enums) and validate the result before staging. Resource URLs are same-origin /api/v1/theme-assets/{id}/content scoped by workspace_id, theme_id, and revision with optional ttf/otf font derivatives.

get/themes/resolved

Request

  • Base URL: https://app.openpo.st/api/v1
  • URL: https://app.openpo.st/api/v1/themes/resolved
  • Auth: one of:
    • HTTP bearer
    • API key in cookie openpost_session

Query parameters

workspace_idstring required

Workspace ID

scheme'light' | 'dark' required

Effective light or dark scheme already chosen from the user's system preference

Headers

If-None-Matchstring

Resolved theme cache identity

Response

OK

$schemastring uri

A URL to the JSON Schema for this object.

fallbackReason'missing-theme' | 'invalid-manifest' | 'unsafe-resource' | 'unsupported-scheme' | 'resource-failed'
iconPack'lucide' | 'heroicons-outline' | 'heroicons-solid' | 'phosphor' | 'tabler' required
idstring required
namestring required
requestedScheme'light' | 'dark' required
revisionstring required
scheme'light' | 'dark' required
source'builtin' | 'organization' | 'fallback' required

Example response

{
  "$schema": "https://example.com/api/v1/schemas/ResolvedTheme.json"
}

Changes

No recorded changes to this operation across all 1 revision of this API.