---
title: "Get public PWA by ID"
method: GET
path: "/api/v1/pwa/public/{pwa_id}"
tags: ["PWA"]
---

# Get public PWA by ID

`GET /api/v1/pwa/public/{pwa_id}`

## Request

- Base URL: `https://api.pwapps.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pwapps.com/api/v1/pwa/public/{pwa_id}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/pwapps/apis/curie-api/docs/api/v1/pwa/public/:pwa_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Public, unauthenticated endpoint used by the PWA static generator. Returns only the data required to render the PWA — no auth,no permission checks, and no owner/internal fields.

## Path parameters

- `pwa_id` string, uuid, required

## Query parameters

- `language` string, nullable: Optional language code for translation

## Response `200`

Successful Response

- PublicPWADTO: Public, unauthenticated view of a PWA used by the static generator. Contains only the data needed to render the PWA. Intentionally excludes internal/owner fields exposed by ``FullPWADTO`` (``owner``, ``created_at``, ``updated_at``).
  - `pwaName` string, nullable: The name of the PWA
  - `store` 'App Store' | 'Google Play'
  - `systemName` string, nullable: Name of the app
  - `pwaLanguage` string, nullable: Language of the PWA interface
  - `forceLanguage` string, nullable: Force language for PWA, e.g., 'en-GB' or null for no forcing
  - `tagsList` string[], nullable: List of tags associated with the PWA
  - `developer` string, nullable: Name of the developer
  - `verified` boolean, nullable: Whether the PWA is verified
  - `ad` boolean, nullable: Whether the PWA contains ads
  - `purchase` boolean, nullable: Whether the PWA has in-app purchases
  - `editorsChoice` boolean, nullable: Whether the PWA is an editor's choice
  - `rating` number, required: Overall rating of the PWA
  - `ratingAbove5` integer, required: Number of 5-star ratings
  - `ratingAbove4` integer, required: Number of 4-star ratings
  - `ratingAbove3` integer, required: Number of 3-star ratings
  - `ratingAbove2` integer, required: Number of 2-star ratings
  - `ratingAbove1` integer, required: Number of 1-star ratings
  - `reviewsCount` integer, nullable: Total number of reviews
  - `downloadCount` integer, nullable: Total number of downloads
  - `ageRating` integer, nullable: Age rating of the PWA
  - `description` string, nullable: A detailed description of the app
  - `version` string, nullable: Version of the app
  - `releasedAt` string, date-time, nullable: Release timestamp of the app
  - `androidVersion` number, nullable: Minimum required Android version
  - `interactiveElements` string, nullable: Description of interactive elements
  - `whatsNew` string, nullable: Information about what's new in the app
  - `categoryList` string[], nullable: List of categories associated with the PWA
  - `safetyDescription` string, nullable: Description of the app's safety information
  - `dataTransfer` string, nullable: Types of data shared with third parties
  - `dataCollection` string, nullable: Types of data collected by the app
  - `dataEncryption` string, nullable: Details about data encryption
  - `dataDeletion` string, nullable: Details about data deletion policies
  - `appSize` string, nullable: Size of the app
  - `comments` object[], nullable: List of user comments for the app
  - `userComment` string, nullable
  - `updatedAppAt` string, date-time, nullable: Last updated timestamp of the app
  - `logoAssetId` string, uuid, nullable: Media Library asset id for the logo
  - `backgroundAssetId` string, uuid, nullable: Media Library asset id for the background
  - `removeLogo` boolean: Clear the logo (Media Library attach branch)
  - `removeBackground` boolean: Clear the background (Media Library attach branch)
  - `screenshots` ScreenshotRefDTO[], nullable: Ordered mixed screenshots (library asset id or retained key)
    - `assetId` string, uuid, nullable: Library asset id for a freshly-picked screenshot
    - `key` string, nullable: Retained screenshot: a full URL or bare S3 key kept as-is
  - `id` string, uuid, nullable: ID of the PWA
  - `media` AppDtoPwaDtoMediaDTO[], nullable: List of media resources associated with the PWA
    - `mediaUrl` string, nullable: URL to the media resource
    - `mediaType` string, nullable: Type of media (e.g., Image, Video)
  - `logoUrl` string, nullable: URL of the logo
  - `backgroundUrl` string, nullable: URL of the background image
  - `translationsCodes` string[], nullable: List of available translation languages for the PWA

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-24** `615ebc9bfa17`: 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Operation history](https://skmtc.dev/pwapps/apis/curie-api/changes/api/v1/pwa/public/:pwa_id/get.md)

---

[API](https://skmtc.dev/pwapps/apis/curie-api.md) - [All operations](https://skmtc.dev/pwapps/apis/curie-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pwapps/apis/curie-api/revisions/e8c43917ce17?raw)
