> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://typeform.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://typeform.ferndocs.com/_mcp/server.

# Update form

PUT https://api.typeform.com/forms/{form_id}
Content-Type: application/json

Updates an existing form.

Your request body must include all the existing form fields, in addition to the new email field.

Overwrites the previously stored form with the given `form_id`. Any new fields in your request will be added to the form. Likewise, any fields you don't include in your request will be deleted from the form. **Make sure your `PUT` request contains every field you want to include in your updated form, including the field `id`.**

**NOTE:**  Tread carefully when updating fields in forms. `PUT` overwrites the entire form, so if you don't include each field (with the original field `id`) in your `PUT` request, the missing fields **and results for those fields** will be deleted.

Details about the fields and elements for this endpoint are available in the **Create Form** description.

The `theme` property applies a theme to the form. If you don't specify a value for the 'theme' property, Typeform applies a **new** copy of the default theme to the form, **even if you already have a copy of the default theme applied to this form.**

Reference: https://typeform.ferndocs.com/documentation/create-api/api-reference/forms/replace

## Authentication

- `Authorization` header (bearer token, required) — Bearer token authentication. Tokens can be generated from the user account. Privileges needed may vary.
- `Authorization` header (required) — A string representation of JWT containing at least two parameters: `ctx.user_id` — user's id `ctx.account_id` — user's default account id `ctx.account_uid` — user's default account uid The usage of account_(u)id from JWT is discouraged, user can have access to multiple accounts, every endpoint has to be account aware if it's needed. This JWT must be signed by the appropriate authority.

## Request

### Path parameters

- `form_id` (any, required) — Unique ID for the form. Find in your form URL. For example, in the URL "https://mysite.typeform.com/to/u6nXL7" the form_id is `u6nXL7`.

### Body (application/json)

This endpoint expects an object.

- `title` (string, required) — Title to use for the typeform.
- `workspace` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWorkspace, required) — URL of the workspace to use for the typeform. If you don't specify a URL for the workspace, Typeform saves the form in the default workspace.
- `fields` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItems, optional)
- `cui_settings` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaCuiSettings, optional)
- `hidden` (list of string, optional) — Array of Hidden Fields to use in the form.
- `logic` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItems, optional)
- `settings` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettings, optional)
- `thankyou_screens` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItems, optional)
- `theme` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaTheme, optional) — URL of the theme to use for the typeform. If you don't specify a URL for the theme, Typeform applies a new copy of the default theme to the form.
- `type` (enum, optional, default: quiz) — Form type for the typeform.
  - Allowed values: `quiz`, `classification`, `score`, `branching`, `classification_branching`, `score_branching`
- `variables` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaVariables, optional)
- `welcome_screens` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItems, optional)

## Response

### 200

OK

## Types

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWorkspace

URL of the workspace to use for the typeform. If you don't specify a URL for the workspace, Typeform saves the form in the default workspace.

- `href` (string, optional)

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItems

Reference for properties in a field. The required fields and properties depend on the `type` value.

- `title` (string, required) — Unique name you assign to the field on this form.
- `type` (enum, required) — The type of field.
  - Allowed values: `calendly`, `contact_info`, `date`, `dropdown`, `email`, `file_upload`, `group`, `legal`, `long_text`, `matrix`, `multiple_choice`, `nps`, `number`, `opinion_scale`, `payment`, `phone_number`, `picture_choice`, `ranking`, `rating`, `short_text`, `statement`, `website`, `yes_no`
- `id` (string, required) — The unique ID for the question.
- `title` (string, required) — Unique name you assign to the field on this form.
- `type` (enum, required) — The type of field.
  - Allowed values: `calendly`, `contact_info`, `date`, `dropdown`, `email`, `file_upload`, `group`, `legal`, `long_text`, `matrix`, `multiple_choice`, `nps`, `number`, `opinion_scale`, `payment`, `phone_number`, `picture_choice`, `ranking`, `rating`, `short_text`, `statement`, `website`, `yes_no`
