Shopify Webhooks API

Shopify webhooks enable apps to receive notifications about particular events in a shop. They are useful for keeping your app in sync with Shopify data or as a trigger to perform additional actions after events occur, providing a performant alternative to continuously polling for changes.

Business capability
Webhook & Event Subscription Management BC-4270.80

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 /webhooks.json List my app's webhook subscriptions · Shopify Retrieve a list of webhooks #
Ask an LLM
“Which webhook subscriptions has my app registered with the store?”
“Can I list only the webhooks subscribed to one topic?”
Tell an agent
List all of my app's webhook subscriptions.
Show webhooks subscribed to topic {topic}.
POST /webhooks.json Subscribe to a store event with a webhook · Shopify Create a webhook subscription #
Ask an LLM
“How do I get notified at my own URL whenever a store event happens?”
“Can I register a new webhook subscription for an event topic my app cares about?”
Tell an agent
Create a webhook subscription from {webhook}.
Subscribe my app to store events by registering webhook {webhook}.
GET /webhooks/count.json Count webhook subscriptions · Shopify Retrieve a count of webhooks #
Ask an LLM
“How many webhook subscriptions does my app currently have?”
“Can I count the webhooks registered for a single topic?”
Tell an agent
Count my app's webhook subscriptions.
Count the webhooks subscribed to {topic}.
GET /webhooks/{webhook_id}.json Get one webhook subscription · Shopify Retrieve a single webhook #
Ask an LLM
“Where is a particular webhook subscription sending its events?”
“Can I look up a single webhook's topic and format by its ID?”
Tell an agent
Show webhook subscription {webhook_id}.
Get the details of webhook {webhook_id}.
PUT /webhooks/{webhook_id}.json Change an existing webhook subscription · Shopify Update a webhook subscription #
Ask an LLM
“My endpoint moved; can I point an existing webhook at a new address?”
“What can I change on a webhook subscription I already created?”
Tell an agent
Update webhook {webhook_id} with {webhook}.
Edit the existing subscription {webhook_id} using settings {webhook}.
DELETE /webhooks/{webhook_id}.json Delete a webhook subscription · Shopify Delete a webhook subscription #
Ask an LLM
“How can I stop receiving events for a webhook I no longer need?”
“Is unsubscribing a webhook permanent?”
Tell an agent destructive · confirm first
Delete webhook subscription {webhook_id}.
Unsubscribe webhook {webhook_id} so it stops firing.

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/webhooks-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-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Shopify Admin REST Webhooks 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: Webhooks
  description: Manage webhook subscriptions
paths:
  /webhooks.json:
    get:
      operationId: listWebhooks
      summary: Shopify Retrieve a list of webhooks
      description: Retrieves a list of webhook subscriptions for the app.
      tags:
      - Webhooks
      parameters:
      - name: topic
        in: query
        description: Filter by webhook topic
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of results (max 250, default 50)
        schema:
          type: integer
          default: 50
          maximum: 250
      - name: since_id
        in: query
        description: Return webhooks 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 webhooks
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhooks:
                    type: array
                    items:
                      $ref: '#/components/schemas/Webhook'
    post:
      operationId: createWebhook
      summary: Shopify Create a webhook subscription
      description: Creates a new webhook subscription. When the specified event occurs Shopify sends an HTTP POST to the provided address.
      tags:
      - Webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - webhook
              properties:
                webhook:
                  $ref: '#/components/schemas/WebhookInput'
      responses:
        '201':
          description: The created webhook
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhook:
                    $ref: '#/components/schemas/Webhook'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /webhooks/count.json:
    get:
      operationId: getWebhookCount
      summary: Shopify Retrieve a count of webhooks
      description: Retrieves a count of existing webhook subscriptions.
      tags:
      - Webhooks
      parameters:
      - name: topic
        in: query
        description: Count webhooks for a specific topic
        schema:
          type: string
      responses:
        '200':
          description: The webhook count
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
  /webhooks/{webhook_id}.json:
    get:
      operationId: getWebhook
      summary: Shopify Retrieve a single webhook
      description: Retrieves a single webhook subscription by ID.
      tags:
      - Webhooks
      parameters:
      - name: webhook_id
        in: path
        required: true
        description: The ID of the webhook
        schema:
          type: integer
      responses:
        '200':
          description: The requested webhook
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhook:
                    $ref: '#/components/schemas/Webhook'
    put:
      operationId: updateWebhook
      summary: Shopify Update a webhook subscription
      description: Updates an existing webhook subscription.
      tags:
      - Webhooks
      parameters:
      - name: webhook_id
        in: path
        required: true
        description: The ID of the webhook
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - webhook
              properties:
                webhook:
                  $ref: '#/components/schemas/WebhookInput'
      responses:
        '200':
          description: The updated webhook
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhook:
                    $ref: '#/components/schemas/Webhook'
    delete:
      operationId: deleteWebhook
      summary: Shopify Delete a webhook subscription
      description: Deletes a webhook subscription.
      tags:
      - Webhooks
      parameters:
      - name: webhook_id
        in: path
        required: true
        description: The ID of the webhook
        schema:
          type: integer
      responses:
        '200':
          description: Webhook deleted successfully
components:
  schemas:
    Webhook:
      type: object
      description: A webhook subscription
      properties:
        id:
          type: integer
        address:
          type: string
          format: uri
          description: The URL where the webhook delivers data
        topic:
          type: string
          description: The event that triggers the webhook
        format:
          type: string
          description: The data format
          enum:
          - json
          - xml
        fields:
          type: array
          description: Optional list of fields to include in the payload
          items:
            type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        api_version:
          type: string
          description: The API version for the webhook payload
        admin_graphql_api_id:
          type: string
    Error:
      type: object
      description: Error response
      properties:
        errors:
          description: Error details
          oneOf:
          - type: string
          - type: object
            additionalProperties:
              type: array
              items:
                type: string
    WebhookInput:
      type: object
      description: Input for creating or updating a webhook
      required:
      - topic
      - address
      properties:
        topic:
          type: string
          description: The event topic (e.g. orders/create)
        address:
          type: string
          format: uri
          description: The callback URL
        format:
          type: string
          enum:
          - json
          - xml
        fields:
          type: array
          items:
            type: string
  securitySchemes:
    AccessToken:
      type: apiKey
      name: X-Shopify-Access-Token
      in: header
      description: Access token obtained via OAuth