---
title: "Patch a form's settings"
method: PATCH
path: "/api/v1/manage/forms/{form}/settings"
tags: ["Settings"]
---

# Patch a form's settings

`PATCH /api/v1/manage/forms/{form}/settings`

## Request

- Base URL: `https://fillo.so`
- URL: `https://fillo.so/api/v1/manage/forms/{form}/settings`
- Auth: HTTP bearer

Update one or more operational settings. The request body IS the settings patch object, validated and saved by the same writer as the dashboard; any key set to null is cleared. Scope: settings:manage — plus forms:write whenever the patch names one of the six presentation keys (submitMode, submitLabel, successTitle, successMessage, redirectUrl, showProgress), which live inside the form schema rather than beside it. The 403 names the missing scope.

## Path parameters

- `form` string, required

## Request body

- FormSettings: A partial FormSettings patch (see @usefillo/core FormSettings): booleans such as notifyEmailIncludeAnswers, sendReceipt, saveProgress, draftAnswersVisible, resumeEmails, and draftDigest; strings such as notifyEmail, notifyEmailReplyToField, and resumeUrl; an array notifyEmailAnswerFields; and objects such as responseLimit and trust. Any key set to null is cleared. Six of the keys are not operational settings but part of the form's definition — submitMode, submitLabel, successTitle, successMessage, redirectUrl, and showProgress live inside the form schema: patching any of them additionally requires forms:write, and code-managed forms reject them outright.

## Response `200`

The updated settings.

- FormSettingsEnvelope
  - `settings` FormSettings, required: A partial FormSettings patch (see @usefillo/core FormSettings): booleans such as notifyEmailIncludeAnswers, sendReceipt, saveProgress, draftAnswersVisible, resumeEmails, and draftDigest; strings such as notifyEmail, notifyEmailReplyToField, and resumeUrl; an array notifyEmailAnswerFields; and objects such as responseLimit and trust. Any key set to null is cleared. Six of the keys are not operational settings but part of the form's definition — submitMode, submitLabel, successTitle, successMessage, redirectUrl, and showProgress live inside the form schema: patching any of them additionally requires forms:write, and code-managed forms reject them outright.

## Other responses

- `400`: Invalid request (e.g. a body on a GET/DELETE, or a missing required query parameter).
- `401`: Missing, malformed, unknown, revoked, or expired key.
- `403`: The key is valid but lacks the required scope.
- `404`: No such resource in this project (returned instead of 403 for ids in other projects).
- `409`: The patch conflicts with the form's current state.
- `429`: Per-key (120/min), per-workspace (240/min), or per-IP (300/min) rate limit exceeded. Retry after the Retry-After header.

---

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