- `ref` (string, optional) — Readable name you can use to reference the field.
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItems, optional) — Reference for properties in a field. The required fields and properties depend on the `type` value.
- `validations` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsValidations, optional)
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `layout` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayout, optional) — Allows you to position attachment. Available in all fields, Welcome and Thank you screens.
- `ref` (string, optional) — Readable name you can use to reference the field.
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItems, optional) — Reference for properties in a field. The required fields and properties depend on the `type` value.
- `validations` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsValidations, optional)
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `layout` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayout, optional) — Allows you to position attachment. Available in all fields, Welcome and Thank you screens.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaCuiSettings

- `avatar` (string, optional) — URL for the image to use as conversation avatar. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`.
- `is_typing_emulation_disabled` (boolean, optional) — Specifies whether to disable the conversation's typing emulation (i.e. the delay between messages, the aim of which is to give the impression there's an actual person on the other side of the conversation). Typing emulation is enabled by default.
- `typing_emulation_speed` (enum, optional) — The pace at which messages appear in a conversation (as long as typing emulation is enabled).
  - Allowed values: `slow`, `medium`, `fast`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItems

- `type` (enum, required) — Specifies whether the Logic Jump is based on a question field or Hidden Field.
  - Allowed values: `field`, `hidden`
- `actions` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItems, required) — Array of objects that define the Logic Jump's behavior.
- `ref` (string, optional) — Reference to the field that triggers the the Logic Jump.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettings

- `language` (enum, optional)
  - Allowed values: `en`, `es`, `ca`, `fr`, `de`, `ru`, `it`, `da`, `pt`, `ch`, `zh`, `nl`, `no`, `uk`, `ja`, `ko`, `hr`, `fi`, `sv`, `pl`, `el`, `hu`, `tr`, `cs`, `et`, `di`
- `is_public` (boolean, optional, default: true) — true if your form is public. Otherwise, false (your form is private).
- `autocomplete_progress` (boolean, optional, default: true) — true to enable saving partial form responses on the client side. Otherwise, false.
- `progress_bar` (enum, optional, default: proportion) — Basis for the progress bar displayed on the screen. Choose "proportion" to show the number of questions answered so far. Choose "percentage" to show the percentage of questions answered so far.
  - Allowed values: `percentage`, `proportion`
- `show_progress_bar` (boolean, optional, default: true) — true to display progress bar on the typeform. Otherwise, false.
- `show_typeform_branding` (boolean, optional, default: true) — true to display Typeform brand on the typeform. false to hide Typeform branding on the typeform. Hiding Typeform branding is available for [Premium accounts](https://help.typeform.com/hc/en-us/articles/360030829332).
- `show_time_to_complete` (boolean, optional, default: true) — true to display estimated time to complete a typeform on Welcome screens, false to hide it. Mutually exclusive with show_number_of_submissions
- `show_number_of_submissions` (boolean, optional, default: false) — true to display number of submissions on Welcome screens, false to hide it. Mutually exclusive with show_time_to_complete
- `show_cookie_consent` (boolean, optional, default: false) — true to request cookie consent to respondents through a banner, false to do not request it.
- `show_question_number` (boolean, optional, default: true) — true to display the question number on each block, false to hide it.
- `show_key_hint_on_choices` (boolean, optional, default: true) — true to display the key hint letters on Multiple Choice, Picture Choice, Legal and Yes/No blocks, false to hide them.
- `hide_navigation` (boolean, optional, default: false) — false to display the navigation arrows in the bottom-right corner of the form, true to hide them
- `meta` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettingsMeta, optional)
- `redirect_after_submit_url` (string, optional) — URL where the typeform should redirect upon submission.
- `google_analytics` (string, optional) — Google Analytics tracking ID to use for the form.
- `facebook_pixel` (string, optional) — Facebook Pixel tracking ID to use for the form.
- `google_tag_manager` (string, optional) — Google Tag Manager ID to use for the form.
- `milestones` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettingsMilestonesItems, optional) — An array with block references, indicating where each partial submit point is located. Currently, only one partial submit point per form is allowed. If more than one item is sent within the array, the form definition will be rejected. If the status is inactive, there's also a reason.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItems

- `title` (string, required) — Title for the thank you screen.
- `ref` (string, optional) — Readable name you can use to reference the thank you screen.
- `type` (enum, optional) — The type of thank you screen.
  - Allowed values: `thankyou_screen`, `url_redirect`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItems, optional)
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `layout` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayout, optional) — Allows you to position attachment. Available in all fields, Welcome and Thank you screens.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaTheme

URL of the theme to use for the typeform. If you don't specify a URL for the theme, Typeform applies a new copy of the default theme to the form.

- `href` (string, optional)

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaVariables

- `price` (double, optional) — Recall Information for tracking the total price of all items users select (for example, for shopping carts, donation campaigns, and payment collections).
- `score` (integer, optional) — Recall Information for keeping score as users answer each question (for example, for quizzes).

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItems

- `title` (string, required) — Title for the welcome screen.
- `ref` (string, optional) — Readable name you can use to reference the welcome screen.
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItems, optional)
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `layout` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayout, optional) — Allows you to position attachment. Available in all fields, Welcome and Thank you screens.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsValidations

- `required` (boolean, optional, default: false) — true if respondents must provide an answer. Otherwise, false. Available for `matrix`, `ranking`, `date`, `dropdown`, `email`, `file_upload`, `legal`, `long_text`, `multiple_choice`, `number`, `opinion_scale`, `payment`, `picture_choice`, `rating`, `short_text`, `website`, `phone_number`, and `yes_no` types.
- `max_length` (integer, optional, default: 0) — Maximum number of characters allowed in the answer. Available for `long_text` and `short_text` types.
- `min_value` (integer, optional, default: 0) — Minimum value allowed in the answer, must be a positive integer. Available for `number` types.
- `max_value` (integer, optional, default: 0) — Maximum value allowed in the answer, must be a positive integer. Available for `number` types.
- `min_selection` (integer, optional, default: 0) — Minimum selections allowed in the answer, must be a positive integer. Available for `ranking`, `multiple_choice` and `picture_choice` types.
- `max_selection` (integer, optional, default: 0) — Maximum selections allowed in the answer, must be a positive integer. Available for `ranking`, `multiple_choice` and `picture_choice` types.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsAttachment

Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

- `type` (enum, optional) — Type of attachment.
  - Allowed values: `image`, `video`
- `href` (string, optional) — URL for the image or video you want to display. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`. For videos, use the URL of the supported platforms, `Vimeo`, `YouTube` or `Pexels`.
- `scale` (enum, optional) — Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6.
  - Allowed values: `0.4`, `0.6`, `0.8`, `1`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayout

