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

# Get Product by Slug



## OpenAPI

````yaml /openapi/storefront.json GET /v1/products/{slug}
openapi: 3.1.0
info:
  title: Fourthwall APIs
  description: Service used for management of orders, carts, and payments.
  termsOfService: https://fourthwall.com/terms-of-service
  contact:
    name: Backend team
    url: https://fourthwall.com
    email: backend@fourthwall.com
  version: unspecified
servers:
  - url: https://storefront-api.fourthwall.com
    description: Production server
security: []
externalDocs:
  description: OpenAPI documentation
  url: https://docs.fourthwall.com
paths:
  /v1/products/{slug}:
    get:
      tags:
        - headless_products
      summary: Get a product by slug
      operationId: get-product
      parameters:
        - name: storefront_token
          in: query
          required: true
          schema:
            type: string
            example: ptkn_xxxxxxxxxxxxxxxxxx
        - name: slug
          in: path
          required: true
          schema:
            type: string
        - name: currency
          in: query
          required: false
          schema:
            type: string
            enum:
              - USD
              - EUR
              - CAD
              - GBP
              - AUD
              - NZD
              - SEK
              - NOK
              - DKK
              - PLN
              - INR
              - JPY
              - MYR
              - SGD
              - MXN
              - BRL
              - CHF
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/com.fourthwall.app.headless.model.ProductV1
        '404':
          description: >-
            Possible errors: `OFFER_SLUG_NOT_FOUND_ERROR`,
            `OFFER_VARIANT_NOT_FOUND_ERROR`
          content:
            application/json:
              examples:
                offer-slug-not-found-error:
                  value:
                    code: OFFER_SLUG_NOT_FOUND_ERROR
                    shopId: <shopid>
                    offerSlug: <slug>
                offer-variant-not-found-error:
                  value:
                    code: OFFER_VARIANT_NOT_FOUND_ERROR
                    offerVariantId: <offervariantid>
      externalDocs:
        url: >-
          https://docs.fourthwall.com/api-reference/storefront/products/get-product
