Download OpenAPI specification:Download
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.
| project_id required | string <= 255 characters Example: proj1ab2c3d4 ID of the project |
| 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. |
{- "object": "list",
- "items": [
- {
- "object": "font",
- "id": "font123456789abcdef",
- "name": "GoodSans-Bold",
- "family_name": "Good Sans",
- "style": "normal",
- "weight": 700,
- "font_key": "RCFM:1_font123456789abcdef:GoodSans-Bold"
}
], - "next_page": "/v2/projects/proj1ab2c3d4/fonts?starting_after=font123456789abcdef",
- "url": "/v2/projects/proj1ab2c3d4/fonts"
}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.
| project_id required | string <= 255 characters Example: proj1ab2c3d4 ID of the project |
| filename required | string [ 1 .. 255 ] characters File name for the uploaded font. Must have a .ttf or .otf extension. |
| content_type required | string Enum: "font/ttf" "font/otf" MIME type for the uploaded font. |
| file_data_base64 required | string [ 1 .. 6990508 ] characters Base64-encoded font bytes. |
{- "filename": "GoodSans-Bold.ttf",
- "content_type": "font/ttf",
- "file_data_base64": "AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAaVsyKAAABHA"
}{- "object": "font",
- "id": "font123456789abcdef",
- "name": "GoodSans-Bold",
- "family_name": "Good Sans",
- "style": "normal",
- "weight": 700,
- "font_key": "RCFM:1_font123456789abcdef:GoodSans-Bold"
}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.
| project_id required | string <= 255 characters Example: proj1ab2c3d4 ID of the project |
| 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. |
{- "object": "list",
- "items": [
- {
- "object": "media_asset",
- "id": "mediaasset123456789abcdef",
- "object_name": "paywalls/originals/abc123.webp",
- "original_name": "hero.webp",
- "original_size": 12345,
- "original_width": 1024,
- "original_height": 1024,
- "formats": {
- "property1": {
- "object": "media_asset_format",
- "object_name": "paywalls/abc123.webp",
- "size": 12345,
- "width": 1024,
- "height": 1024
}, - "property2": {
- "object": "media_asset_format",
- "object_name": "paywalls/abc123.webp",
- "size": 12345,
- "width": 1024,
- "height": 1024
}
}, - "alt_text": "A dog looking at a phone",
- "is_decorative": false,
- "asset_type": "image",
- "video_metadata": { },
- "transcoding_status": null
}
], - "next_page": "/v2/projects/proj1ab2c3d4/media_assets?starting_after=mediaasset123456789abcdef",
- "url": "/v2/projects/proj1ab2c3d4/media_assets"
}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.
| project_id required | string <= 255 characters Example: proj1ab2c3d4 ID of the project |
| filename required | string [ 1 .. 255 ] characters File name for the uploaded image. |
| content_type required | string Enum: "image/jpeg" "image/png" "image/avif" "image/heic" "image/heif" "image/webp" MIME type for the uploaded image. |
| file_data_base64 required | string [ 1 .. 2796204 ] characters Base64-encoded image bytes. |
{- "filename": "hero.webp",
- "content_type": "image/webp",
- "file_data_base64": "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"
}{- "object": "media_asset",
- "id": "mediaasset123456789abcdef",
- "object_name": "paywalls/originals/abc123.webp",
- "original_name": "hero.webp",
- "original_size": 12345,
- "original_width": 1024,
- "original_height": 1024,
- "formats": {
- "property1": {
- "object": "media_asset_format",
- "object_name": "paywalls/abc123.webp",
- "size": 12345,
- "width": 1024,
- "height": 1024
}, - "property2": {
- "object": "media_asset_format",
- "object_name": "paywalls/abc123.webp",
- "size": 12345,
- "width": 1024,
- "height": 1024
}
}, - "alt_text": "A dog looking at a phone",
- "is_decorative": false,
- "asset_type": "image",
- "video_metadata": { },
- "transcoding_status": null
}Duplicate an existing paywall's current draft into a new, unpublished paywall in the same project. By default the duplicated paywall is not attached to an offering; provide an offering to also duplicate the source paywall's offering (packages only) and attach the new paywall to it. 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.
| 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 |
| name | string [ 1 .. 255 ] characters Optional name for the duplicated paywall. Defaults to the original paywall's name with a "Copy" suffix. | ||||
object Optional. When provided, the source paywall's offering is duplicated (packages only, without its own checkout config or paywall) and the duplicated paywall is attached to it. Omit to leave the duplicated paywall detached from any offering. Fails with a conflict if the source paywall is not associated with an offering. | |||||
| |||||
{- "name": "Main Paywall Copy",
- "offering": {
- "lookup_key": "default",
- "display_name": "The standard set of packages"
}
}{- "object": "paywall",
- "id": "pw123456789abcdef",
- "name": "My Awesome Paywall",
- "offering_id": "ofrng123456789a",
- "created_at": 1658399423658,
- "published_at": 1658399423958,
- "automatically_scale_font_size": true,
- "offering": {
- "state": "active",
- "object": "offering",
- "id": "ofrnge1a2b3c4d5",
- "lookup_key": "default",
- "display_name": "The standard set of packages",
- "is_current": true,
- "created_at": 1658399423658,
- "project_id": "proj1ab2c3d4",
- "paywall_id": "pw12345abcde",
- "metadata": {
- "color": "blue",
- "call_to_action": "Subscribe Now!"
}, - "packages": {
- "object": "list",
- "items": [
- {
- "object": "package",
- "id": "pkge1a2b3c4d5",
- "lookup_key": "monthly",
- "display_name": "Monthly discounted with 3-day trial",
- "position": 1,
- "created_at": 1658399423658,
- "products": {
- "object": "list",
- "items": [
- {
- "product": {
- "state": "active",
- "object": "product",
- "id": "prod1a2b3c4d5e",
- "store_identifier": "rc_1w_199",
- "type": "subscription",
- "subscription": {
- "duration": null,
- "grace_period_duration": null,
- "trial_duration": null
}, - "one_time": {
- "is_consumable": null
}, - "created_at": 1658399423658,
- "app_id": "app1a2b3c4",
- "app": {
- "object": null,
- "id": null,
- "name": null,
- "created_at": null,
- "type": null,
- "project_id": null,
- "custom_url_scheme": null,
- "amazon": { }
}, - "indicative_price": {
- "object": null,
- "currency": null,
- "country": null,
- "amount_micros": null
}, - "display_name": "Premium Monthly 2023"
}, - "eligibility_criteria": "all"
}
], - "next_page": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products?starting_after=prodab21dac",
- "url": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products"
}
}
], - "next_page": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages?starting_after=pkgeab21dac",
- "url": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages"
}
}, - "components": {
- "published": {
- "revision": 1,
- "components_config": {
- "base": {
- "stack": {
- "id": "l7Ylx2UZeA",
- "type": "stack",
- "components": [
- {
- "id": "LFVZUCf9yW",
- "type": "text",
- "text_lid": "OBUxLwsvXb"
}
]
}, - "sticky_footer": {
- "id": "UJJRRPzRuz",
- "type": "footer"
}
}
}, - "default_locale": "en_US",
- "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "automatically_scale_font_size": true,
}, - "draft": {
- "revision": 1,
- "components_config": {
- "base": {
- "stack": {
- "id": "l7Ylx2UZeA",
- "type": "stack",
- "components": [
- {
- "id": "LFVZUCf9yW",
- "type": "text",
- "text_lid": "OBUxLwsvXb"
}
]
}, - "sticky_footer": {
- "id": "UJJRRPzRuz",
- "type": "footer"
}
}
}, - "default_locale": "en_US",
- "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "automatically_scale_font_size": true,
}
}
}Publish the current paywall draft so RevenueCat SDKs can serve it to customers. 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.
| 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 |
{- "object": "paywall",
- "id": "pw123456789abcdef",
- "name": "My Awesome Paywall",
- "offering_id": "ofrng123456789a",
- "created_at": 1658399423658,
- "published_at": 1658399423958,
- "automatically_scale_font_size": true,
- "offering": {
- "state": "active",
- "object": "offering",
- "id": "ofrnge1a2b3c4d5",
- "lookup_key": "default",
- "display_name": "The standard set of packages",
- "is_current": true,
- "created_at": 1658399423658,
- "project_id": "proj1ab2c3d4",
- "paywall_id": "pw12345abcde",
- "metadata": {
- "color": "blue",
- "call_to_action": "Subscribe Now!"
}, - "packages": {
- "object": "list",
- "items": [
- {
- "object": "package",
- "id": "pkge1a2b3c4d5",
- "lookup_key": "monthly",
- "display_name": "Monthly discounted with 3-day trial",
- "position": 1,
- "created_at": 1658399423658,
- "products": {
- "object": "list",
- "items": [
- {
- "product": {
- "state": "active",
- "object": "product",
- "id": "prod1a2b3c4d5e",
- "store_identifier": "rc_1w_199",
- "type": "subscription",
- "subscription": {
- "duration": null,
- "grace_period_duration": null,
- "trial_duration": null
}, - "one_time": {
- "is_consumable": null
}, - "created_at": 1658399423658,
- "app_id": "app1a2b3c4",
- "app": {
- "object": null,
- "id": null,
- "name": null,
- "created_at": null,
- "type": null,
- "project_id": null,
- "custom_url_scheme": null,
- "amazon": { }
}, - "indicative_price": {
- "object": null,
- "currency": null,
- "country": null,
- "amount_micros": null
}, - "display_name": "Premium Monthly 2023"
}, - "eligibility_criteria": "all"
}
], - "next_page": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products?starting_after=prodab21dac",
- "url": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products"
}
}
], - "next_page": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages?starting_after=pkgeab21dac",
- "url": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages"
}
}, - "components": {
- "published": {
- "revision": 1,
- "components_config": {
- "base": {
- "stack": {
- "id": "l7Ylx2UZeA",
- "type": "stack",
- "components": [
- {
- "id": "LFVZUCf9yW",
- "type": "text",
- "text_lid": "OBUxLwsvXb"
}
]
}, - "sticky_footer": {
- "id": "UJJRRPzRuz",
- "type": "footer"
}
}
}, - "default_locale": "en_US",
- "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "automatically_scale_font_size": true,
}, - "draft": {
- "revision": 1,
- "components_config": {
- "base": {
- "stack": {
- "id": "l7Ylx2UZeA",
- "type": "stack",
- "components": [
- {
- "id": "LFVZUCf9yW",
- "type": "text",
- "text_lid": "OBUxLwsvXb"
}
]
}, - "sticky_footer": {
- "id": "UJJRRPzRuz",
- "type": "footer"
}
}
}, - "default_locale": "en_US",
- "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "automatically_scale_font_size": true,
}
}
}Unpublish the current paywall so RevenueCat SDKs stop serving it to customers. 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.
| 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 |
{- "object": "paywall",
- "id": "pw123456789abcdef",
- "name": "My Awesome Paywall",
- "offering_id": "ofrng123456789a",
- "created_at": 1658399423658,
- "published_at": 1658399423958,
- "automatically_scale_font_size": true,
- "offering": {
- "state": "active",
- "object": "offering",
- "id": "ofrnge1a2b3c4d5",
- "lookup_key": "default",
- "display_name": "The standard set of packages",
- "is_current": true,
- "created_at": 1658399423658,
- "project_id": "proj1ab2c3d4",
- "paywall_id": "pw12345abcde",
- "metadata": {
- "color": "blue",
- "call_to_action": "Subscribe Now!"
}, - "packages": {
- "object": "list",
- "items": [
- {
- "object": "package",
- "id": "pkge1a2b3c4d5",
- "lookup_key": "monthly",
- "display_name": "Monthly discounted with 3-day trial",
- "position": 1,
- "created_at": 1658399423658,
- "products": {
- "object": "list",
- "items": [
- {
- "product": {
- "state": "active",
- "object": "product",
- "id": "prod1a2b3c4d5e",
- "store_identifier": "rc_1w_199",
- "type": "subscription",
- "subscription": {
- "duration": null,
- "grace_period_duration": null,
- "trial_duration": null
}, - "one_time": {
- "is_consumable": null
}, - "created_at": 1658399423658,
- "app_id": "app1a2b3c4",
- "app": {
- "object": null,
- "id": null,
- "name": null,
- "created_at": null,
- "type": null,
- "project_id": null,
- "custom_url_scheme": null,
- "amazon": { }
}, - "indicative_price": {
- "object": null,
- "currency": null,
- "country": null,
- "amount_micros": null
}, - "display_name": "Premium Monthly 2023"
}, - "eligibility_criteria": "all"
}
], - "next_page": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products?starting_after=prodab21dac",
- "url": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages/pkge1a2b3c4d5/products"
}
}
], - "next_page": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages?starting_after=pkgeab21dac",
- "url": "/v2/projects/proj1ab2c3d4/offerings/ofrnge1a2b3c4d5/packages"
}
}, - "components": {
- "published": {
- "revision": 1,
- "components_config": {
- "base": {
- "stack": {
- "id": "l7Ylx2UZeA",
- "type": "stack",
- "components": [
- {
- "id": "LFVZUCf9yW",
- "type": "text",
- "text_lid": "OBUxLwsvXb"
}
]
}, - "sticky_footer": {
- "id": "UJJRRPzRuz",
- "type": "footer"
}
}
}, - "default_locale": "en_US",
- "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "automatically_scale_font_size": true,
}, - "draft": {
- "revision": 1,
- "components_config": {
- "base": {
- "stack": {
- "id": "l7Ylx2UZeA",
- "type": "stack",
- "components": [
- {
- "id": "LFVZUCf9yW",
- "type": "text",
- "text_lid": "OBUxLwsvXb"
}
]
}, - "sticky_footer": {
- "id": "UJJRRPzRuz",
- "type": "footer"
}
}
}, - "default_locale": "en_US",
- "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "automatically_scale_font_size": true,
}
}
}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.
| 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 |
| name required | string [ 1 .. 255 ] characters A human-readable name for the paywall version snapshot. |
{- "name": "V2 Orange Accents"
}{- "object": "paywall_version",
- "id": "pwv123456789abcdef",
- "name": "Before AI edit",
- "revision": 3,
- "created_at": 1658399423658,
- "components_config": {
- "base": {
- "stack": {
- "id": "main_stack",
- "type": "stack",
- "components": [ ]
}
}
}, - "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "default_locale": "en_US",
- "automatically_scale_font_size": true,
- "exit_offers": {
- "dismiss": {
- "offering_id": "ofrng123456789abcdef"
}
}, - "state_declarations": {
- "selectedPackage": {
- "type": "string",
- "default": "monthly"
}
}, - "play_store_product_change_mode": {
- "upgrade_replacement_mode": "deferred"
}
}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.
| 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 |
| version_id required | string [ 1 .. 255 ] characters Example: pwv123456789abcdef The id of the paywall version. |
{- "object": "paywall_version",
- "id": "pwv123456789abcdef",
- "name": "Before AI edit",
- "revision": 3,
- "created_at": 1658399423658,
- "components_config": {
- "base": {
- "stack": {
- "id": "main_stack",
- "type": "stack",
- "components": [ ]
}
}
}, - "components_localizations": {
- "en_US": {
- "title": "Premium"
}
}, - "default_locale": "en_US",
- "automatically_scale_font_size": true,
- "exit_offers": {
- "dismiss": {
- "offering_id": "ofrng123456789abcdef"
}
}, - "state_declarations": {
- "selectedPackage": {
- "type": "string",
- "default": "monthly"
}
}, - "play_store_product_change_mode": {
- "upgrade_replacement_mode": "deferred"
}
}