Allows you to position attachment. Available in all fields, Welcome and Thank you screens.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts
  - Allowed values: `left`, `right`
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `viewport_overrides` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutViewportOverrides, optional) — Allows you to add layout-specific overrides per viewport (small / large). Available in all fields, Welcome and Thank you screens.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItems

- `action` (enum, required) — Behavior the Logic Jump will take.
  - Allowed values: `jump`, `add`, `subtract`, `multiply`, `divide`, `set`
- `details` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetails, required) — Properties that further specify how the Logic Jump will behave.
- `condition` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsCondition, required) — Conditions for executing the Logic Jump. Conditions answer the question, "Under what circumstances?" The condition object is the IF statement in your Logic Jump.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettingsMeta

- `title` (string, optional) — Title that represents how the typeform is named in the workspace.
- `allow_indexing` (boolean, optional, default: true) — true to allow search engines to index your typeform. Otherwise, false.
- `description` (string, optional) — Description for search engines to display for your typeform.
- `image` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettingsMetaImage, optional)

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettingsMilestonesItems

- `field_ref` (string, optional) — Block reference after which "submit and continue" would be shown in the renderer.
- `status` (enum, optional) — Informative, can't be set through API.
  - Allowed values: `active`, `inactive`
- `reason` (enum, optional) — Informative, can't be set through API.
  - Allowed values: `wrong_position`, `incompatible_feature`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsAttachment

Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

- `type` (enum, optional) — Type of attachment.
  - Allowed values: `image`, `video`
