---
title: "Partial update; config merges into the saved settings; status active, paused or archived; expected_version guards concurrent edits."
method: PATCH
path: "/v1/workspaces/{workspaceId}/signup-forms/{formId}"
---

# Partial update; config merges into the saved settings; status active, paused or archived; expected_version guards concurrent edits.

`PATCH /v1/workspaces/{workspaceId}/signup-forms/{formId}`

## Request

- Base URL: `https://api.bangermail.com`
- URL: `https://api.bangermail.com/v1/workspaces/{workspaceId}/signup-forms/{formId}`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `name` string
  - `kind` 'inline' | 'popup' | 'bar' | 'slide_in' | 'page'
  - `list_id` string, uuid
  - `list_name` string
  - `mailbox_id` string, uuid, nullable
  - `double_opt_in` boolean
  - `config` SignupFormConfig
    - `eyebrow` string
    - `headline` string
    - `body` string
    - `button_label` string
    - `email_placeholder` string
    - `name_placeholder` string
    - `fine_print` string
    - `incentive` string
    - `success_headline` string
    - `success_body` string
    - `redirect_url` string
    - `image_url` string
    - `art` 'arcs' | 'blocks' | 'horizon' | 'confetti' | 'frame' | 'bands' | 'dots'
    - `style` '' | 'brand' | 'material' | 'clarity' | 'editorial' | 'bold' | 'luxe' | 'playful' | 'plain'
    - `count_noun` string
    - `confirm_promise` string
    - `locale` string
    - `collect_name` boolean
    - `show_logo` boolean
    - `show_count` boolean
    - `exit_intent` boolean
    - `delay_seconds` integer
    - `scroll_percent` integer
    - `frequency_days` integer
    - `image` 'none' | 'photo' | 'art'
    - `layout` 'stacked' | 'split'
    - `theme` 'light' | 'dark' | 'brand' | 'auto'
    - `position` 'bottom' | 'top' | 'right' | 'left'
    - `fields` object[]
      - `key` string
      - `label` string, required
      - `type` 'text' | 'select' | 'checkbox'
      - `required` boolean
      - `placeholder` string
      - `options` string[]
  - `status` 'active' | 'paused' | 'archived'
  - `expected_version` integer

## Response `200`

Successful response.

- object
  - `data` object, required
    - `id` string, uuid, required
    - `product_id` string, uuid, required
    - `public_id` string, required
    - `name` string, required
    - `kind` 'inline' | 'popup' | 'bar' | 'slide_in' | 'page', required
    - `list_id` string, uuid, required
    - `list_name` string, required
    - `mailbox_id` string, uuid, nullable, required
    - `double_opt_in` boolean, required
    - `config` SignupFormConfig, required
      - `eyebrow` string
      - `headline` string
      - `body` string
      - `button_label` string
      - `email_placeholder` string
      - `name_placeholder` string
      - `fine_print` string
      - `incentive` string
      - `success_headline` string
      - `success_body` string
      - `redirect_url` string
      - `image_url` string
      - `art` 'arcs' | 'blocks' | 'horizon' | 'confetti' | 'frame' | 'bands' | 'dots'
      - `style` '' | 'brand' | 'material' | 'clarity' | 'editorial' | 'bold' | 'luxe' | 'playful' | 'plain'
      - `count_noun` string
      - `confirm_promise` string
      - `locale` string
      - `collect_name` boolean
      - `show_logo` boolean
      - `show_count` boolean
      - `exit_intent` boolean
      - `delay_seconds` integer
      - `scroll_percent` integer
      - `frequency_days` integer
      - `image` 'none' | 'photo' | 'art'
      - `layout` 'stacked' | 'split'
      - `theme` 'light' | 'dark' | 'brand' | 'auto'
      - `position` 'bottom' | 'top' | 'right' | 'left'
      - `fields` object[]
        - `key` string
        - `label` string, required
        - `type` 'text' | 'select' | 'checkbox'
        - `required` boolean
        - `placeholder` string
        - `options` string[]
    - `status` 'active' | 'paused' | 'archived', required
    - `views` integer, required
    - `submissions` integer, required
    - `confirmations` integer, required
    - `subscribers` integer, required
    - `version` integer, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `hosted_url` string, required
    - `embed_code` string, required
    - `embed_slot` string, required
    - `open_button` string, required
    - `conversion_rate` number, required
    - `replayed` boolean, required

## Other responses

- `409`: The form changed since it was loaded.

---

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