# Get product

Products
            Plans
          
        
        
          
            
              
              Formerly ShipEngine
            
            
              Free
              Advanced
              Enterprise
            
          
          
            
              
            
            
              Free
              Starter
              Standard
              Premium
            
          
        
      
      
        
          Learn about products and plans

Endpoint: GET /v2/products/{product_id}
Version: 2.0.0
Security: api_keys

## Path parameters:

  - `product_id` (integer, required)
    Unique identifier for the product
    Example: 10736794

## Response 200 fields (application/json):

  - `product_id` (integer)
    Unique identifier for the product
    Example: 10736794

  - `sku` (string)
    Stock Keeping Unit identifier
    Example: "K1"

  - `name` (string)
    Product name
    Example: "Test Product"

  - `upc` (string,null)
    Universal Product Code
    Example: "123-4"

  - `thumbnail_url` (string,null)
    URL to product thumbnail image
    Example: "www.image.com"

  - `price` (object)

  - `price.currency` (string)
    Currency code
    Example: "usd"

  - `price.amount` (number)
    Price amount
    Example: 88

  - `dimensions` (object)

  - `dimensions.unit` (string)
    Unit of measurement
    Example: "inch"

  - `dimensions.length` (number)
    Length dimension
    Example: 9

  - `dimensions.width` (number)
    Width dimension
    Example: 5

  - `dimensions.height` (number)
    Height dimension
    Example: 7

  - `weight` (object)

  - `weight.value` (number)
    Weight value
    Example: 99.2

  - `weight.unit` (string)
    Weight unit
    Example: "ounce"

  - `internal_notes` (string,null)
    Internal notes about the product
    Example: "Describe your item"

  - `fulfillment_sku` (string,null)
    Fulfillment SKU
    Example: "widget-2"

  - `create_date` (string)
    Date when product was created
    Example: "2025-07-07T20:10:02.13Z"

  - `modify_date` (string)
    Date when product was last modified
    Example: "2025-07-07T20:10:02.13Z"

  - `active` (boolean)
    Whether the product is active
    Example: true

  - `product_category` (object,null)

  - `product_category.product_category_id` (integer)
    Example: 26663

  - `product_category.name` (string)
    Example: "Example-category"

  - `preset_group` (string,null)
    Preset group
    Example: "Default"

  - `warehouse_location` (string,null)
    Warehouse location
    Example: "BIN 43-6"

  - `default_carrier_code` (string,null)
    Default carrier code
    Example: "stamps_com"

  - `default_service_code` (string,null)
    Default service code
    Example: "usps_first_class_mail"

  - `default_package_code` (string,null)
    Default package code
    Example: "large_flat_rate_box"

  - `default_intl_carrier_code` (string,null)
    Default international carrier code
    Example: "stamps_com"

  - `default_intl_service_code` (string,null)
    Default international service code
    Example: "usps_priority_mail_international"

  - `default_intl_package_code` (string,null)
    Default international package code
    Example: "package"

  - `default_confirmation` (string,null)
    Default confirmation type
    Example: "none"

  - `default_intl_confirmation` (string,null)
    Default international confirmation type
    Example: "delivery"

  - `customs_description` (string,null)
    Customs description
    Example: "An object going internationally"

  - `customs_value` (number,null)
    Customs value
    Example: 20

  - `customs_tariff_no` (string,null)
    Customs tariff number
    Example: "0245.56.13"

  - `customs_country_code` (string,null)
    Customs country code
    Example: "US"

  - `no_customs` (boolean,null)
    Whether customs is required

  - `tags` (array,null)

  - `tags.tag_id` (integer)
    Example: 21121

  - `tags.name` (string)
    Example: "Sample Tag"

  - `tags.color` (string)
    Example: "#800080"

  - `aliases` (array,null)

  - `aliases.store_id` (integer)
    Example: 2095811

  - `aliases.sku_alias` (string)
    Example: "alt-sku"

  - `product_type` (string,null)
    Product type
    Example: "standalone"

  - `is_returnable` (boolean)
    Whether the product is returnable

  - `should_override_name` (boolean,null)
    Whether to override the product name
    Example: true

  - `is_bundle` (boolean,null)
    Whether the product is a bundle
    Example: true

  - `bundle_components` (array,null)

  - `bundle_components.bundle_product_id` (integer)
    Example: 10736791

  - `bundle_components.component_product_id` (integer)
    Example: 10408926

  - `bundle_components.sku` (string)
    Example: "New-SKU"

  - `bundle_components.quantity` (integer)
    Example: 3

  - `bundle_components.active` (boolean)
    Example: true

  - `auto_split_option` (string)
    Auto split option
    Example: "do_not_split"

  - `auto_split_custom_quantity` (integer,null)
    Auto split custom quantity
    Example: 3

## Response 400 fields (application/json):

  - `request_id` (string, required)
    A UUID that uniquely identifies the request id.
This can be given to the support team to help debug non-trivial issues that may occur
    Example: "aa3d8e8e-462b-4476-9618-72db7f7b7009"

  - `errors` (array, required)
    The errors associated with the failed API call

  - `errors.error_source` (string, required)
    The source of the error, as indicated by the name this informs us if the API call failed because of the
carrier, the order source, the ShipStation API itself, or the underlying ShipEngine platform.
    Enum: "carrier", "order_source", "ShipStation", "shipengine"

  - `errors.error_type` (string, required)
    The type of error
    Enum: "account_status", "business_rules", "validation", "security", "system", "integrations"

  - `errors.error_code` (string, required)
    The error code specified for the failed API Call
    Enum: "auto_fund_not_supported", "batch_cannot_be_modified", "carrier_conflict", "carrier_disconnected", "carrier_not_connected", "carrier_not_supported", "confirmation_not_supported", "default_warehouse_cannot_be_deleted", "field_conflict", "field_value_required", "forbidden", "identifier_conflict", "identifiers_must_match", "insufficient_funds", "invalid_address", "invalid_billing_plan", "invalid_field_value", "invalid_identifier", "invalid_status", "invalid_string_length", "label_images_not_supported", "meter_failure", "order_source_not_active", "rate_limit_exceeded", "refresh_not_supported", "request_body_required", "return_label_not_supported", "settings_not_supported", "subscription_inactive", "terms_not_accepted", "tracking_not_supported", "trial_expired", "unauthorized", "unknown", "unspecified", "verification_failure", "warehouse_conflict", "webhook_event_type_conflict", "customs_items_required", "incompatible_paired_labels", "invalid_charge_event", "invalid_object", "no_rates_returned", "freight_connection_inactive", "freight_provider_id_required", "freight_shipment_not_found", "freight_tracking_not_available", "freight_tracking_not_found", "freight_shipment_not_batchable", "freight_provider_already_connected"

  - `errors.message` (string, required)
    An error message associated with the failed API call
    Example: "Body of request cannot be null."

  - `errors.field_name` (string)
    The name of the field that caused the error (only present for validation errors)
    Example: "inventory_warehouse_id"

  - `errors.field_value` (string)
    The invalid value that was provided for the field (only present for validation errors)
    Example: "invalid-id"