- `href` (string, optional) — URL for the image or video you want to display. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`. For videos, use the URL of the supported platforms, `Vimeo`, `YouTube` or `Pexels`.
- `scale` (enum, optional) — Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6.
  - Allowed values: `0.4`, `0.6`, `0.8`, `1`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayout

Allows you to position attachment. Available in all fields, Welcome and Thank you screens.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts
  - Allowed values: `left`, `right`
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `viewport_overrides` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutViewportOverrides, optional) — Allows you to add layout-specific overrides per viewport (small / large). Available in all fields, Welcome and Thank you screens.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsAttachment

Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

- `type` (enum, optional) — Type of attachment.
  - Allowed values: `image`, `video`
- `href` (string, optional) — URL for the image or video you want to display. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`. For videos, use the URL of the supported platforms, `Vimeo`, `YouTube` or `Pexels`.
- `scale` (enum, optional) — Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6.
  - Allowed values: `0.4`, `0.6`, `0.8`, `1`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayout

Allows you to position attachment. Available in all fields, Welcome and Thank you screens.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts
  - Allowed values: `left`, `right`
- `attachment` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.
- `viewport_overrides` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutViewportOverrides, optional) — Allows you to add layout-specific overrides per viewport (small / large). Available in all fields, Welcome and Thank you screens.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutAttachment

Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

- `type` (enum, optional) — Type of attachment.
  - Allowed values: `image`, `video`
- `href` (string, optional) — URL for the image or video you want to display. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`. For videos, use the URL of the supported platforms, `Vimeo`, `YouTube` or `Pexels`.
- `scale` (enum, optional) — Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6.
  - Allowed values: `0.4`, `0.6`, `0.8`, `1`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutViewportOverrides

Allows you to add layout-specific overrides per viewport (small / large). Available in all fields, Welcome and Thank you screens.

- `small` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutViewportOverridesSmall, optional) — Allows you to add layout-specific overrides for small viewports.
- `large` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutViewportOverridesLarge, optional) — Allows you to add layout-specific overrides for large viewports.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetails

Properties that further specify how the Logic Jump will behave.

- `to` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsTo, optional) — Specifies where the Logic Jump leads---to another field ("field"), a thank you screen ("thankyou") or an outcome ("outcome").
- `target` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsTarget, optional) — Keeps a running total for variables.
- `value` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValue, optional) — Specifies the value to use in the calculation for the variables.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsCondition

Conditions for executing the Logic Jump. Conditions answer the question, "Under what circumstances?" The condition object is the IF statement in your Logic Jump.

- `op` (enum, required) — Operator for the condition.
  - Allowed values: `begins_with`, `ends_with`, `contains`, `not_contains`, `lower_than`, `lower_equal_than`, `greater_than`, `greater_equal_than`, `is`, `is_not`, `equal`, `not_equal`, `always`, `on`, `not_on`, `earlier_than`, `earlier_than_or_on`, `later_than`, `later_than_or_on`
- `vars` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsConditionVarsItems, required) — Object that defines the field type and value to evaluate with the operator.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaSettingsMetaImage

- `href` (string, optional) — URL of image for search engines to display for your typeform.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutAttachment

Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

- `type` (enum, optional) — Type of attachment.
  - Allowed values: `image`, `video`
- `href` (string, optional) — URL for the image or video you want to display. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`. For videos, use the URL of the supported platforms, `Vimeo`, `YouTube` or `Pexels`.
- `scale` (enum, optional) — Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6.
  - Allowed values: `0.4`, `0.6`, `0.8`, `1`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutViewportOverrides

Allows you to add layout-specific overrides per viewport (small / large). Available in all fields, Welcome and Thank you screens.

- `small` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutViewportOverridesSmall, optional) — Allows you to add layout-specific overrides for small viewports.
- `large` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutViewportOverridesLarge, optional) — Allows you to add layout-specific overrides for large viewports.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutAttachment

Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

- `type` (enum, optional) — Type of attachment.
  - Allowed values: `image`, `video`
