Shopify Product Images API

Manage images associated with products

Business capability
Product Content Authoring Management BC-2370.20

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /products/{product_id}/images.json List a product's images · Shopify Retrieve a list of product images #
Ask an LLM
“Which photos are attached to one of my products?”
“Can I list a product's images but return only certain fields?”
Tell an agent
List all images for product {product_id}.
Show product {product_id}'s images after image ID {since_id}.
POST /products/{product_id}/images.json Add an image to a product · Shopify Create a product image #
Ask an LLM
“How do I upload a new photo to a product?”
“Can I add a product image from a URL instead of uploading the file?”
Tell an agent
Add image {image} to product {product_id}.
Attach a new picture {image} to product {product_id} from its URL.
GET /products/{product_id}/images/count.json Count a product's images · Shopify Retrieve a count of product images #
Ask an LLM
“How many images does a given product have?”
“Can I check a product's image total without downloading the images?”
Tell an agent
Count the images on product {product_id}.
Tell me how many photos product {product_id} has.
GET /products/{product_id}/images/{image_id}.json Get one product image · Shopify Retrieve a single product image #
Ask an LLM
“What alt text and position does a specific product image have?”
“Can I fetch one image of a product by its image ID?”
Tell an agent
Get image {image_id} of product {product_id}.
Show the details of product {product_id}'s image {image_id}.
PUT /products/{product_id}/images/{image_id}.json Update a product image's alt text or position · Shopify Update a product image #
Ask an LLM
“Can I change the alt text on an existing product photo for accessibility?”
“Is it possible to reorder a product's images or link one to specific variants?”
Tell an agent
Update image {image_id} on product {product_id} with {image}.
Change the position, alt text or variants of product {product_id}'s image {image_id} to {image}.
DELETE /products/{product_id}/images/{image_id}.json Delete a product image · Shopify Delete a product image #
Ask an LLM
“How can I remove an outdated photo from a product?”
“Does deleting a product image affect the product itself?”
Tell an agent destructive · confirm first
Delete image {image_id} from product {product_id}.
Remove product {product_id}'s photo {image_id}.

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/shopify-product-images-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

shopify-product-images-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Shopify Admin REST Product Images 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 Images
  description: Manage images associated with products
paths:
  /products/{product_id}/images.json:
    get:
      operationId: listProductImages
      summary: Shopify Retrieve a list of product images
      description: Retrieves all images for a given product.
      tags:
      - Product Images
      parameters:
      - $ref: '#/components/parameters/ProductId'
      - name: since_id
        in: query
        description: Return images after the specified ID
        schema:
          type: integer
      - name: fields
        in: query
        description: Comma-separated list of fields to include
        schema:
          type: string
      responses:
        '200':
          description: A list of product images
          content:
            application/json:
              schema:
                type: object
                properties:
                  images:
                    type: array
                    items:
                      $ref: '#/components/schemas/Image'
    post:
      operationId: createProductImage
      summary: Shopify Create a product image
      description: Creates a new image for a product. Images can be provided as a URL or a base64-encoded attachment.
      tags:
      - Product Images
      parameters:
      - $ref: '#/components/parameters/ProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - image
              properties:
                image:
                  $ref: '#/components/schemas/ImageInput'
      responses:
        '201':
          description: The created image
          content:
            application/json:
              schema:
                type: object
                properties:
                  image:
                    $ref: '#/components/schemas/Image'
  /products/{product_id}/images/count.json:
    get:
      operationId: getProductImageCount
      summary: Shopify Retrieve a count of product images
      description: Retrieves a count of images for a given product.
      tags:
      - Product Images
      parameters:
      - $ref: '#/components/parameters/ProductId'
      responses:
        '200':
          description: The image count
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
  /products/{product_id}/images/{image_id}.json:
    get:
      operationId: getProductImage
      summary: Shopify Retrieve a single product image
      description: Retrieves a single image for a product by its ID.
      tags:
      - Product Images
      parameters:
      - $ref: '#/components/parameters/ProductId'
      - $ref: '#/components/parameters/ImageId'
      responses:
        '200':
          description: The requested image
          content:
            application/json:
              schema:
                type: object
                properties:
                  image:
                    $ref: '#/components/schemas/Image'
    put:
      operationId: updateProductImage
      summary: Shopify Update a product image
      description: Updates an existing product image. Can update position, alt text, and variant associations.
      tags:
      - Product Images
      parameters:
      - $ref: '#/components/parameters/ProductId'
      - $ref: '#/components/parameters/ImageId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - image
              properties:
                image:
                  $ref: '#/components/schemas/ImageInput'
      responses:
        '200':
          description: The updated image
          content:
            application/json:
              schema:
                type: object
                properties:
                  image:
                    $ref: '#/components/schemas/Image'
    delete:
      operationId: deleteProductImage
      summary: Shopify Delete a product image
      description: Deletes an image from a product.
      tags:
      - Product Images
      parameters:
      - $ref: '#/components/parameters/ProductId'
      - $ref: '#/components/parameters/ImageId'
      responses:
        '200':
          description: Image deleted successfully
components:
  parameters:
    ProductId:
      name: product_id
      in: path
      required: true
      description: The ID of the product
      schema:
        type: integer
    ImageId:
      name: image_id
      in: path
      required: true
      description: The ID of the image
      schema:
        type: integer
  schemas:
    Image:
      type: object
      description: A product image
      properties:
        id:
          type: integer
        product_id:
          type: integer
        position:
          type: integer
          description: Position in the image list
        alt:
          type:
          - string
          - 'null'
          description: Alt text for the image
        width:
          type: integer
        height:
          type: integer
        src:
          type: string
          format: uri
          description: The image URL
        variant_ids:
          type: array
          description: Variant IDs associated with this image
          items:
            type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        admin_graphql_api_id:
          type: string
    ImageInput:
      type: object
      description: Input for creating or updating a product image
      properties:
        src:
          type: string
          format: uri
          description: URL of the image
        attachment:
          type: string
          description: Base64-encoded image data
        alt:
          type: string
          description: Alt text
        position:
          type: integer
        variant_ids:
          type: array
          items:
            type: integer
  securitySchemes:
    AccessToken:
      type: apiKey
      name: X-Shopify-Access-Token
      in: header
      description: Access token obtained via OAuth