Shopify Product API

The Product API from Shopify — 54 operation(s) for product.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

shopify-product-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Shopify Admin REST About Product API
  description: The Shopify Admin REST API lets you build apps and integrations that extend and enhance the Shopify admin. Access products, customers, orders, inventory, fulfillment, and more. Endpoints are organized by resource type and versioned by release date.
  version: 2025-01
  contact:
    name: Shopify
    url: https://shopify.dev/docs/api/admin-rest
    email: api@shopify.com
  license:
    name: Shopify API Terms
    url: https://www.shopify.com/legal/api-terms
  x-date: '2026-03-04'
servers:
- url: https://{store}.myshopify.com/admin/api/2025-01
  description: Shopify Admin REST API
  variables:
    store:
      default: my-store
      description: The Shopify store subdomain
security:
- AccessToken: []
tags:
- name: Product
paths:
  /admin/api/2020-01/metafields.json:
    get:
      summary: Shopify Retrieves A List Of Metafields That Belong To A Product Image Resource
      description: https://shopify.dev/docs/admin-api/rest/reference/metafield#index-2020-01
      parameters:
      - in: query
        name: metafield[owner_id]
        schema:
          type: integer
        description: metafield[owner_id]
        required: false
      - in: query
        name: metafield[owner_resource]
        schema:
          type: string
        description: metafield[owner_resource]
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_get_metafields
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-04/metafields.json:
    get:
      summary: Shopify Retrieves A List Of Metafields That Belong To A Product Image Resource
      description: https://shopify.dev/docs/admin-api/rest/reference/metafield#index-2020-04
      parameters:
      - in: query
        name: metafield[owner_id]
        schema:
          type: integer
        description: metafield[owner_id]
        required: false
      - in: query
        name: metafield[owner_resource]
        schema:
          type: string
        description: metafield[owner_resource]
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202004_get_metafields
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-07/metafields.json:
    get:
      summary: Shopify Retrieves A List Of Metafields That Belong To A Product Image Resource
      description: https://shopify.dev/docs/admin-api/rest/reference/metafield#index-2020-07
      parameters:
      - in: query
        name: metafield[owner_id]
        schema:
          type: integer
        description: metafield[owner_id]
        required: false
      - in: query
        name: metafield[owner_resource]
        schema:
          type: string
        description: metafield[owner_resource]
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202007_get_metafields
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-10/metafields.json:
    get:
      summary: Shopify Retrieves A List Of Metafields That Belong To A Product Image Resource
      description: https://shopify.dev/docs/admin-api/rest/reference/metafield#index-2020-10
      parameters:
      - in: query
        name: metafield[owner_id]
        schema:
          type: integer
        description: metafield[owner_id]
        required: false
      - in: query
        name: metafield[owner_resource]
        schema:
          type: string
        description: metafield[owner_resource]
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: get_metafields
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2021-01/metafields.json:
    get:
      summary: Shopify Retrieves A List Of Metafields That Belong To A Product Image Resource
      description: https://shopify.dev/docs/admin-api/rest/reference/metafield#index-2021-01
      parameters:
      - in: query
        name: metafield[owner_id]
        schema:
          type: integer
        description: metafield[owner_id]
        required: false
      - in: query
        name: metafield[owner_resource]
        schema:
          type: string
        description: metafield[owner_resource]
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202101_get_metafields
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/unstable/metafields.json:
    get:
      summary: Shopify Retrieves A List Of Metafields That Belong To A Product Image Resource
      description: https://shopify.dev/docs/admin-api/rest/reference/metafield#index-unstable
      parameters:
      - in: query
        name: metafield[owner_id]
        schema:
          type: integer
        description: metafield[owner_id]
        required: false
      - in: query
        name: metafield[owner_resource]
        schema:
          type: string
        description: metafield[owner_resource]
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_unstable_get_metafields
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-01/collects.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  collect:
                    product_id: 921728736
                    collection_id: 841564295
                summary: Create a new link between an existing product and an existing collection
              example2:
                value:
                  collect:
                    body: foobar
                summary: Creating a collect without a product or collection ID fails and returns an error
      summary: Shopify Adds A Product To A Custom Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#create-2020-01
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_create_collects
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-01/collects/{collect_id}.json:
    delete:
      summary: Shopify Removes A Product From A Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#destroy-2020-01
      parameters:
      - in: path
        name: collect_id
        required: true
        schema:
          type: string
        description: collect_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_delete_collects_param_collect_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-04/collects.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  collect:
                    product_id: 921728736
                    collection_id: 841564295
                summary: Create a new link between an existing product and an existing collection
              example2:
                value:
                  collect:
                    body: foobar
                summary: Creating a collect without a product or collection ID fails and returns an error
      summary: Shopify Adds A Product To A Custom Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#create-2020-04
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202004_create_collects
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-04/collects/{collect_id}.json:
    delete:
      summary: Shopify Removes A Product From A Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#destroy-2020-04
      parameters:
      - in: path
        name: collect_id
        required: true
        schema:
          type: string
        description: collect_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202004_delete_collects_param_collect_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-07/collects.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  collect:
                    product_id: 921728736
                    collection_id: 841564295
                summary: Create a new link between an existing product and an existing collection
              example2:
                value:
                  collect:
                    body: foobar
                summary: Creating a collect without a product or collection ID fails and returns an error
      summary: Shopify Adds A Product To A Custom Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#create-2020-07
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202007_create_collects
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-07/collects/{collect_id}.json:
    delete:
      summary: Shopify Removes A Product From A Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#destroy-2020-07
      parameters:
      - in: path
        name: collect_id
        required: true
        schema:
          type: string
        description: collect_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202007_delete_collects_param_collect_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-10/collects.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  collect:
                    product_id: 921728736
                    collection_id: 841564295
                summary: Create a new link between an existing product and an existing collection
              example2:
                value:
                  collect:
                    body: foobar
                summary: Creating a collect without a product or collection ID fails and returns an error
      summary: Shopify Adds A Product To A Custom Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#create-2020-10
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: create_collects
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-10/collects/{collect_id}.json:
    delete:
      summary: Shopify Removes A Product From A Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#destroy-2020-10
      parameters:
      - in: path
        name: collect_id
        required: true
        schema:
          type: string
        description: collect_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: delete_collects_param_collect_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2021-01/collects.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  collect:
                    product_id: 921728736
                    collection_id: 841564295
                summary: Create a new link between an existing product and an existing collection
              example2:
                value:
                  collect:
                    body: foobar
                summary: Creating a collect without a product or collection ID fails and returns an error
      summary: Shopify Adds A Product To A Custom Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#create-2021-01
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202101_create_collects
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2021-01/collects/{collect_id}.json:
    delete:
      summary: Shopify Removes A Product From A Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#destroy-2021-01
      parameters:
      - in: path
        name: collect_id
        required: true
        schema:
          type: string
        description: collect_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202101_delete_collects_param_collect_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/unstable/collects.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  collect:
                    product_id: 921728736
                    collection_id: 841564295
                summary: Create a new link between an existing product and an existing collection
              example2:
                value:
                  collect:
                    body: foobar
                summary: Creating a collect without a product or collection ID fails and returns an error
      summary: Shopify Adds A Product To A Custom Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#create-unstable
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_unstable_create_collects
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/unstable/collects/{collect_id}.json:
    delete:
      summary: Shopify Removes A Product From A Collection
      description: https://shopify.dev/docs/admin-api/rest/reference/products/collect#destroy-unstable
      parameters:
      - in: path
        name: collect_id
        required: true
        schema:
          type: string
        description: collect_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_unstable_delete_collects_param_collect_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-01/products.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                summary: Create a new product with the default product variant
              example2:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    published: false
                summary: Create a new unpublished product
              example3:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    shop:
                      id: 690933842
                      name: Apple Computers
                      email: steve@apple.com
                      domain: apple.myshopify.com
                      province: California
                      country: US
                      address1: 1 Infinite Loop
                      zip: '95014'
                      city: Cupertino
                      source: null
                      phone: '1231231234'
                      latitude: 45.45
                      longitude: -75.43
                      primary_locale: en
                      address2: Suite 100
                      created_at: '2007-12-31T19:00:00-05:00'
                      updated_at: '2020-11-04T16:46:58-05:00'
                      country_code: US
                      country_name: United States
                      currency: USD
                      customer_email: steve@apple.com
                      timezone: (GMT-05:00) Eastern Time (US & Canada)
                      iana_timezone: America/New_York
                      shop_owner: Steve Jobs
                      money_format: $
                      money_with_currency_format: $ USD
                      weight_unit: lb
                      province_code: CA
                      taxes_included: null
                      tax_shipping: null
                      county_taxes: true
                      plan_display_name: Shopify Plus
                      plan_name: enterprise
                      has_discounts: true
                      has_gift_cards: true
                      myshopify_domain: apple.myshopify.com
                      google_apps_domain: null
                      google_apps_login_enabled: null
                      money_in_emails_format: $
                      money_with_currency_in_emails_format: $ USD
                      eligible_for_payments: true
                      requires_extra_payments_agreement: false
                      password_enabled: null
                      has_storefront: true
                      eligible_for_card_reader_giveaway: false
                      finances: true
                      primary_location_id: 905684977
                      cookie_consent_level: implicit
                      visitor_tracking_consent_preference: allow_all
                      force_ssl: true
                      checkout_api_supported: true
                      multi_location_enabled: false
                      setup_required: false
                      pre_launch_enabled: false
                      enabled_presentment_currencies:
                      - USD
                    status: draft
                summary: Create a new draft product
              example4:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    variants:
                    - option1: First
                      price: '10.00'
                      sku: '123'
                    - option1: Second
                      price: '20.00'
                      sku: '123'
                summary: Create a new product with multiple product variants
              example5:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    variants:
                    - option1: Blue
                      option2: '155'
                    - option1: Black
                      option2: '159'
                    options:
                    - name: Color
                      values:
                      - Blue
                      - Black
                    - name: Size
                      values:
                      - '155'
                      - '159'
                summary: Create a new product with multiple product variants and multiple options
              example6:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    images:
                    - attachment: 'R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

                        '
                summary: Create a new product with the default variant and base64 encoded image
              example7:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    images:
                    - src: http://example.com/rails_logo.gif
                summary: Create a new product with the default variant and a product image that will be downloaded by Shopify
              example8:
                value:
                  product:
                    body_html: A mystery!
                summary: Creating a product without a title will return an error
              example9:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    metafields:
                    - key: new
                      value: newvalue
                      value_type: string
                      namespace: global
                summary: Create a product with a metafield
      summary: Shopify Creates A New Product
      description: https://shopify.dev/docs/admin-api/rest/reference/products/product#create-2020-01
      parameters: []
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_create_products
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-01/products/{product_id}.json:
    get:
      summary: Shopify Retrieves A Single Product
      description: https://shopify.dev/docs/admin-api/rest/reference/products/product#show-2020-01
      parameters:
      - in: path
        name: product_id
        required: true
        schema:
          type: string
        description: product_id
      - in: query
        name: fields
        description: A comma-separated list of fields to include in the response.
        schema: {}
        required: false
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_get_products_param_product_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
    put:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                value:
                  product:
                    id: 632910392
                    title: New product title
                summary: Update a product's title
              example2:
                value:
                  product:
                    id: 632910392
                    status: draft
                summary: Update a product's status
              example3:
                value:
                  product:
                    id: 632910392
                    tags: Barnes & Noble, John's Fav
                summary: Update a product's tags
              example4:
                value:
                  product:
                    id: 632910392
                    images: []
                summary: Update a product by clearing product images
              example5:
                value:
                  product:
                    id: 632910392
                    images:
                    - id: 850703190
                    - id: 562641783
                    - src: http://example.com/rails_logo.gif
                summary: Update a product by adding a new product image
              example6:
                value:
                  product:
                    id: 632910392
                    images:
                    - id: 850703190
                      position: 2
                    - id: 562641783
                      position: 1
                summary: Update a product by reordering product image
              example7:
                value:
                  product:
                    id: 632910392
                    variants:
                    - id: 457924702
                    - id: 39072856
                    - id: 49148385
                    - id: 808950810
                summary: Update a product by reordering the product variants
              example8:
                value:
                  product:
                    id: 632910392
                    title: Updated Product Title
                    variants:
                    - id: 808950810
                      price: '2000.00'
                      sku: Updating the Product SKU
                    - id: 49148385
                    - id: 39072856
                    - id: 457924702
                summary: Update a product and one of its variants
              example9:
                value:
                  product:
                    id: 632910392
                    metafields_global_title_tag: Brand new title
                    metafields_global_description_tag: Brand new description
                summary: Update a product's SEO title and description
              example10:
                value:
                  product:
                    id: 632910392
                    published: true
                summary: Show a hidden product by changing the published attribute to true
              example11:
                value:
                  product:
                    id: 632910392
                    published: false
                summary: Hide a published product by changing the published attribute to false
              example12:
                value:
                  product:
                    id: 632910392
                    metafields:
                    - key: new
                      value: newvalue
                      value_type: string
                      namespace: global
                summary: Add a metafield to an existing product
      summary: Shopify Updates A Product And Its Variants And Images
      description: https://shopify.dev/docs/admin-api/rest/reference/products/product#update-2020-01
      parameters:
      - in: path
        name: product_id
        required: true
        schema:
          type: string
        description: product_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_update_products_param_product_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
    delete:
      summary: Shopify Deletes A Product
      description: https://shopify.dev/docs/admin-api/rest/reference/products/product#destroy-2020-01
      parameters:
      - in: path
        name: product_id
        required: true
        schema:
          type: string
        description: product_id
      tags:
      - Product
      responses:
        '200':
          description: ''
      operationId: deprecated_202001_delete_products_param_product_id
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
  /admin/api/2020-04/products.json:
    post:
      requestBody:
        content:
          application/json:
            schema: {}
            examples:
              example1:
                summary: Create a new product with the default product variant
              example2:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    published: false
                summary: Create a new unpublished product
              example3:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    shop:
                      id: 690933842
                      name: Apple Computers
                      email: steve@apple.com
                      domain: apple.myshopify.com
                      province: California
                      country: US
                      address1: 1 Infinite Loop
                      zip: '95014'
                      city: Cupertino
                      source: null
                      phone: '1231231234'
                      latitude: 45.45
                      longitude: -75.43
                      primary_locale: en
                      address2: Suite 100
                      created_at: '2007-12-31T19:00:00-05:00'
                      updated_at: '2020-11-04T16:46:58-05:00'
                      country_code: US
                      country_name: United States
                      currency: USD
                      customer_email: steve@apple.com
                      timezone: (GMT-05:00) Eastern Time (US & Canada)
                      iana_timezone: America/New_York
                      shop_owner: Steve Jobs
                      money_format: $
                      money_with_currency_format: $ USD
                      weight_unit: lb
                      province_code: CA
                      taxes_included: null
                      tax_shipping: null
                      county_taxes: true
                      plan_display_name: Shopify Plus
                      plan_name: enterprise
                      has_discounts: true
                      has_gift_cards: true
                      myshopify_domain: apple.myshopify.com
                      google_apps_domain: null
                      google_apps_login_enabled: null
                      money_in_emails_format: $
                      money_with_currency_in_emails_format: $ USD
                      eligible_for_payments: true
                      requires_extra_payments_agreement: false
                      password_enabled: null
                      has_storefront: true
                      eligible_for_card_reader_giveaway: false
                      finances: true
                      primary_location_id: 905684977
                      cookie_consent_level: implicit
                      visitor_tracking_consent_preference: allow_all
                      force_ssl: true
                      checkout_api_supported: true
                      multi_location_enabled: false
                      setup_required: false
                      pre_launch_enabled: false
                      enabled_presentment_currencies:
                      - USD
                    status: draft
                summary: Create a new draft product
              example4:
                value:
                  product:
                    title: Burton Custom Freestyle 151
                    body_html: <strong>Good snowboard!</strong>
                    vendor: Burton
                    product_type: Snowboard
                    variants:
                    - option1: First
                      price: '10.00'
                      sku: '123'
                    - option1: Second
                      price: '20.00'
                      sku: '123'
                summary: Create a new product with multiple product variants
 

# --- truncated at 32 KB (513 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shopify/refs/heads/main/openapi/shopify-product-api-openapi.yml