---
title: "Apply a Brand Edit"
method: POST
path: "/brands/{id}/edits/{editId}/apply"
tags: ["Brands"]
---

# Apply a Brand Edit

`POST /brands/{id}/edits/{editId}/apply`

## Request

- Base URL: `https://www.rainbrand.com/api/v1`
- URL: `https://www.rainbrand.com/api/v1/brands/{id}/edits/{editId}/apply`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://www.rainbrand.com/api/auth/oauth2/authorize`
    - Token URL: `https://www.rainbrand.com/api/auth/oauth2/token`

Make the proposed guidance and profile active. A stale edit cannot be applied. [Create a new edit](/api-reference/brands/create-a-brand-edit) from the current brand version.

## Path parameters

- `id` string, uuid, required: Brand ID
- `editId` string, uuid, required: Brand Edit ID

## Response `200`

OK

- object
  - `data` object, required
    - `id` string, uuid, required
    - `brandId` string, uuid, required
    - `status` 'preparing' | 'input_required' | 'awaiting_approval' | 'applied' | 'discarded' | 'stale' | 'no_changes' | 'failed', required
    - `baseSkillId` string, uuid, required
    - `target` object, nullable, required
      - `skillId` string, uuid, required
    - `changeSet` object, nullable, required
      - `schemaVersion` unknown, required
      - `baseSkillId` string, uuid, required: Canonical identity of the complete base Brand revision.
      - `targetSkillId` string, uuid, required: Canonical identity reserved for the complete candidate Brand revision.
      - `profileChanges` object[], required
        - `kind` 'field', required
        - `path` string, required
        - `operation` 'add' | 'remove' | 'replace', required
        - `previous` string, nullable, required
        - `next` string, nullable, required
      - `markdownChanges` object[], required
        - `path` string, required
        - `operation` 'add' | 'remove' | 'modify', required
        - `additions` integer, nullable, required
        - `deletions` integer, nullable, required
        - `hunks` object[], required
          - `oldStart` integer, required
          - `oldLines` integer, required
          - `newStart` integer, required
          - `newLines` integer, required
          - `lines` object[], required
            - `kind` 'context' | 'add' | 'remove', required
            - `text` string, required
            - `noNewlineAtEndOfFile` unknown
        - `truncated` boolean, required
      - `assetChanges` union[], required
        - union
          - object
            - `kind` 'asset', required
            - `role` 'primary_logo', required
            - `operation` 'add' | 'remove' | 'replace', required
            - `previousAssetId` string, uuid, nullable, required
            - `nextAssetId` string, uuid, nullable, required
          - object
            - `kind` 'asset', required
            - `role` 'font', required
            - `operation` 'add' | 'remove', required
            - `path` string, required
            - `family` string, required
            - `weight` integer, required
            - `format` 'woff' | 'woff2' | 'ttf' | 'otf', required
    - `targetProfile` object, nullable, required
      - `name` string, nullable, required
      - `colors` object[], nullable
        - `hex` string, required: Six-digit HEX color value, including the leading #.
        - `name` string: The color's name, when established by the source.
        - `group` string: The source's palette group label. Omit when the source does not group this color.
        - `usage` string: Source-supported guidance on when and how to use this color.
      - `gradients` object[]: The Brand's evidenced linear gradients in source order, including exact angles, stops, and usage guidance.
        - `name` string, required: The gradient's name, as established by the source.
        - `angle` number, required: The linear gradient's angle in degrees, from 0 up to but not including 360.
        - `stops` object[], required: At least two color stops in non-decreasing position order. Adjacent stops may share a position to create a hard transition.
          - `hex` string, required: Six-digit HEX color value for this stop, including the leading #.
          - `position` number, required: The stop's position as a percentage from 0 to 100.
        - `usage` string: Source-supported guidance on when and how to use this gradient.
      - `primaryLogo` object, nullable, required
        - `imageId` string, uuid, required
      - `typography` object
        - `roles` object[], required
          - `name` string, required
          - `weight` integer, nullable, required
          - `font` union, required
            - object
              - …
            - object
              - …
        - `heading` union, required: Deprecated. Font of the role named Heading, if any.
          - object
            - `source` 'google' | 'custom', required
            - `family` string, required
          - object
            - `family` string, required
            - `status` 'unavailable', required
            - `reason` string, required
        - `body` union, required: Deprecated. Font of the role named Body, if any.
          - object
            - `source` 'google' | 'custom', required
            - `family` string, required
          - object
            - `family` string, required
            - `status` 'unavailable', required
            - `reason` string, required
    - `interaction` union, required
      - object
        - `id` string, uuid, required
        - `subject` string, required
        - `prompt` string, required
        - `kind` 'clarification', required
        - `accepts` object, required
          - `text` object
            - `required` boolean
            - `minLength` integer
            - `maxLength` integer
          - `images` object
            - `min` integer
            - `max` integer, required
          - `sources` object
            - `min` integer
            - `max` integer, required
      - object
        - `id` string, uuid, required
        - `subject` string, required
        - `prompt` string, required
        - `kind` 'choice', required
        - `options` object[], required
          - `id` string, required
          - `label` string, required
          - `description` string
          - `imageIds` string[]
        - `alternate` object
          - `label` string
          - `accepts` object, required
            - `text` object
              - …
            - `images` object
              - …
            - `sources` object
              - …
    - `replacement` object, nullable, required
      - `replacesEditId` string, uuid, nullable, required
      - `replacedByEditId` string, uuid, nullable, required
      - `discardReason` 'explicit' | 'replaced', nullable, required
    - `changeSummary` string, nullable, required
    - `statusMessage` string, required
    - `error` object, nullable, required
      - `code` string, required
      - `message` string, required
      - `retryable` boolean, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `401`: 401
- `403`: 403
- `404`: 404
- `409`: 409
- `429`: 429
- `500`: 500

---

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