{
  "schemaVersion": "1.0",
  "item": {
    "slug": "shopify-admin-api",
    "name": "Shopify Admin API",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/zachgodsell93/shopify-admin-api",
    "canonicalUrl": "https://clawhub.ai/zachgodsell93/shopify-admin-api",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/shopify-admin-api",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shopify-admin-api",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "skill.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/shopify-admin-api"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/shopify-admin-api",
    "agentPageUrl": "https://openagent3.xyz/skills/shopify-admin-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shopify-admin-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shopify-admin-api/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Description",
        "body": "Full read/write access to Shopify Admin REST API for managing orders, products, customers, inventory, fulfillments, refunds, returns, and transactions."
      },
      {
        "title": "Environment Variables",
        "body": "SHOPIFY_STORE_DOMAIN - Your store's myshopify.com domain (e.g., my-store.myshopify.com)\nSHOPIFY_ACCESS_TOKEN - Admin API access token from custom app"
      },
      {
        "title": "Required API Scopes",
        "body": "ScopeAccessread_orders / write_ordersOrders, Fulfillments, Abandoned Checkoutsread_products / write_productsProducts, Variants, Collectionsread_customers / write_customersCustomers, Segmentsread_inventory / write_inventoryInventory Levels, Itemsread_returns / write_returnsReturnsread_all_ordersOrders older than 60 days (requires approval)"
      },
      {
        "title": "Authentication",
        "body": "All requests require this header:\n\nX-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"
      },
      {
        "title": "Getting an Access Token",
        "body": "Go to your Shopify Admin > Settings > Apps and sales channels\nClick \"Develop apps\" > \"Create an app\"\nConfigure Admin API scopes based on what you need\nInstall the app to your store\nCopy the Admin API access token"
      },
      {
        "title": "API Reference",
        "body": "Base URL: https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10"
      },
      {
        "title": "Orders",
        "body": "List Orders\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: ids, limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, processed_at_min, processed_at_max, status (open, closed, cancelled, any), financial_status, fulfillment_status, fields\n\nGet Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Order Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nUpdate Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"order\":{\"id\":{ORDER_ID},\"note\":\"Updated note\",\"tags\":\"priority,vip\"}}'\n\nClose Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/close.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X POST\n\nRe-open Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/open.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X POST\n\nCancel Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/cancel.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"reason\":\"customer\",\"email\":true,\"restock\":true}'\n\nCancel reasons: customer, fraud, inventory, declined, other"
      },
      {
        "title": "Products",
        "body": "List Products\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: ids, limit, since_id, title, vendor, handle, product_type, collection_id, created_at_min, created_at_max, updated_at_min, updated_at_max, published_at_min, published_at_max, published_status (published, unpublished, any), fields, status (active, archived, draft)\n\nGet Product\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Product Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Product\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"product\":{\"title\":\"Burton Custom Freestyle\",\"body_html\":\"<strong>Good snowboard!</strong>\",\"vendor\":\"Burton\",\"product_type\":\"Snowboard\",\"status\":\"draft\",\"variants\":[{\"price\":\"99.99\",\"sku\":\"BOARD-001\"}]}}'\n\nUpdate Product\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"product\":{\"id\":{PRODUCT_ID},\"title\":\"Updated Product Title\",\"status\":\"active\"}}'\n\nDelete Product\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE"
      },
      {
        "title": "Product Variants",
        "body": "List Variants for Product\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Variant\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/variants/{VARIANT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Variant\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"variant\":{\"option1\":\"Blue\",\"price\":\"19.99\",\"sku\":\"BLUE-001\",\"inventory_management\":\"shopify\"}}'\n\nUpdate Variant\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/variants/{VARIANT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"variant\":{\"id\":{VARIANT_ID},\"price\":\"24.99\",\"compare_at_price\":\"29.99\"}}'\n\nDelete Variant\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants/{VARIANT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE"
      },
      {
        "title": "Customers",
        "body": "List Customers\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: ids, limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, fields\n\nSearch Customers\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/search.json?query=email:customer@example.com\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nSearch fields: email, phone, first_name, last_name, company, orders_count, total_spent, country, state\n\nGet Customer\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Customer Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Customer\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"customer\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"email\":\"john.doe@example.com\",\"phone\":\"+15551234567\",\"addresses\":[{\"address1\":\"123 Main St\",\"city\":\"Ottawa\",\"province\":\"ON\",\"country\":\"CA\",\"zip\":\"K1A 0B1\"}]}}'\n\nUpdate Customer\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"customer\":{\"id\":{CUSTOMER_ID},\"tags\":\"vip,wholesale\",\"note\":\"Important customer\"}}'\n\nDelete Customer\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nGet Customer Orders\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}/orders.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Inventory",
        "body": "List Inventory Levels\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels.json?inventory_item_ids={ITEM_ID}\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: inventory_item_ids (required), location_ids, limit, updated_at_min\n\nAdjust Inventory Level\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/adjust.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"location_id\":{LOCATION_ID},\"inventory_item_id\":{ITEM_ID},\"available_adjustment\":5}'\n\nSet Inventory Level\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/set.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"location_id\":{LOCATION_ID},\"inventory_item_id\":{ITEM_ID},\"available\":100}'\n\nConnect Inventory to Location\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/connect.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"location_id\":{LOCATION_ID},\"inventory_item_id\":{ITEM_ID}}'"
      },
      {
        "title": "Inventory Items",
        "body": "List Inventory Items\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items.json?ids={ITEM_IDS}\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Inventory Item\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items/{ITEM_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nUpdate Inventory Item\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items/{ITEM_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"inventory_item\":{\"id\":{ITEM_ID},\"cost\":\"25.00\",\"tracked\":true}}'"
      },
      {
        "title": "Locations",
        "body": "List Locations\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Location\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/{LOCATION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Location Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Inventory Levels for Location\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/{LOCATION_ID}/inventory_levels.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Fulfillments",
        "body": "List Fulfillments for Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Fulfillment\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments/{FULFILLMENT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Fulfillment Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Fulfillment\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"fulfillment\":{\"line_items_by_fulfillment_order\":[{\"fulfillment_order_id\":{FULFILLMENT_ORDER_ID}}],\"tracking_info\":{\"number\":\"1Z999AA10123456784\",\"url\":\"https://www.ups.com/track?tracknum=1Z999AA10123456784\",\"company\":\"UPS\"}}}'\n\nUpdate Tracking\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments/{FULFILLMENT_ID}/update_tracking.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"fulfillment\":{\"tracking_info\":{\"number\":\"1Z999AA10123456784\",\"url\":\"https://www.ups.com/track?tracknum=1Z999AA10123456784\",\"company\":\"UPS\"},\"notify_customer\":true}}'\n\nCancel Fulfillment\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments/{FULFILLMENT_ID}/cancel.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X POST"
      },
      {
        "title": "Fulfillment Orders",
        "body": "List Fulfillment Orders for Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillment_orders.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Fulfillment Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillment_orders/{FULFILLMENT_ORDER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Refunds",
        "body": "List Refunds for Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Refund\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds/{REFUND_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCalculate Refund\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds/calculate.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"refund\":{\"shipping\":{\"full_refund\":true},\"refund_line_items\":[{\"line_item_id\":{LINE_ITEM_ID},\"quantity\":1,\"restock_type\":\"return\"}]}}'\n\nRestock types: no_restock, cancel, return, legacy_restock\n\nCreate Refund\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"refund\":{\"currency\":\"USD\",\"notify\":true,\"note\":\"Customer returned item\",\"shipping\":{\"full_refund\":true},\"refund_line_items\":[{\"line_item_id\":{LINE_ITEM_ID},\"quantity\":1,\"restock_type\":\"return\"}],\"transactions\":[{\"parent_id\":{TRANSACTION_ID},\"amount\":\"10.00\",\"kind\":\"refund\",\"gateway\":\"shopify_payments\"}]}}'"
      },
      {
        "title": "Returns",
        "body": "List Returns\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: limit, status (open, closed, cancelled, requested, in_progress)\n\nGet Return\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns/{RETURN_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Return\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"return\":{\"order_id\":{ORDER_ID},\"return_line_items\":[{\"fulfillment_line_item_id\":{FULFILLMENT_LINE_ITEM_ID},\"quantity\":1,\"return_reason\":\"WRONG_ITEM\"}]}}'\n\nReturn reasons: UNKNOWN, SIZE_TOO_SMALL, SIZE_TOO_LARGE, UNWANTED, NOT_AS_DESCRIBED, WRONG_ITEM, DEFECTIVE, STYLE, COLOR, OTHER"
      },
      {
        "title": "Transactions",
        "body": "List Transactions for Order\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Transaction\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions/{TRANSACTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Transaction Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Transaction (Capture)\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"transaction\":{\"kind\":\"capture\",\"amount\":\"10.00\",\"parent_id\":{AUTHORIZATION_ID}}}'\n\nTransaction kinds: authorization, capture, sale, void, refund"
      },
      {
        "title": "Collections",
        "body": "List Custom Collections\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Custom Collection\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Custom Collection\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"custom_collection\":{\"title\":\"Summer Collection\",\"body_html\":\"<p>Summer products</p>\"}}'\n\nUpdate Custom Collection\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"custom_collection\":{\"id\":{COLLECTION_ID},\"title\":\"Updated Collection\"}}'\n\nDelete Custom Collection\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nList Smart Collections\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Smart Collection\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Smart Collection\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"smart_collection\":{\"title\":\"Sale Items\",\"rules\":[{\"column\":\"compare_at_price\",\"relation\":\"greater_than\",\"condition\":\"0\"}]}}'\n\nRule columns: title, type, vendor, variant_price, tag, compare_at_price, weight, inventory_stock, variant_compare_at_price, variant_weight, variant_inventory, variant_title\n\nRule relations: equals, not_equals, greater_than, less_than, starts_with, ends_with, contains, not_contains"
      },
      {
        "title": "Collects (Product-Collection Links)",
        "body": "List Collects\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: product_id, collection_id, limit, since_id, fields\n\nCreate Collect\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"collect\":{\"product_id\":{PRODUCT_ID},\"collection_id\":{COLLECTION_ID}}}'\n\nDelete Collect\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects/{COLLECT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE"
      },
      {
        "title": "Abandoned Checkouts",
        "body": "List Abandoned Checkouts\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/checkouts.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nQuery parameters: limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, status (open, closed)\n\nGet Abandoned Checkout Count\n\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/checkouts/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Order Status",
        "body": "FieldValuesfinancial_statuspending, authorized, partially_paid, paid, partially_refunded, refunded, voidedfulfillment_statusnull (unfulfilled), partial, fulfilled, restocked"
      },
      {
        "title": "Product Status",
        "body": "StatusDescriptionactiveAvailable for salearchivedNo longer available, hidden from admin listsdraftNot ready for sale"
      },
      {
        "title": "Return Status",
        "body": "StatusDescriptionrequestedReturn requested by customerin_progressReturn being processedopenReturn accepted, awaiting itemsclosedReturn completedcancelledReturn cancelled"
      },
      {
        "title": "Pagination",
        "body": "Shopify uses cursor-based pagination via the Link header."
      },
      {
        "title": "Using Page Info",
        "body": "# First request\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -i\n\nResponse includes Link header:\n\nLink: <https://store.myshopify.com/admin/api/2024-10/products.json?page_info=abc123&limit=50>; rel=\"next\"\n\n# Next page\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json?page_info=abc123&limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nNote: When using page_info, you cannot use other query parameters except limit and fields."
      },
      {
        "title": "Rate Limiting",
        "body": "Shopify uses a leaky bucket algorithm:\n\nBucket size: 40 requests\nLeak rate: 2 requests/second\nRestoration: ~20 seconds for full bucket\n\nResponse headers:\n\nX-Shopify-Shop-Api-Call-Limit: Current usage (e.g., 32/40)\nRetry-After: Seconds to wait (on 429 response)"
      },
      {
        "title": "Best Practices",
        "body": "Check X-Shopify-Shop-Api-Call-Limit header\nIf near limit, add delays between requests\nOn 429 response, wait for Retry-After seconds\nUse bulk operations for large data sets"
      },
      {
        "title": "List Webhooks",
        "body": "curl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Create Webhook",
        "body": "curl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"webhook\":{\"topic\":\"orders/create\",\"address\":\"https://example.com/webhooks/orders\",\"format\":\"json\"}}'\n\nCommon topics: orders/create, orders/updated, orders/fulfilled, orders/cancelled, products/create, products/update, products/delete, customers/create, customers/update, inventory_levels/update, refunds/create"
      },
      {
        "title": "Delete Webhook",
        "body": "curl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks/{WEBHOOK_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE"
      },
      {
        "title": "v1.0.0",
        "body": "Initial release with full Admin REST API coverage\nOrders, Products, Variants, Customers\nInventory management (levels, items, locations)\nFulfillments and fulfillment orders\nRefunds, Returns, Transactions\nCollections (custom, smart) and collects\nAbandoned checkouts\nWebhooks management\nStatus reference tables\nPagination and rate limiting documentation"
      }
    ],
    "body": "Shopify Admin API\nDescription\n\nFull read/write access to Shopify Admin REST API for managing orders, products, customers, inventory, fulfillments, refunds, returns, and transactions.\n\nSetup\nEnvironment Variables\nSHOPIFY_STORE_DOMAIN - Your store's myshopify.com domain (e.g., my-store.myshopify.com)\nSHOPIFY_ACCESS_TOKEN - Admin API access token from custom app\nRequired API Scopes\nScope\tAccess\nread_orders / write_orders\tOrders, Fulfillments, Abandoned Checkouts\nread_products / write_products\tProducts, Variants, Collections\nread_customers / write_customers\tCustomers, Segments\nread_inventory / write_inventory\tInventory Levels, Items\nread_returns / write_returns\tReturns\nread_all_orders\tOrders older than 60 days (requires approval)\nAuthentication\n\nAll requests require this header:\n\nX-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\n\nGetting an Access Token\nGo to your Shopify Admin > Settings > Apps and sales channels\nClick \"Develop apps\" > \"Create an app\"\nConfigure Admin API scopes based on what you need\nInstall the app to your store\nCopy the Admin API access token\nAPI Reference\n\nBase URL: https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10\n\nOrders\nList Orders\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: ids, limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, processed_at_min, processed_at_max, status (open, closed, cancelled, any), financial_status, fulfillment_status, fields\n\nGet Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Order Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nUpdate Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"order\":{\"id\":{ORDER_ID},\"note\":\"Updated note\",\"tags\":\"priority,vip\"}}'\n\nClose Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/close.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X POST\n\nRe-open Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/open.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X POST\n\nCancel Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/cancel.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"reason\":\"customer\",\"email\":true,\"restock\":true}'\n\n\nCancel reasons: customer, fraud, inventory, declined, other\n\nProducts\nList Products\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: ids, limit, since_id, title, vendor, handle, product_type, collection_id, created_at_min, created_at_max, updated_at_min, updated_at_max, published_at_min, published_at_max, published_status (published, unpublished, any), fields, status (active, archived, draft)\n\nGet Product\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Product Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Product\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"product\":{\"title\":\"Burton Custom Freestyle\",\"body_html\":\"<strong>Good snowboard!</strong>\",\"vendor\":\"Burton\",\"product_type\":\"Snowboard\",\"status\":\"draft\",\"variants\":[{\"price\":\"99.99\",\"sku\":\"BOARD-001\"}]}}'\n\nUpdate Product\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"product\":{\"id\":{PRODUCT_ID},\"title\":\"Updated Product Title\",\"status\":\"active\"}}'\n\nDelete Product\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nProduct Variants\nList Variants for Product\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Variant\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/variants/{VARIANT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Variant\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"variant\":{\"option1\":\"Blue\",\"price\":\"19.99\",\"sku\":\"BLUE-001\",\"inventory_management\":\"shopify\"}}'\n\nUpdate Variant\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/variants/{VARIANT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"variant\":{\"id\":{VARIANT_ID},\"price\":\"24.99\",\"compare_at_price\":\"29.99\"}}'\n\nDelete Variant\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants/{VARIANT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nCustomers\nList Customers\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: ids, limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, fields\n\nSearch Customers\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/search.json?query=email:customer@example.com\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nSearch fields: email, phone, first_name, last_name, company, orders_count, total_spent, country, state\n\nGet Customer\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Customer Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Customer\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"customer\":{\"first_name\":\"John\",\"last_name\":\"Doe\",\"email\":\"john.doe@example.com\",\"phone\":\"+15551234567\",\"addresses\":[{\"address1\":\"123 Main St\",\"city\":\"Ottawa\",\"province\":\"ON\",\"country\":\"CA\",\"zip\":\"K1A 0B1\"}]}}'\n\nUpdate Customer\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"customer\":{\"id\":{CUSTOMER_ID},\"tags\":\"vip,wholesale\",\"note\":\"Important customer\"}}'\n\nDelete Customer\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nGet Customer Orders\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}/orders.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nInventory\nList Inventory Levels\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels.json?inventory_item_ids={ITEM_ID}\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: inventory_item_ids (required), location_ids, limit, updated_at_min\n\nAdjust Inventory Level\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/adjust.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"location_id\":{LOCATION_ID},\"inventory_item_id\":{ITEM_ID},\"available_adjustment\":5}'\n\nSet Inventory Level\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/set.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"location_id\":{LOCATION_ID},\"inventory_item_id\":{ITEM_ID},\"available\":100}'\n\nConnect Inventory to Location\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/connect.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"location_id\":{LOCATION_ID},\"inventory_item_id\":{ITEM_ID}}'\n\nInventory Items\nList Inventory Items\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items.json?ids={ITEM_IDS}\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Inventory Item\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items/{ITEM_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nUpdate Inventory Item\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items/{ITEM_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"inventory_item\":{\"id\":{ITEM_ID},\"cost\":\"25.00\",\"tracked\":true}}'\n\nLocations\nList Locations\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Location\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/{LOCATION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Location Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Inventory Levels for Location\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/{LOCATION_ID}/inventory_levels.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nFulfillments\nList Fulfillments for Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Fulfillment\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments/{FULFILLMENT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Fulfillment Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Fulfillment\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"fulfillment\":{\"line_items_by_fulfillment_order\":[{\"fulfillment_order_id\":{FULFILLMENT_ORDER_ID}}],\"tracking_info\":{\"number\":\"1Z999AA10123456784\",\"url\":\"https://www.ups.com/track?tracknum=1Z999AA10123456784\",\"company\":\"UPS\"}}}'\n\nUpdate Tracking\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments/{FULFILLMENT_ID}/update_tracking.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"fulfillment\":{\"tracking_info\":{\"number\":\"1Z999AA10123456784\",\"url\":\"https://www.ups.com/track?tracknum=1Z999AA10123456784\",\"company\":\"UPS\"},\"notify_customer\":true}}'\n\nCancel Fulfillment\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments/{FULFILLMENT_ID}/cancel.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X POST\n\nFulfillment Orders\nList Fulfillment Orders for Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillment_orders.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Fulfillment Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillment_orders/{FULFILLMENT_ORDER_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nRefunds\nList Refunds for Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Refund\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds/{REFUND_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCalculate Refund\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds/calculate.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"refund\":{\"shipping\":{\"full_refund\":true},\"refund_line_items\":[{\"line_item_id\":{LINE_ITEM_ID},\"quantity\":1,\"restock_type\":\"return\"}]}}'\n\n\nRestock types: no_restock, cancel, return, legacy_restock\n\nCreate Refund\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"refund\":{\"currency\":\"USD\",\"notify\":true,\"note\":\"Customer returned item\",\"shipping\":{\"full_refund\":true},\"refund_line_items\":[{\"line_item_id\":{LINE_ITEM_ID},\"quantity\":1,\"restock_type\":\"return\"}],\"transactions\":[{\"parent_id\":{TRANSACTION_ID},\"amount\":\"10.00\",\"kind\":\"refund\",\"gateway\":\"shopify_payments\"}]}}'\n\nReturns\nList Returns\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: limit, status (open, closed, cancelled, requested, in_progress)\n\nGet Return\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns/{RETURN_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Return\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"return\":{\"order_id\":{ORDER_ID},\"return_line_items\":[{\"fulfillment_line_item_id\":{FULFILLMENT_LINE_ITEM_ID},\"quantity\":1,\"return_reason\":\"WRONG_ITEM\"}]}}'\n\n\nReturn reasons: UNKNOWN, SIZE_TOO_SMALL, SIZE_TOO_LARGE, UNWANTED, NOT_AS_DESCRIBED, WRONG_ITEM, DEFECTIVE, STYLE, COLOR, OTHER\n\nTransactions\nList Transactions for Order\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Transaction\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions/{TRANSACTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Transaction Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Transaction (Capture)\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"transaction\":{\"kind\":\"capture\",\"amount\":\"10.00\",\"parent_id\":{AUTHORIZATION_ID}}}'\n\n\nTransaction kinds: authorization, capture, sale, void, refund\n\nCollections\nList Custom Collections\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Custom Collection\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Custom Collection\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"custom_collection\":{\"title\":\"Summer Collection\",\"body_html\":\"<p>Summer products</p>\"}}'\n\nUpdate Custom Collection\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X PUT \\\n  -d '{\"custom_collection\":{\"id\":{COLLECTION_ID},\"title\":\"Updated Collection\"}}'\n\nDelete Custom Collection\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nList Smart Collections\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet Smart Collection\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections/{COLLECTION_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Smart Collection\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"smart_collection\":{\"title\":\"Sale Items\",\"rules\":[{\"column\":\"compare_at_price\",\"relation\":\"greater_than\",\"condition\":\"0\"}]}}'\n\n\nRule columns: title, type, vendor, variant_price, tag, compare_at_price, weight, inventory_stock, variant_compare_at_price, variant_weight, variant_inventory, variant_title\n\nRule relations: equals, not_equals, greater_than, less_than, starts_with, ends_with, contains, not_contains\n\nCollects (Product-Collection Links)\nList Collects\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: product_id, collection_id, limit, since_id, fields\n\nCreate Collect\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"collect\":{\"product_id\":{PRODUCT_ID},\"collection_id\":{COLLECTION_ID}}}'\n\nDelete Collect\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects/{COLLECT_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nAbandoned Checkouts\nList Abandoned Checkouts\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/checkouts.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nQuery parameters: limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, status (open, closed)\n\nGet Abandoned Checkout Count\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/checkouts/count.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nStatus Reference\nOrder Status\nField\tValues\nfinancial_status\tpending, authorized, partially_paid, paid, partially_refunded, refunded, voided\nfulfillment_status\tnull (unfulfilled), partial, fulfilled, restocked\nProduct Status\nStatus\tDescription\nactive\tAvailable for sale\narchived\tNo longer available, hidden from admin lists\ndraft\tNot ready for sale\nReturn Status\nStatus\tDescription\nrequested\tReturn requested by customer\nin_progress\tReturn being processed\nopen\tReturn accepted, awaiting items\nclosed\tReturn completed\ncancelled\tReturn cancelled\nPagination\n\nShopify uses cursor-based pagination via the Link header.\n\nUsing Page Info\n# First request\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -i\n\n\nResponse includes Link header:\n\nLink: <https://store.myshopify.com/admin/api/2024-10/products.json?page_info=abc123&limit=50>; rel=\"next\"\n\n# Next page\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json?page_info=abc123&limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nNote: When using page_info, you cannot use other query parameters except limit and fields.\n\nRate Limiting\n\nShopify uses a leaky bucket algorithm:\n\nBucket size: 40 requests\nLeak rate: 2 requests/second\nRestoration: ~20 seconds for full bucket\n\nResponse headers:\n\nX-Shopify-Shop-Api-Call-Limit: Current usage (e.g., 32/40)\nRetry-After: Seconds to wait (on 429 response)\nBest Practices\nCheck X-Shopify-Shop-Api-Call-Limit header\nIf near limit, add delays between requests\nOn 429 response, wait for Retry-After seconds\nUse bulk operations for large data sets\nWebhooks\nList Webhooks\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate Webhook\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -X POST \\\n  -d '{\"webhook\":{\"topic\":\"orders/create\",\"address\":\"https://example.com/webhooks/orders\",\"format\":\"json\"}}'\n\n\nCommon topics: orders/create, orders/updated, orders/fulfilled, orders/cancelled, products/create, products/update, products/delete, customers/create, customers/update, inventory_levels/update, refunds/create\n\nDelete Webhook\ncurl \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks/{WEBHOOK_ID}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -X DELETE\n\nChangelog\nv1.0.0\nInitial release with full Admin REST API coverage\nOrders, Products, Variants, Customers\nInventory management (levels, items, locations)\nFulfillments and fulfillment orders\nRefunds, Returns, Transactions\nCollections (custom, smart) and collects\nAbandoned checkouts\nWebhooks management\nStatus reference tables\nPagination and rate limiting documentation"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/zachgodsell93/shopify-admin-api",
    "publisherUrl": "https://clawhub.ai/zachgodsell93/shopify-admin-api",
    "owner": "zachgodsell93",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/shopify-admin-api",
    "downloadUrl": "https://openagent3.xyz/downloads/shopify-admin-api",
    "agentUrl": "https://openagent3.xyz/skills/shopify-admin-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shopify-admin-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shopify-admin-api/agent.md"
  }
}