---
title: "Retrieve Paywall"
method: GET
path: "/v2/paywalls/{id}"
tags: ["Paywalls V2"]
---

# Retrieve Paywall

`GET /v2/paywalls/{id}`

Retrieves a paywall by ID. Requires paywalls:read scope.

## Path parameters

- `id` string, required — Paywall ID

## Response `200`

Success

- object
  - `id` string, required — Unique identifier for the paywall
  - `object` 'paywall', required — Object type, always `paywall`
  - `application_id` string, required — ID of the application this paywall belongs to
  - `project_id` string, nullable, required — a string to be decoded into a number
  - `application_platform` union, required — Platform of the application this paywall belongs to, or null
    - 'ios' — iOS (App Store)
    - 'android' — Android (Google Play)
    - 'flutter' — Flutter (legacy, read-only - cannot be created via API)
    - 'react_native' — React Native (legacy, read-only - cannot be created via API)
    - 'web' — Web (Stripe)
    - 'promotional' — Promotional offers application (read-only - cannot be created via API)
    - 'webapp' — Web App (Web SDK) (read-only - cannot be created via API)
  - `name` string, required — Display name of the paywall
  - `identifier` string, required — URL-safe identifier (slug) for the paywall
  - `paywall_url` string, required — URL to the interactive paywall
  - `presentation_style` union, required — How the paywall is presented to the user
    - 'fullscreen' — Full screen presentation
    - 'modal' — Modal presentation
    - 'sheet' — Bottom sheet presentation
    - 'push' — Push navigation presentation
  - `status` union, required — Current status of the paywall
    - 'draft' — Paywall is not active in any enabled campaign (inactive)
    - 'active' — Paywall is active in at least one enabled campaign
    - 'archived' — Paywall has been archived
  - `version` number, required — Current published version number
  - `headless` boolean, required — Whether this is a code-first (headless) paywall, authored with the superwall framework and shipped with `superwall push` / `superwall promote` rather than the visual editor. A headless paywall with `version: 0` has been pushed but never promoted, so it has no live snapshot and cannot back a campaign variant.
  - `products` object[], required — List of product entries attached to this paywall
    - `store` union, required — Store this product belongs to
      - 'app-store' — Apple App Store product
      - 'play-store' — Google Play product
      - 'stripe' — Stripe product
      - 'custom' — Custom (external purchase controller)
    - `identifier` string, required — Platform-specific product identifier
    - `reference_name` string, required — Stable reference name used in paywall editor/runtime (for example: primary)
  - `feature_gating` union, required — Whether the feature is gated behind a purchase
    - 'gated' — Access is gated behind a purchase
    - 'non_gated' — Access is not gated
  - `source_template` string, nullable, required — a string to be decoded into a number
  - `created_at` string, required — ISO 8601 timestamp of when the paywall was created
  - `updated_at` string, required — ISO 8601 timestamp of when the paywall was last updated
  - `published_at` string, nullable, required — ISO 8601 timestamp of when the paywall was last published, or null
  - `archived` boolean, required — Whether the paywall is archived
  - `metadata` object, required
  - `preview_url` string, nullable, required — URL to a preview screenshot of the paywall, or null

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `403` — The API key does not have permission to perform this action
- `404` — The requested resource was not found
- `429` — Too many requests have been made in a short period
- `500` — An unexpected error occurred on the server

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) · [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/44900ad77d2c/schema)
