Skip to main content

Get paywall with server-side API

Retrieves a specific paywall in your app.

Method and endpoint

GET https://api.adapty.io/api/v2/server-side-api/paywalls/{paywall_id}/

Example request

curl --location 'https://api.adapty.io/api/v2/server-side-api/paywalls/{paywall_id}/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Api-Key <YOUR_SECRET_API_KEY>'

Placeholders:

  • <YOUR_SECRET_API_KEY>: Your secret API key for authorization.
  • {paywall_id}: The unique identifier of the paywall.

Parameters

Path parameters

ParameterTypeRequiredDescription
paywall_idstringYesThe unique identifier of the paywall to retrieve

Successful response: 200: OK

The paywall object in the response contains the following properties:

NameTypeRequiredDescription
titleStringYesThe name of the paywall, as defined in your Adapty Dashboard.
paywall_idStringYesThe unique identifier of the paywall.
use_paywall_builderBooleanYesWhether the paywall uses the paywall builder.
use_paywall_builder_legacyBooleanYesWhether the paywall uses the legacy paywall builder.
updated_atStringYesTimestamp when the paywall was last updated.
created_atStringYesTimestamp when the paywall was created.
stateStringYesThe current state of the paywall: draft, live, inactive, or archived.
is_deletedBooleanYesWhether the paywall is marked as deleted.
web_purchase_urlStringNoURL for web purchases, if applicable.
productsArray of objectsYesArray of Product objects containing product information.
remote_configsArray of objectsNoArray of RemoteConfig objects with locale and data.
main_screenshotObjectNoMain screenshot object with image_id and url.

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"
}
}

Errors

401: Unauthorized

The request failed due to missing or incorrect authorization. Check the Authorization page, paying close attention to the Authorization header.

The request also failed because the specified profile wasn’t found.

Body

ParameterTypeDescription
errorsObject
  • source: (string) Always non_field_errors.
  • errors: A description of the error.
error_codeStringShort error name. Always not_authenticated.
status_codeIntegerHTTP status. Always 401.

Response example

{
"errors": [
{
"source": "non_field_errors",
"errors": [
"Authentication credentials were not provided."
]
}
],
"error_code": "not_authenticated",
"status_code": 401
}

404: Not found

The request failed because the specified paywall wasn't found. Double-check the paywall_id for any typos.

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

See also: