---
title: "Update subscription form"
method: PUT
path: "/subscription-forms/{subscriptionFormId}"
tags: ["Subscription Forms"]
---

# Update subscription form

`PUT /subscription-forms/{subscriptionFormId}`

## Request

- Base URL: `/management/v2/environments/DEFAULT` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/management/v2/environments/DEFAULT/subscription-forms/{subscriptionFormId}`
- Auth: one of:
  - HTTP basic
  - API key in cookie `Auth-Graviteeio-APIM`

Update the existing subscription form. The form content is defined using Gravitee Markdown (GMD)
syntax with form components.

Note: This operation does NOT change the enabled state. Use _enable/_disable endpoints for that.

User must have the ENVIRONMENT_SETTINGS[UPDATE] permission.

## Path parameters

- `subscriptionFormId` string, uuid, required

## Request body

- UpdateSubscriptionForm: Payload for updating a subscription form
  - `gmdContent` string, required: Gravitee Markdown (GMD) content defining the form. Supports form components like gmd-input, gmd-textarea, gmd-select, gmd-checkbox, gmd-radio. Content is validated for security - malicious HTML/scripts will be rejected.

## Response `200`

Subscription form saved successfully

- SubscriptionForm: Subscription form definition used by API consumers when subscribing to APIs
  - `id` string, uuid, required: Unique identifier of the subscription form
  - `gmdContent` string, required: Gravitee Markdown (GMD) content defining the form. Supports form components like gmd-input, gmd-textarea, gmd-select, gmd-checkbox, gmd-radio.
  - `enabled` boolean, required: Whether the form is enabled and visible to API consumers in the Developer Portal
  - `resolvedOptions` object: Resolved option lists for fields that use EL expressions. Keys are field keys; values are the effective option lists (fallback values when no API context is available). Present only when at least one field has dynamic options.

## Other responses

- `400`: Invalid or unsafe GMD content
- `404`: No subscription form exists with this ID
- `default`: Generic error response

## Changes

- **2026-04-03** `e308778b65d0`: 1 info
  - added the optional property `resolvedOptions` to the response with the `200` status
- **2026-02-17** `26283c0bd321`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gravitee-io/apis/gravitee-io-apim-management-api-environments/changes/subscription-forms/:subscriptionFormId/put.md)

---

[API](https://skmtc.dev/gravitee-io/apis/gravitee-io-apim-management-api-environments.md) - [All operations](https://skmtc.dev/gravitee-io/apis/gravitee-io-apim-management-api-environments/llms.txt) - [OpenAPI document](https://skmtc.dev/gravitee-io/apis/gravitee-io-apim-management-api-environments/revisions/b736a7e375df?raw)
