PUT /api/v2/server-side-api/paywalls/{paywall_id}/

Update paywall

Updates the remote config of a specific paywall. This endpoint allows you to modify the remote config values that help you to customize the paywall's appearance and behavior.

Important: If you update a remote config, it will overwrite all the existing remote configs! If you need to preserve the existing remote configs, first, get the paywall. Then, copy the remote_configs from there and modify the objects you need in the update request.

Path parameters

paywall_idstring · uuidrequired

The unique identifier of the paywall to update

Request body

At least one field must be provided

remote_configsarray of objectrequired

Array of RemoteConfig objects to update

localestringrequired

The locale for the remote config (e.g., "en", "es", "fr")

datastringrequired

JSON string containing the remote config data

Responses

Paywall updated successfully

Schema
titlestringrequired

The name of the paywall, as defined in your Adapty Dashboard

paywall_idstringrequired

The unique identifier of the paywall

use_paywall_builderbooleanrequired

Whether the paywall uses the paywall builder

use_paywall_builder_legacybooleanrequired

Whether the paywall uses the legacy paywall builder

updated_atstringrequired

Timestamp when the paywall was last updated

created_atstringrequired

Timestamp when the paywall was created

statestringrequired

The current state of the paywall

One of: "draft", "live", "inactive", "archived"

is_deletedbooleanrequired

Whether the paywall is marked as deleted

web_purchase_urlstring

URL for web purchases, if applicable

productsarray of objectrequired

Array of Product objects containing product information

product_idstringrequired

The unique identifier of the product

titlestringrequired

The title of the product

product_setstringrequired

The product set category

One of: "weekly", "monthly", "trimonthly", "semiannual", "annual", "lifetime", "uncategorised", "nonsubscriptions", "two_months", "consumable"

offerobjectrequired
product_offer_idstringrequired

The unique identifier of the product offer

titlestringrequired

The title of the offer

remote_configsarray of object

Array of RemoteConfig objects with locale and data

localestringrequired

The locale for the remote config

datastringrequired

JSON string containing the remote config data

main_screenshotobject

Main screenshot object with image_id and url

image_idintegerrequired

The unique identifier of the image

urlstringrequired

The URL of the image

Example
{
  "title": "Premium Subscription",
  "paywall_id": "fd891d4f-5906-45b9-97c1-13cc3dc665df",
  "use_paywall_builder": true,
  "use_paywall_builder_legacy": false,
  "updated_at": "2025-07-30T11:13:58.798Z",
  "created_at": "2025-07-30T11:13:58.798Z",
  "state": "live",
  "is_deleted": false,
  "web_purchase_url": "https://example.com/purchase",
  "products": [
    {
      "product_id": "b95e9e51-a056-4eb6-9cf7-b75d139e7c3c",
      "title": "Premium Monthly",
      "product_set": "uncategorised",
      "offer": {
        "product_offer_id": "e31a4296-f250-4faf-ac80-3cc93c2da8f5",
        "title": "Free Trial"
      }
    }
  ],
  "remote_configs": [
    {
      "locale": "en",
      "data": "{\"title\":\"Premium Features\",\"subtitle\":\"Unlock all premium content\"}"
    }
  ],
  "main_screenshot": {
    "image_id": 123456,
    "url": "https://public-media.adapty.io/public/screenshot.jpg"
  }
}

Bad request

Schema
errorsarray of objectrequired
sourcestring

Source of the error

errorsarray of string

Array of error messages

error_codestringrequired

Short error name

status_codeintegerrequired

HTTP status code

Example
{
  "errors": [
    {
      "source": "remote_configs",
      "errors": [
        "At least one field must be provided"
      ]
    }
  ],
  "error_code": "validation_error",
  "status_code": 400
}

Unauthorized

Schema
errorsarray of objectrequired
sourcestring

Source of the error

errorsarray of string

Array of error messages

error_codestringrequired

Short error name

status_codeintegerrequired

HTTP status code

Example
{
  "errors": [
    "Invalid API key"
  ],
  "error_code": "unauthorized",
  "status_code": 401
}

Paywall not found

Schema
errorsarray of objectrequired
sourcestring

Source of the error

errorsarray of string

Array of error messages

error_codestringrequired

Short error name

status_codeintegerrequired

HTTP status code

Example
{
  "errors": [
    {
      "source": null,
      "errors": [
        "Paywall not found"
      ]
    }
  ],
  "error_code": "paywall_does_not_exist",
  "status_code": 404
}

Internal server error

Schema
errorsarray of objectrequired
sourcestring

Source of the error

errorsarray of string

Array of error messages

error_codestringrequired

Short error name

status_codeintegerrequired

HTTP status code