Products

Retrieve a single product from your connected store's catalog by its store product id.

Includes detail fields not returned by the list endpoint: description, tags, options, image, images, and media, plus per-variant barcode, inventory_policy, position, product_id, taxable, image_id, and updated_at.

Requires a connected Shopify or BigCommerce store — without one, this endpoint returns 404 no_connected_store.

The response shape is the same on both platforms; detail fields BigCommerce does not supply (media, per-variant inventory_policy, position, taxable, image_id, updated_at) are null or empty.

Required scope: products_read

get/products/{id}

Request

  • Base URL
    https://api.privy.com/v1
  • Auth
    HTTP bearer

Path parameters

idinteger required

The store's product id (returned as id in product responses).

Headers

Privy-Account-Idstring

Target a subaccount instead of the main connected account. Pass a subaccount id from get_account's subaccounts list. Only direct subaccounts of the connected account are reachable — omit this for the main account itself.

Response

The product.

Example response

{
  "data": {
    "id": 7890123456789,
    "title": "Classic T-Shirt",
    "handle": "classic-t-shirt",
    "status": "active",
    "product_type": "Shirts",
    "vendor": "Acme Apparel",
    "url": "https://mystore.com/products/classic-t-shirt",
    "image_url": "https://cdn.shopify.com/s/files/1/0001/products/tshirt.jpg",
    "price_range": {
      "min": "10.00",
      "max": "15.00",
      "currency_code": "USD"
    },
    "total_inventory": 42,
    "tracks_inventory": true,
    "variants_count": 3,
    "variants": [
      {
        "id": 40012345678901,
        "title": "Small",
        "price": "10.00",
        "compare_at_price": "15.00",
        "sku": "TSHIRT-S",
        "inventory_quantity": 12,
        "available": true,
        "barcode": "0123456789012",
        "inventory_policy": "deny",
        "position": 1,
        "product_id": 7890123456789,
        "taxable": true,
        "image_id": 30012345678901,
        "updated_at": "2026-06-01T09:00:00Z"
      }
    ],
    "created_at": "2026-01-10T09:00:00Z",
    "updated_at": "2026-06-01T09:00:00Z",
    "description": "A timeless crew-neck tee in heavyweight cotton.",
    "tags": [
      "cotton",
      "summer"
    ],
    "options": [
      {
        "id": 10012345678901,
        "name": "Size",
        "position": 1,
        "values": [
          "Small",
          "Large"
        ]
      }
    ],
    "image": {
      "id": 30012345678901,
      "url": "https://cdn.shopify.com/s/files/1/0001/products/tshirt.jpg",
      "alt_text": "Front of the classic t-shirt",
      "width": 1600,
      "height": 1200
    },
    "images": [
      {
        "id": 30012345678901,
        "url": "https://cdn.shopify.com/s/files/1/0001/products/tshirt.jpg",
        "alt_text": "Front of the classic t-shirt",
        "width": 1600,
        "height": 1200
      }
    ],
    "media": [
      {
        "id": 20012345678901,
        "media_content_type": "image",
        "alt": "Front of the classic t-shirt",
        "preview_image_url": "https://cdn.shopify.com/s/files/1/0001/products/tshirt.jpg"
      }
    ]
  }
}

Changes

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new forbidden enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • warning

      added the new segment_builder_required enum value to the / response property for the response status

    • info

      endpoint added