Skip to main content
Skip to navigation

Developer API (2.0.0)

Download OpenAPI specification:Download

Paywall

Part of the REST API v2 Reference. More Paywall endpoints: Paywall Fonts & Media, Paywall Publishing.

Operations about paywalls.

Endpoints

Get a list of paywalls

This endpoint requires the following permission(s): project_configuration:offerings:read. This endpoint belongs to the Project Configuration domain, which has a default rate limit of 60 requests per minute.

Authorizations:
BearerAuth
path Parameters
project_id
required
string <= 255 characters
Example: proj1ab2c3d4

ID of the project

query Parameters
starting_after
string
Example: starting_after=ent12354

Pagination cursor. Pass the id of the last item from the previous page to fetch the next page; omit for the first page.

limit
integer
Default: 20
Example: limit=10

Maximum number of items to return per page. Values below 1 or above 100 are clamped to that range rather than rejected.

expand
Array of strings[ items [ 1 .. 5000 ] characters ]
Items Value: "items.offering"
Example: expand=items.offering

Specifies which fields in the response should be expanded. Accepted values are: items.offering (requires project_configuration:offerings:read permission).

Responses

Response samples

Content type
application/json
{
  • "object": "list",
  • "items": [
    ],
  • "next_page": "/v2/projects/proj1ab2c3d4/paywalls?starting_after=pwXXXXXXXXXXXXXX",
  • "url": "/v2/projects/proj1ab2c3d4/paywalls"
}

Create a paywall

Create a paywall draft for a project. You can either use the offering template shortcut or provide full draft components directly. This endpoint requires the following permission(s): project_configuration:offerings:read_write. This endpoint belongs to the Project Configuration domain, which has a default rate limit of 60 requests per minute.

Authorizations:
BearerAuth
path Parameters
project_id
required
string <= 255 characters
Example: proj1ab2c3d4

ID of the project

Request Body schema: application/json
required
One of
offering_id
required
string [ 1 .. 200 ] characters

The ID of the offering the paywall will be created for.

automatically_scale_font_size
boolean
Default: true

Whether font sizes should automatically scale for this paywall. Defaults to true.

Responses

Request samples

Content type
application/json
Example
{
  • "offering_id": "ofrng123456789a",
  • "automatically_scale_font_size": true
}

Response samples

Content type
application/json
{
  • "object": "paywall",
  • "id": "pw123456789abcdef",
  • "name": "My Awesome Paywall",
  • "offering_id": "ofrng123456789a",
  • "created_at": 1658399423658,
  • "published_at": 1658399423958,
  • "automatically_scale_font_size": true,
  • "revision": 3,
  • "offering": {
    },
  • "components": {
    }
}

Get a paywall

This endpoint requires the following permission(s): project_configuration:offerings:read. This endpoint belongs to the Project Configuration domain, which has a default rate limit of 60 requests per minute.

Authorizations:
BearerAuth
path Parameters
project_id
required
string <= 255 characters
Example: proj1ab2c3d4

ID of the project

paywall_id
required
string [ 1 .. 255 ] characters
Example: pwXXXXXXXXXXXXXX

ID of the paywall

query Parameters
expand
Array of strings[ items [ 1 .. 5000 ] characters ]
Items Enum: "offering" "components"
Example: expand=offering

Specifies which fields in the response should be expanded. Accepted values are: offering (requires project_configuration:offerings:read permission), components (requires project_configuration:offerings:read permission).

Responses

Response samples

Content type
application/json
{
  • "object": "paywall",
  • "id": "pw123456789abcdef",
  • "name": "My Awesome Paywall",
  • "offering_id": "ofrng123456789a",
  • "created_at": 1658399423658,
  • "published_at": 1658399423958,
  • "automatically_scale_font_size": true,
  • "revision": 3,
  • "offering": {
    },
  • "components": {
    }
}

Update a paywall

Update a paywall draft. If the paywall is already published, this updates its draft version without changing the published version. This endpoint requires the following permission(s): project_configuration:offerings:read_write. This endpoint belongs to the Project Configuration domain, which has a default rate limit of 60 requests per minute.

Authorizations:
BearerAuth
path Parameters
project_id
required
string <= 255 characters
Example: proj1ab2c3d4

ID of the project

paywall_id
required
string [ 1 .. 255 ] characters
Example: pwXXXXXXXXXXXXXX

ID of the paywall

Request Body schema: application/json
required
revision
required
integer <int64>

The current revision of the paywall, as returned in the revision field of any paywall response. Used to reject stale writes: if another update has bumped the revision in the meantime, this request fails with a 409.

object

The raw paywall components configuration to save as the draft. Omit to leave unchanged.

property name*
additional property
any
object

Localized component values keyed by locale. Omit to leave unchanged.

additional property
object
property name*
additional property
any
default_locale
string [ 1 .. 255 ] characters

The default locale for this paywall. Omit to leave unchanged.

offering_id
string or null [ 1 .. 200 ] characters

The ID of the offering to attach this paywall to. Pass null to detach the paywall from its offering (not supported while the paywall is published). Omit the field to leave it unchanged.

name
string or null [ 1 .. 255 ] characters

Optional paywall name.

automatically_scale_font_size
boolean

Whether font sizes should automatically scale for this paywall draft.

object or null

Exit offer configuration to save on the draft.

property name*
additional property
any
object or null

State declarations to save on the draft, keyed by state key name. Pass null to clear all state declarations. Omit to leave unchanged.

additional property
any (StateDeclarationInput)

Declaration of a single paywall state key, giving its value type and a default value matching that type.

type
required
string

The value type of the state key.

default
required
boolean

The initial value for the state key.

object or null

Play Store product change mode configuration to save on the draft.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "revision": 3,
  • "components_config": {
    },
  • "components_localizations": {
    },
  • "default_locale": "en_US",
  • "offering_id": "ofrng123456789a",
  • "name": "Main Paywall",
  • "automatically_scale_font_size": true,
  • "exit_offers": {
    },
  • "state_declarations": {
    },
  • "play_store_product_change_mode": {
    }
}

Response samples

Content type
application/json
{
  • "object": "paywall",
  • "id": "pw123456789abcdef",
  • "name": "My Awesome Paywall",
  • "offering_id": "ofrng123456789a",
  • "created_at": 1658399423658,
  • "published_at": 1658399423958,
  • "automatically_scale_font_size": true,
  • "revision": 3,
  • "offering": {
    },
  • "components": {
    }
}

Delete a paywall

This endpoint requires the following permission(s): project_configuration:offerings:read_write. This endpoint belongs to the Project Configuration domain, which has a default rate limit of 60 requests per minute.

Authorizations:
BearerAuth
path Parameters
project_id
required
string <= 255 characters
Example: proj1ab2c3d4

ID of the project

paywall_id
required
string [ 1 .. 255 ] characters
Example: pwXXXXXXXXXXXXXX

ID of the paywall

Responses

Response samples

Content type
application/json
{
  • "object": "app",
  • "id": "string",
  • "deleted_at": 1658399423658
}

Endpoint Reference

All API v2 resources, one page each. General concepts (authentication, pagination, rate limits, error handling) live on the API v2 overview.