- `href` (string, optional) — URL for the image or video you want to display. Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`. For videos, use the URL of the supported platforms, `Vimeo`, `YouTube` or `Pexels`.
- `scale` (enum, optional) — Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6.
  - Allowed values: `0.4`, `0.6`, `0.8`, `1`
- `properties` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutAttachment, optional) — Allows you to display images and videos. Available for welcome and thank you screens, as well as all fields.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutViewportOverrides

Allows you to add layout-specific overrides per viewport (small / large). Available in all fields, Welcome and Thank you screens.

- `small` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutViewportOverridesSmall, optional) — Allows you to add layout-specific overrides for small viewports.
- `large` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutViewportOverridesLarge, optional) — Allows you to add layout-specific overrides for large viewports.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutViewportOverridesSmall

Allows you to add layout-specific overrides for small viewports.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts.
  - Allowed values: `left`, `right`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaFieldsItemsLayoutViewportOverridesLarge

Allows you to add layout-specific overrides for large viewports.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts.
  - Allowed values: `left`, `right`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsTo

Specifies where the Logic Jump leads---to another field ("field"), a thank you screen ("thankyou") or an outcome ("outcome").

- `type` (enum, required) — Logic Jump "to" option you are using.
  - Allowed values: `field`, `thankyou`, `outcome`
- `value` (string, required) — The "ref" value for the field, Hidden Field, or thank you screen the Logic Jump leads to.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsTarget

Keeps a running total for variables.

- `type` (enum, required) — Specifies that the value is a variable.
  - Allowed values: `variable`
- `value` (string, required) — Variable name to use in the calculation.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValue

Specifies the value to use in the calculation for the variables.

- `type` (enum, required) — Specifies which type of value is used.---It can be a numeric value, a variable name or an `evaluation` to determine an `outcome`.
  - Allowed values: `constant`, `variable`, `evaluation`
- `value` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValueValue, required) — Value used in the variable calculation.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsConditionVarsItems

- `type` (enum, required) — Type of value the condition object refers to.
  - Allowed values: `field`, `hidden`, `variable`, `constant`, `choice`
- `value` (FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsConditionVarsItemsValue, required) — Value to check for in the "type" field to evaluate with the operator.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutViewportOverridesSmall

Allows you to add layout-specific overrides for small viewports.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts.
  - Allowed values: `left`, `right`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaThankyouScreensItemsLayoutViewportOverridesLarge

Allows you to add layout-specific overrides for large viewports.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts.
  - Allowed values: `left`, `right`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutViewportOverridesSmall

Allows you to add layout-specific overrides for small viewports.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts.
  - Allowed values: `left`, `right`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaWelcomeScreensItemsLayoutViewportOverridesLarge

Allows you to add layout-specific overrides for large viewports.

- `type` (enum, optional) — Type of layout.
  - Allowed values: `split`, `wallpaper`, `float`, `stack`
- `placement` (enum, optional) — Position of media for split and float layouts.
  - Allowed values: `left`, `right`

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValueValue

Value used in the variable calculation.

- double
- string
- FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValueValue2

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsConditionVarsItemsValue

Value to check for in the "type" field to evaluate with the operator.

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValueValue2

Evaluation of possible outcomes

- `op` (enum, optional) — operator representing outcome evaluation
  - Allowed values: `max_outcome`
- `vars` (list of FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValueValueOneOf2VarsItems, optional)

### FormsFormIdPutRequestBodyContentApplicationJsonSchemaLogicItemsActionsItemsDetailsValueValueOneOf2VarsItems

outcome to evaluate

- `type` (enum, optional)
  - Allowed values: `outcome`
- `value` (string, optional) — outcome reference

## Examples

**Request**

```json
{
  "title": "string"
}
```

**Response**

```json
{}
```

**SDK Code**

```python
import requests

url = "https://api.typeform.com/forms/:form_id"

payload = { "title": "string" }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.typeform.com/forms/:form_id';
const options = {
  method: 'PUT',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"title":"string"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.typeform.com/forms/:form_id"

	payload := strings.NewReader("{\n  \"title\": \"string\"\n}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.typeform.com/forms/:form_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"title\": \"string\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.put("https://api.typeform.com/forms/:form_id")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"title\": \"string\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.typeform.com/forms/:form_id', [
  'body' => '{
  "title": "string"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.typeform.com/forms/:form_id");
var request = new RestRequest(Method.PUT);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"title\": \"string\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["title": "string"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.typeform.com/forms/:form_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```