---
title: "Get a product"
method: GET
path: "/products/{product_id}"
tags: ["Products"]
---

# Get a product

`GET /products/{product_id}`

Returns a single product by ID.

## Path parameters

- `product_id` string, required

## Response `200`

Product details

- V4Product
  - `object` 'product', required
  - `id` string, required — Unique product identifier.
  - `url` string, required — Canonical API path.
  - `type` string, nullable — Product type (open enum). Values mirror the Qonversion dashboard labels: `subscription_with_promo` (Subscription With Promo Period), `subscription` (Regular Subscription), `consumable`, `lifetime`.
  - `duration` string, nullable — Subscription duration in ISO 8601 period format (open enum). Only products of type `subscription_with_promo` or `subscription` may have a duration; `consumable` and `lifetime` are always null.
  - `apple_product_id` string, nullable — Apple App Store product identifier.
  - `google_product_id` string, nullable — Google Play product identifier.
  - `google_base_plan_id` string, nullable — Google Play base plan identifier.
  - `stripe_product_id` string, nullable — Stripe product identifier.
  - `created_at` string, date-time, required — Creation timestamp (ISO 8601 UTC).
  - `updated_at` string, date-time, required — Last update timestamp (ISO 8601 UTC).

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Product not found
- `500` — Internal error
- `502` — Storage error
- `504` — Upstream timeout

---

[API](https://skmtc.net/qonversion/apis/qonversion-rest-api-v4.md) · [All operations](https://skmtc.net/qonversion/apis/qonversion-rest-api-v4/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/qonversion/qonversion-rest-api-v4/versions/e3f72cf8951c/schema)
