---
title: "Get a product by ID"
method: GET
path: "/v1/admin/products/{id}"
tags: ["Admin Billing"]
---

# Get a product by ID

`GET /v1/admin/products/{id}`

## Path parameters

- `id` string, required

## Response `200`

Product retrieved successfully

- ProductApiResponseDto
  - `success` boolean, required — Indicates if the request was successful
  - `message` string, required — Human readable message
  - `data` union, required — Response data
    - object
      - `id` string, uuid, required — Unique identifier of the product
      - `active` boolean, required — Whether the product is active
      - `name` string, required — Product name
      - `description` string, required — Product description
      - `stripeProductId` string, nullable — Stripe product ID
      - `stripePriceId` string, required — Stripe price ID
      - `price` integer, required — Product price in cents
      - `currency` string, required — Currency code
      - `createdAt` unknown, required
      - `updatedAt` unknown, required
      - `billingType` 'one_time', required — Billing type
      - `category` 'generation_credits_pack', required — Product category
      - `billingInterval` unknown
      - `billingIntervalCount` unknown
      - `entitlements` object, required — Credit pack entitlements
        - `entitlementType` 'purchase', required — Entitlement type for credit packs
        - `creditsPurchase` integer, required — Number of credits in the pack
    - object
      - `id` string, uuid, required — Unique identifier of the product
      - `active` boolean, required — Whether the product is active
      - `name` string, required — Product name
      - `description` string, required — Product description
      - `stripeProductId` string, nullable — Stripe product ID
      - `stripePriceId` string, required — Stripe price ID
      - `price` integer, required — Product price in cents
      - `currency` string, required — Currency code
      - `createdAt` unknown, required
      - `updatedAt` unknown, required
      - `billingType` 'recurring', required — Billing type
      - `category` 'homeowner_plan', required — Product category
      - `billingInterval` 'day' | 'week' | 'month' | 'year', nullable — Billing interval
      - `billingIntervalCount` integer, nullable — Number of intervals between billings
      - `entitlements` object, required — Plan entitlements
        - `entitlementType` 'allocated', required — Entitlement type for subscription plans
        - `creditsAllocated` integer, required — Monthly credits allocated to the plan
        - `features` string[] — Plan features
        - `capabilities` string[]
        - `policies` object
          - `floorplanRecognition` union
            - object
              - …
            - object
              - …
    - object
      - `id` string, uuid, required — Unique identifier of the product
      - `active` boolean, required — Whether the product is active
      - `name` string, required — Product name
      - `description` string, required — Product description
      - `stripeProductId` string, nullable — Stripe product ID
      - `stripePriceId` string, required — Stripe price ID
      - `price` integer, required — Product price in cents
      - `currency` string, required — Currency code
      - `createdAt` unknown, required
      - `updatedAt` unknown, required
      - `billingType` 'recurring', required — Billing type
      - `category` 'pro_plan', required — Product category
      - `billingInterval` 'day' | 'week' | 'month' | 'year', nullable — Billing interval
      - `billingIntervalCount` integer, nullable — Number of intervals between billings
      - `entitlements` object, required — Plan entitlements
        - `entitlementType` 'allocated', required — Entitlement type for subscription plans
        - `creditsAllocated` integer, required — Monthly credits allocated to the plan
        - `features` string[] — Plan features
        - `capabilities` string[]
        - `policies` object
          - `floorplanRecognition` union
            - object
              - …
            - object
              - …
  - `timestamp` string, date-time, required — Timestamp of the response

---

[API](https://skmtc.dev/maket/apis/virtual-architect-api.md) · [All operations](https://skmtc.dev/maket/apis/virtual-architect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/maket/virtual-architect-api/revisions/7635e6f94477/schema)
