---
title: "Save a team's design-system changes"
method: POST
path: "/v1/teams/{teamId}/design-system/changes"
tags: ["Teams"]
---

# Save a team's design-system changes

`POST /v1/teams/{teamId}/design-system/changes`

## Request

- Base URL: `https://api.spacefast.com`
- URL: `https://api.spacefast.com/v1/teams/{teamId}/design-system/changes`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.spacefast.com/v1/auth/oauth2/authorize`, token URL `https://api.spacefast.com/v1/auth/oauth2/token`; client credentials, token URL `https://api.spacefast.com/v1/auth/oauth2/token`, scopes: `spaces:write`)

Atomically saves partial color, typography, layout, tone, rule, and asset-guidance changes. Omitted fields stay unchanged; null clears optional values. Upserts without IDs create records. changes lists changed colors, rules, and assets in that collection order, with upserts then removals in request order, followed by typography, layout, and tone; unchanged entries are omitted. Remove archives a record. Pass the current expectedRevision (0 for the first save); a stale revision returns 409. Reuse operationId and identical input after an uncertain response. Upload asset bytes separately, then reference the returned attachmentId. A save does not modify any Space's site files. Requires the team context beta.

## Path parameters

- `teamId` string, required

## Request body

- object
  - `operationId` string, required
  - `expectedRevision` integer, required
  - `changes` object, required
    - `colors` object
      - `upsert` object[]
        - `name` string
        - `hex` string
        - `usage` string, nullable
        - `id` string, uuid
      - `remove` string[]
    - `typography` object
      - `headings` object, nullable: Shared heading font; fontSizePx and lineHeightPx define Heading 1, with separate h2 and h3 sizes.
        - `fontSizePx` number, required
        - `lineHeightPx` number, required
        - `fontFamily` string, required
        - `h2` object, nullable
          - `fontSizePx` number, required
          - `lineHeightPx` number, required
        - `h3` object, nullable
          - `fontSizePx` number, required
          - `lineHeightPx` number, required
      - `body` object, nullable
        - `fontSizePx` number, required
        - `lineHeightPx` number, required
        - `fontFamily` string, required
      - `headingCase` 'sentence' | 'title' | 'uppercase' | 'lowercase' | 'unchanged', nullable
    - `layout` object
      - `pageWidthPx` number, nullable
      - `cornerRadiusPx` number, nullable
      - `sectionSpacingPx` number, nullable
    - `voice` object
      - `tone` string, nullable
      - `rules` object
        - `upsert` object[]
          - `text` string
          - `example` string, nullable
          - `id` string, uuid
        - `remove` string[]
    - `assets` object
      - `upsert` object[]
        - `attachmentId` integer
        - `category` 'logo' | 'imagery' | 'icon' | 'photo' | 'reference', nullable
        - `usage` string, nullable
        - `altText` string, nullable
        - `id` string, uuid
      - `remove` string[]

## Response `200`

Response for status 200

- object
  - `$schema` string, uri: Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
  - `data` object, required
    - `revision` integer, required
    - `actionId` string, uuid, nullable, required
    - `unchanged` boolean, required
    - `changes` object[], required
      - `id` string, required
      - `type` 'color' | 'typography' | 'layout' | 'tone' | 'rule' | 'asset', required
      - `action` 'created' | 'updated' | 'removed' | 'restored', required

## Other responses

- `default`: Problem details (RFC 9457). Any 4xx/5xx response is one `application/problem+json` document.

---

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