shopify-api
Provides a comprehensive guide for integrating with Shopify APIs, including authentication and data fetching for e-commerce applications.
Install this skill
Security score
The shopify-api skill was audited on Feb 28, 2026 and we found 44 security issues across 3 threat categories. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 132 | `https://${store}.myshopify.com/admin/api/2025-10/graphql.json`, |
Template literal with variable interpolation in command context
| 236 | `https://${store}.myshopify.com/admin/api/2025-10/products.json?limit=50`, |
Template literal with variable interpolation in command context
| 331 | .map(key => `${key}=${params[key]}`) |
Template literal with variable interpolation in command context
| 363 | `https://${shop}/admin/oauth/access_token`, |
Template literal with variable interpolation in command context
| 774 | throw new Error(`HTTP ${response.status}: ${response.statusText}`); |
Fetch to external URL
| 543 | fetch('/cart.js') |
Fetch to external URL
| 555 | fetch('/cart/add.js', { |
Fetch to external URL
| 578 | fetch('/cart/change.js', { |
Fetch to external URL
| 592 | fetch('/cart/clear.js', { method: 'POST' }) |
Fetch to external URL
| 599 | fetch('/cart/update.js', { |
Fetch to external URL
| 834 | fetch('/cart.js') |
Fetch to external URL
| 835 | fetch('/cart/add.js', { method: 'POST', body: ... }) |
Fetch to external URL
| 836 | fetch('/cart/change.js', { method: 'POST', body: ... }) |
Webhook reference - potential data exfiltration
| 3 | description: Complete API integration guide for Shopify including GraphQL Admin API, REST Admin API, Storefront API, Ajax API, OAuth authentication, rate limiting, and webhooks. Use when making API ca |
Webhook reference - potential data exfiltration
| 8 | Expert guidance for all Shopify APIs including GraphQL Admin API, REST Admin API, Storefront API, Ajax API, authentication, and webhooks. |
Webhook reference - potential data exfiltration
| 19 | - Setting up webhooks for event handling |
Webhook reference - potential data exfiltration
| 614 | ### 7. Webhooks |
Webhook reference - potential data exfiltration
| 618 | **Common Webhooks:** |
Webhook reference - potential data exfiltration
| 648 | **Register Webhook (GraphQL):** |
Webhook reference - potential data exfiltration
| 650 | mutation CreateWebhook($input: WebhookSubscriptionInput!) { |
Webhook reference - potential data exfiltration
| 651 | webhookSubscriptionCreate(input: $input) { |
Webhook reference - potential data exfiltration
| 652 | webhookSubscription { |
Webhook reference - potential data exfiltration
| 657 | ... on WebhookHttpEndpoint { |
Webhook reference - potential data exfiltration
| 675 | "webhookSubscription": { |
Webhook reference - potential data exfiltration
| 676 | "callbackUrl": "https://your-app.com/webhooks/orders", |
Webhook reference - potential data exfiltration
| 683 | **Handle Webhook (Node.js/Express):** |
Webhook reference - potential data exfiltration
| 685 | app.post('/webhooks/orders', async (req, res) => { |
Webhook reference - potential data exfiltration
| 686 | // Verify webhook HMAC |
Webhook reference - potential data exfiltration
| 691 | .createHmac('sha256', SHOPIFY_WEBHOOK_SECRET) |
Webhook reference - potential data exfiltration
| 796 | 3. **Verify webhook HMAC** - Security critical |
Webhook reference - potential data exfiltration
| 803 | 10. **Respond to webhooks quickly** - Within 5 seconds |
Webhook reference - potential data exfiltration
| 809 | - **[references/webhook-payloads.md](references/webhook-payloads.md)** - Webhook payload structures |
External URL reference
| 33 | POST https://{store}.myshopify.com/admin/api/2025-10/graphql.json |
External URL reference
| 132 | `https://${store}.myshopify.com/admin/api/2025-10/graphql.json`, |
External URL reference
| 218 | https://{store}.myshopify.com/admin/api/2025-10/ |
External URL reference
| 236 | `https://${store}.myshopify.com/admin/api/2025-10/products.json?limit=50`, |
External URL reference
| 297 | GET https://{shop}.myshopify.com/admin/oauth/authorize? |
External URL reference
| 345 | POST https://{shop}.myshopify.com/admin/oauth/access_token |
External URL reference
| 363 | `https://${shop}/admin/oauth/access_token`, |
External URL reference
| 434 | POST https://{store}.myshopify.com/api/2025-10/graphql.json |
External URL reference
| 676 | "callbackUrl": "https://your-app.com/webhooks/orders", |
External URL reference
| 822 | POST https://{store}.myshopify.com/admin/api/2025-10/graphql.json |
External URL reference
| 826 | GET https://{store}.myshopify.com/admin/api/2025-10/products.json |
External URL reference
| 830 | POST https://{store}.myshopify.com/api/2025-10/graphql.json |