Shopify · Capability
Shopify Admin REST API — Products
Shopify Admin REST API — Products. 6 operations. Lead operation: Shopify Retrieve a list of products. Self-contained Naftiko capability covering one Shopify business surface.
What You Can Do
GET
Listproducts
— Shopify Retrieve a list of products
/v1/products-json
POST
Createproduct
— Shopify Create a new product
/v1/products-json
GET
Getproductcount
— Shopify Retrieve a count of products
/v1/products/count-json
GET
Getproduct
— Shopify Retrieve a single product
/v1/products/product-id-json
PUT
Updateproduct
— Shopify Update a product
/v1/products/product-id-json
DELETE
Deleteproduct
— Shopify Delete a product
/v1/products/product-id-json
MCP Tools
shopify-retrieve-list-products
Shopify Retrieve a list of products
read-only
idempotent
shopify-create-new-product
Shopify Create a new product
shopify-retrieve-count-products
Shopify Retrieve a count of products
read-only
idempotent
shopify-retrieve-single-product
Shopify Retrieve a single product
read-only
idempotent
shopify-update-product
Shopify Update a product
idempotent
shopify-delete-product
Shopify Delete a product
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Shopify Admin REST API — Products
description: 'Shopify Admin REST API — Products. 6 operations. Lead operation: Shopify Retrieve a list of products. Self-contained
Naftiko capability covering one Shopify business surface.'
tags:
- Shopify
- Products
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SHOPIFY_API_KEY: SHOPIFY_API_KEY
capability:
consumes:
- type: http
namespace: admin-rest-products
baseUri: https://{store}.myshopify.com/admin/api/2025-01
description: Shopify Admin REST API — Products business capability. Self-contained, no shared references.
resources:
- name: products.json
path: /products.json
operations:
- name: listproducts
method: GET
description: Shopify Retrieve a list of products
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: ids
in: query
type: string
description: Comma-separated list of product IDs to retrieve
- name: limit
in: query
type: integer
description: Maximum number of results to return (max 250, default 50)
- name: since_id
in: query
type: integer
description: Return products after the specified ID
- name: title
in: query
type: string
description: Filter by product title
- name: vendor
in: query
type: string
description: Filter by product vendor
- name: product_type
in: query
type: string
description: Filter by product type
- name: collection_id
in: query
type: integer
description: Filter by collection ID
- name: status
in: query
type: string
description: Filter by product status
- name: fields
in: query
type: string
description: Comma-separated list of fields to include in the response
- name: created_at_min
in: query
type: string
description: Show products created after this date (ISO 8601)
- name: created_at_max
in: query
type: string
description: Show products created before this date (ISO 8601)
- name: updated_at_min
in: query
type: string
description: Show products updated after this date (ISO 8601)
- name: updated_at_max
in: query
type: string
description: Show products updated before this date (ISO 8601)
- name: createproduct
method: POST
description: Shopify Create a new product
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: products-count.json
path: /products/count.json
operations:
- name: getproductcount
method: GET
description: Shopify Retrieve a count of products
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: vendor
in: query
type: string
description: Filter by product vendor
- name: product_type
in: query
type: string
description: Filter by product type
- name: collection_id
in: query
type: integer
description: Filter by collection ID
- name: created_at_min
in: query
type: string
description: Count products created after this date
- name: updated_at_min
in: query
type: string
description: Count products updated after this date
- name: products-product_id}.json
path: /products/{product_id}.json
operations:
- name: getproduct
method: GET
description: Shopify Retrieve a single product
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: fields
in: query
type: string
description: Comma-separated list of fields to include
- name: updateproduct
method: PUT
description: Shopify Update a product
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deleteproduct
method: DELETE
description: Shopify Delete a product
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
authentication:
type: apikey
key: X-Shopify-Access-Token
value: '{{env.SHOPIFY_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: admin-rest-products-rest
port: 8080
description: REST adapter for Shopify Admin REST API — Products. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/products-json
name: products-json
description: REST surface for products.json.
operations:
- method: GET
name: listproducts
description: Shopify Retrieve a list of products
call: admin-rest-products.listproducts
with:
ids: rest.ids
limit: rest.limit
since_id: rest.since_id
title: rest.title
vendor: rest.vendor
product_type: rest.product_type
collection_id: rest.collection_id
status: rest.status
fields: rest.fields
created_at_min: rest.created_at_min
created_at_max: rest.created_at_max
updated_at_min: rest.updated_at_min
updated_at_max: rest.updated_at_max
outputParameters:
- type: object
mapping: $.
- method: POST
name: createproduct
description: Shopify Create a new product
call: admin-rest-products.createproduct
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/products/count-json
name: products-count-json
description: REST surface for products-count.json.
operations:
- method: GET
name: getproductcount
description: Shopify Retrieve a count of products
call: admin-rest-products.getproductcount
with:
vendor: rest.vendor
product_type: rest.product_type
collection_id: rest.collection_id
created_at_min: rest.created_at_min
updated_at_min: rest.updated_at_min
outputParameters:
- type: object
mapping: $.
- path: /v1/products/product-id-json
name: products-product-id-json
description: REST surface for products-product_id}.json.
operations:
- method: GET
name: getproduct
description: Shopify Retrieve a single product
call: admin-rest-products.getproduct
with:
fields: rest.fields
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updateproduct
description: Shopify Update a product
call: admin-rest-products.updateproduct
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteproduct
description: Shopify Delete a product
call: admin-rest-products.deleteproduct
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: admin-rest-products-mcp
port: 9090
transport: http
description: MCP adapter for Shopify Admin REST API — Products. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: shopify-retrieve-list-products
description: Shopify Retrieve a list of products
hints:
readOnly: true
destructive: false
idempotent: true
call: admin-rest-products.listproducts
with:
ids: tools.ids
limit: tools.limit
since_id: tools.since_id
title: tools.title
vendor: tools.vendor
product_type: tools.product_type
collection_id: tools.collection_id
status: tools.status
fields: tools.fields
created_at_min: tools.created_at_min
created_at_max: tools.created_at_max
updated_at_min: tools.updated_at_min
updated_at_max: tools.updated_at_max
outputParameters:
- type: object
mapping: $.
- name: shopify-create-new-product
description: Shopify Create a new product
hints:
readOnly: false
destructive: false
idempotent: false
call: admin-rest-products.createproduct
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: shopify-retrieve-count-products
description: Shopify Retrieve a count of products
hints:
readOnly: true
destructive: false
idempotent: true
call: admin-rest-products.getproductcount
with:
vendor: tools.vendor
product_type: tools.product_type
collection_id: tools.collection_id
created_at_min: tools.created_at_min
updated_at_min: tools.updated_at_min
outputParameters:
- type: object
mapping: $.
- name: shopify-retrieve-single-product
description: Shopify Retrieve a single product
hints:
readOnly: true
destructive: false
idempotent: true
call: admin-rest-products.getproduct
with:
fields: tools.fields
outputParameters:
- type: object
mapping: $.
- name: shopify-update-product
description: Shopify Update a product
hints:
readOnly: false
destructive: false
idempotent: true
call: admin-rest-products.updateproduct
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: shopify-delete-product
description: Shopify Delete a product
hints:
readOnly: false
destructive: true
idempotent: true
call: admin-rest-products.deleteproduct
outputParameters:
- type: object
mapping: $.