> ## Documentation Index
> Fetch the complete documentation index at: https://docs.priceos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Product

> Get the latest non-archived product by product key.



## OpenAPI

````yaml GET /v1/products/{productKey}
openapi: 3.1.0
info:
  title: PriceOS Public API
  version: 1.0.0
servers: []
security: []
paths:
  /v1/products/{productKey}:
    get:
      summary: Get Product
      description: Get the latest non-archived product by product key.
      parameters:
        - schema:
            type: string
            description: Product key.
          required: true
          description: Product key.
          name: productKey
          in: path
        - schema:
            type: string
            description: API key from your PriceOS dashboard.
          required: true
          description: API key from your PriceOS dashboard.
          name: x-api-key
          in: header
      responses:
        '200':
          description: Product
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Product ID.
                  key:
                    type: string
                    description: Product key.
                  name:
                    type: string
                    description: Product name.
                  type:
                    type: string
                    enum:
                      - stripe
                      - custom
                    description: Product type.
                  isDefault:
                    type: boolean
                    description: Whether this is the default custom product.
                  version:
                    type: number
                    description: Product version number.
                  stripeProductId:
                    type:
                      - string
                      - 'null'
                    description: Stripe product ID (Stripe products only).
                  prices:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Price ID.
                        stripePriceId:
                          type: string
                          description: Stripe price ID.
                        currency:
                          type:
                            - string
                            - 'null'
                          description: ISO currency code.
                        unitAmount:
                          type:
                            - number
                            - 'null'
                          description: Unit amount in the smallest currency unit.
                        recurringInterval:
                          type:
                            - string
                            - 'null'
                          description: Recurring interval, if any.
                        recurringIntervalCount:
                          type:
                            - number
                            - 'null'
                          description: Recurring interval count, if any.
                        isActive:
                          type: boolean
                          description: Whether the price is active.
                        isDefault:
                          type: boolean
                          description: Whether this is the default price.
                      required:
                        - id
                        - stripePriceId
                        - currency
                        - unitAmount
                        - recurringInterval
                        - recurringIntervalCount
                        - isActive
                        - isDefault
                    description: Stripe prices linked to the product.
                  featureAccess:
                    type: array
                    items:
                      type: object
                      properties:
                        featureKey:
                          type: string
                          description: Feature key.
                        name:
                          type: string
                          description: Feature name.
                        type:
                          type: string
                          enum:
                            - boolean
                            - limit
                          description: Feature access type.
                        hasAccess:
                          type: boolean
                          description: Whether the product grants access to the feature.
                        limit:
                          type:
                            - number
                            - 'null'
                          description: Configured limit value for limit features.
                        isUnlimited:
                          type: boolean
                          description: Whether the limit feature is unlimited.
                      required:
                        - featureKey
                        - name
                        - type
                        - hasAccess
                    description: Feature access entries configured for this product.
                required:
                  - id
                  - key
                  - name
                  - type
                  - isDefault
                  - version
                  - stripeProductId
                  - prices
                  - featureAccess
                description: Product.
              example:
                id: prod_123
                key: starter
                name: Starter
                type: stripe
                isDefault: false
                version: 2
                stripeProductId: prod_stripe_123
                prices:
                  - id: price_row_123
                    stripePriceId: price_monthly_starter
                    currency: usd
                    unitAmount: 2900
                    recurringInterval: month
                    recurringIntervalCount: 1
                    isActive: true
                    isDefault: true
                  - id: price_row_124
                    stripePriceId: price_yearly_starter
                    currency: usd
                    unitAmount: 29000
                    recurringInterval: year
                    recurringIntervalCount: 1
                    isActive: true
                    isDefault: false
                featureAccess:
                  - featureKey: api_calls
                    name: API Calls
                    type: limit
                    hasAccess: true
                    limit: 10000
                    isUnlimited: false
                  - featureKey: priority_support
                    name: Priority Support
                    type: boolean
                    hasAccess: true
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message.
                required:
                  - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message.
                required:
                  - error
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message.
                required:
                  - error
        '500':
          description: Server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message.
                required:
                  - error
      x-codeSamples:
        - lang: typescript
          label: Node.js
          source: >-
            import { PriceOS } from "priceos";

            import type { MyFeatures } from "./priceos.types";


            const priceos = new
            PriceOS<MyFeatures>(process.env.PRICEOS_API_KEY!);


            const product = await priceos.products.get("starter");
        - lang: bash
          label: cURL
          source: |-
            curl -X GET "https://api.priceos.com/v1/products/starter" \
              -H "x-api-key: PRICEOS_API_KEY"

````