components:
  schemas:
    com.fourthwall.app.headless.model.ProductV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        description:
          type: string
        state:
          oneOf:
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.Available
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.SoldOut
        access:
          oneOf:
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Archived
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Hidden
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Public
        images:
          type: array
          items:
            $ref: '#/components/schemas/com.fourthwall.openapi.model.Image'
        variants:
          type: array
          items:
            $ref: >-
              #/components/schemas/com.fourthwall.app.headless.model.ProductVariantV1
        additionalInformation:
          type: array
          items:
            $ref: >-
              #/components/schemas/com.fourthwall.app.headless.model.ProductAdditionalInformationV1
        sizeGuide:
          $ref: >-
            #/components/schemas/com.fourthwall.app.headless.model.ProductSizeGuideV1
        createdAt:
          type: string
          format: date-time
          example: '2020-08-13T09:05:36.939Z'
        updatedAt:
          type: string
          format: date-time
          example: '2020-08-13T09:05:36.939Z'
      required:
        - access
        - createdAt
        - description
        - id
        - images
        - name
        - slug
        - state
        - updatedAt
        - variants
      title: Product
    com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.Available:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1
        - type: object
          properties:
            type:
              type: string
              const: AVAILABLE
      title: Available
    com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.SoldOut:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1
        - type: object
          properties:
            type:
              type: string
              const: SOLD_OUT
      title: Sold Out
    com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Archived:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1
        - type: object
          properties:
            type:
              type: string
              const: ARCHIVED
      title: Archived
    com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Hidden:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1
        - type: object
          properties:
            type:
              type: string
              const: HIDDEN
      title: Hidden
    com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Public:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1
        - type: object
          properties:
            type:
              type: string
              const: PUBLIC
      title: Public
    com.fourthwall.openapi.model.Image:
      type: object
      properties:
        id:
          type: string
          example: 00aa4abd-5778-4199-8161-0b49b2f212e5
        url:
          type: string
          example: https://fourthwall.com/image.png
        width:
          type: integer
          format: int32
          description: The original width of the image in pixels.
          example: 800
        height:
          type: integer
          format: int32
          description: The original height of the image in pixels.
          example: 600
        transformedUrl:
          type: string
          description: >-
            Transformed URL with applied image processing (e.g., resizing,
            optimization)
          example: https://fourthwall.com/image.png
      required:
        - height
        - id
        - transformedUrl
        - url
        - width
      title: Image
    com.fourthwall.app.headless.model.ProductVariantV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        sku:
          type: string
        unitPrice:
          $ref: '#/components/schemas/Money'
        compareAtPrice:
          $ref: '#/components/schemas/Money'
        attributes:
          $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes
        stock:
          oneOf:
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited
            - $ref: >-
                #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited
        weight:
          $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight
        dimensions:
          $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions
        images:
          type: array
          items:
            $ref: '#/components/schemas/com.fourthwall.openapi.model.Image'
      required:
        - attributes
        - dimensions
        - id
        - images
        - name
        - sku
        - stock
        - unitPrice
        - weight
      title: Product Variant
    com.fourthwall.app.headless.model.ProductAdditionalInformationV1:
      type: object
      properties:
        type:
          type: string
          enum:
            - MORE_DETAILS
            - SIZE_AND_FIT
            - GUARANTEE_AND_RETURNS
        title:
          type: string
        bodyHtml:
          type: string
      required:
        - bodyHtml
        - title
        - type
      title: Product Additional Information
    com.fourthwall.app.headless.model.ProductSizeGuideV1:
      type: object
      properties:
        previewUrl:
          type: string
        fileUrl:
          type: string
        description:
          type: string
        fitGuideDescription:
          type: string
        fitGuideUrls:
          type: array
          items:
            type: string
      required:
        - fitGuideUrls
      title: Product Size Guide
    com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1:
      discriminator:
        propertyName: type
        mapping:
          AVAILABLE:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.Available
          SOLD_OUT:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferStateV1.SoldOut
      properties:
        type:
          type: string
      required:
        - type
      title: Offer State
    com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1:
      discriminator:
        propertyName: type
        mapping:
          PUBLIC:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Public
          HIDDEN:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Hidden
          ARCHIVED:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferAccessV1.Archived
      properties:
        type:
          type: string
      required:
        - type
      title: Offer Access
    Money:
      type: object
      properties:
        value:
          type: number
          example: 10
          minimum: 0
        currency:
          type: string
          example: USD
      required:
        - currency
        - value
      title: Money
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes:
      type: object
      properties:
        description:
          type: string
          example: Black, L
        color:
          $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Color
        size:
          $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Size
      required:
        - description
      title: Attributes
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock
        - type: object
          properties:
            inStock:
              type: integer
              format: int32
              example: 5
        - type: object
          properties:
            type:
              type: string
              const: LIMITED
      required:
        - inStock
      title: Limited
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited:
      allOf:
        - $ref: >-
            #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock
        - type: object
          properties:
            type:
              type: string
              const: UNLIMITED
      title: Unlimited
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Weight:
      type: object
      properties:
        value:
          type: number
          example: '1.0'
        unit:
          type: string
          example: kg
      required:
        - unit
        - value
      title: Weight
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Dimensions:
      type: object
      properties:
        length:
          type: number
          example: '1.0'
        width:
          type: number
          example: '2.0'
        height:
          type: number
          example: '3.0'
        unit:
          type: string
          example: cm
      required:
        - height
        - length
        - unit
        - width
      title: Dimensions
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Color:
      type: object
      properties:
        name:
          type: string
          example: Black
        swatch:
          type: string
          example: '#000000'
      required:
        - name
        - swatch
      title: Color
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Attributes.Size:
      type: object
      properties:
        name:
          type: string
          example: L
      required:
        - name
      title: Size
    com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock:
      discriminator:
        propertyName: type
        mapping:
          UNLIMITED:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Unlimited
          LIMITED:
            $ref: >-
              #/components/schemas/com.fourthwall.openapi.model.OfferAbstractV1.OfferVariantAbstractV1.Stock.Limited
      properties:
        type:
          type: string
      required:
        - type
      title: Stock

````