Creates a new webhook subscription.
Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml
may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.
The type of event that triggers the webhook.
Specifies the input fields for a webhook subscription.
The list of errors that occurred from executing the mutation.
The webhook subscription that was created.
mutation webhookSubscriptionCreate($topic: WebhookSubscriptionTopic!, $webhookSubscription: WebhookSubscriptionInput!) { webhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) { webhookSubscription { id topic filter endpoint { __typename ... on WebhookHttpEndpoint { callbackUrl } } } userErrors { field message } } }
curl -X POST \ https://your-development-store.myshopify.com/admin/api/2025-07/graphql.json \ -H 'Content-Type: application/json' \ -H 'X-Shopify-Access-Token: {access_token}' \ -d '{ "query": "mutation webhookSubscriptionCreate($topic: WebhookSubscriptionTopic!, $webhookSubscription: WebhookSubscriptionInput!) { webhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) { webhookSubscription { id topic filter endpoint { __typename ... on WebhookHttpEndpoint { callbackUrl } } } userErrors { field message } } }", "variables": { "topic": "METAOBJECTS_CREATE", "webhookSubscription": { "callbackUrl": "https://example.org/endpoint", "filter": "type:lookbook" } } }'
const { admin } = await authenticate.admin(request); const response = await admin.graphql( `#graphql mutation webhookSubscriptionCreate($topic: WebhookSubscriptionTopic!, $webhookSubscription: WebhookSubscriptionInput!) { webhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) { webhookSubscription { id topic filter endpoint { __typename ... on WebhookHttpEndpoint { callbackUrl } } } userErrors { field message } } }`, { variables: { "topic": "METAOBJECTS_CREATE", "webhookSubscription": { "callbackUrl": "https://example.org/endpoint", "filter": "type:lookbook" } }, }, ); const data = await response.json();
const client = new shopify.clients.Graphql({session}); const data = await client.query({ data: { "query": `mutation webhookSubscriptionCreate($topic: WebhookSubscriptionTopic!, $webhookSubscription: WebhookSubscriptionInput!) { webhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) { webhookSubscription { id topic filter endpoint { __typename ... on WebhookHttpEndpoint { callbackUrl } } } userErrors { field message } } }`, "variables": { "topic": "METAOBJECTS_CREATE", "webhookSubscription": { "callbackUrl": "https://example.org/endpoint", "filter": "type:lookbook" } }, }, });
session = ShopifyAPI::Auth::Session.new( shop: "your-development-store.myshopify.com", access_token: access_token ) client = ShopifyAPI::Clients::Graphql::Admin.new( session: session ) query = <<~QUERY mutation webhookSubscriptionCreate($topic: WebhookSubscriptionTopic!, $webhookSubscription: WebhookSubscriptionInput!) { webhookSubscriptionCreate(topic: $topic, webhookSubscription: $webhookSubscription) { webhookSubscription { id topic filter endpoint { __typename ... on WebhookHttpEndpoint { callbackUrl } } } userErrors { field message } } } QUERY variables = { "topic": "METAOBJECTS_CREATE", "webhookSubscription": { "callbackUrl": "https://example.org/endpoint", "filter": "type:lookbook" } } response = client.query(query: query, variables: variables)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4