# Send Shopify Admin API to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "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": {
    "downloadUrl": "/downloads/shopify-admin-api",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shopify-admin-api",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "skill.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "shopify-admin-api",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-08T19:13:33.062Z",
      "expiresAt": "2026-05-15T19:13:33.062Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shopify-admin-api",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shopify-admin-api",
        "contentDisposition": "attachment; filename=\"shopify-admin-api-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "shopify-admin-api"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "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."
      ]
    }
  },
  "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"
  }
}
```
## Documentation

### Description

Full read/write access to Shopify Admin REST API for managing orders, products, customers, inventory, fulfillments, refunds, returns, and transactions.

### Environment Variables

SHOPIFY_STORE_DOMAIN - Your store's myshopify.com domain (e.g., my-store.myshopify.com)
SHOPIFY_ACCESS_TOKEN - Admin API access token from custom app

### Required API Scopes

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)

### Authentication

All requests require this header:

X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN

### Getting an Access Token

Go to your Shopify Admin > Settings > Apps and sales channels
Click "Develop apps" > "Create an app"
Configure Admin API scopes based on what you need
Install the app to your store
Copy the Admin API access token

### API Reference

Base URL: https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10

### Orders

List Orders

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query 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

Get Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Order Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Update Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X PUT \\
  -d '{"order":{"id":{ORDER_ID},"note":"Updated note","tags":"priority,vip"}}'

Close Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/close.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X POST

Re-open Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/open.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X POST

Cancel Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/cancel.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"reason":"customer","email":true,"restock":true}'

Cancel reasons: customer, fraud, inventory, declined, other

### Products

List Products

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query 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)

Get Product

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Product Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Product

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -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"}]}}'

Update Product

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X PUT \\
  -d '{"product":{"id":{PRODUCT_ID},"title":"Updated Product Title","status":"active"}}'

Delete Product

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X DELETE

### Product Variants

List Variants for Product

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Variant

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/variants/{VARIANT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Variant

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"variant":{"option1":"Blue","price":"19.99","sku":"BLUE-001","inventory_management":"shopify"}}'

Update Variant

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/variants/{VARIANT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X PUT \\
  -d '{"variant":{"id":{VARIANT_ID},"price":"24.99","compare_at_price":"29.99"}}'

Delete Variant

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products/{PRODUCT_ID}/variants/{VARIANT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X DELETE

### Customers

List Customers

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query parameters: ids, limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, fields

Search Customers

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/search.json?query=email:customer@example.com" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Search fields: email, phone, first_name, last_name, company, orders_count, total_spent, country, state

Get Customer

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Customer Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Customer

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -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"}]}}'

Update Customer

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X PUT \\
  -d '{"customer":{"id":{CUSTOMER_ID},"tags":"vip,wholesale","note":"Important customer"}}'

Delete Customer

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X DELETE

Get Customer Orders

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/customers/{CUSTOMER_ID}/orders.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

### Inventory

List Inventory Levels

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels.json?inventory_item_ids={ITEM_ID}" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query parameters: inventory_item_ids (required), location_ids, limit, updated_at_min

Adjust Inventory Level

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/adjust.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"location_id":{LOCATION_ID},"inventory_item_id":{ITEM_ID},"available_adjustment":5}'

Set Inventory Level

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/set.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"location_id":{LOCATION_ID},"inventory_item_id":{ITEM_ID},"available":100}'

Connect Inventory to Location

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_levels/connect.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"location_id":{LOCATION_ID},"inventory_item_id":{ITEM_ID}}'

### Inventory Items

List Inventory Items

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items.json?ids={ITEM_IDS}" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Inventory Item

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items/{ITEM_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Update Inventory Item

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/inventory_items/{ITEM_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X PUT \\
  -d '{"inventory_item":{"id":{ITEM_ID},"cost":"25.00","tracked":true}}'

### Locations

List Locations

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Location

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/{LOCATION_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Location Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Inventory Levels for Location

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/locations/{LOCATION_ID}/inventory_levels.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

### Fulfillments

List Fulfillments for Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Fulfillment

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments/{FULFILLMENT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Fulfillment Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillments/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Fulfillment

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -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"}}}'

Update Tracking

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments/{FULFILLMENT_ID}/update_tracking.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"fulfillment":{"tracking_info":{"number":"1Z999AA10123456784","url":"https://www.ups.com/track?tracknum=1Z999AA10123456784","company":"UPS"},"notify_customer":true}}'

Cancel Fulfillment

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillments/{FULFILLMENT_ID}/cancel.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X POST

### Fulfillment Orders

List Fulfillment Orders for Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/fulfillment_orders.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Fulfillment Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/fulfillment_orders/{FULFILLMENT_ORDER_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

### Refunds

List Refunds for Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Refund

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds/{REFUND_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Calculate Refund

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds/calculate.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"refund":{"shipping":{"full_refund":true},"refund_line_items":[{"line_item_id":{LINE_ITEM_ID},"quantity":1,"restock_type":"return"}]}}'

Restock types: no_restock, cancel, return, legacy_restock

Create Refund

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/refunds.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -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"}]}}'

### Returns

List Returns

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query parameters: limit, status (open, closed, cancelled, requested, in_progress)

Get Return

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns/{RETURN_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Return

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/returns.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"return":{"order_id":{ORDER_ID},"return_line_items":[{"fulfillment_line_item_id":{FULFILLMENT_LINE_ITEM_ID},"quantity":1,"return_reason":"WRONG_ITEM"}]}}'

Return reasons: UNKNOWN, SIZE_TOO_SMALL, SIZE_TOO_LARGE, UNWANTED, NOT_AS_DESCRIBED, WRONG_ITEM, DEFECTIVE, STYLE, COLOR, OTHER

### Transactions

List Transactions for Order

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Transaction

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions/{TRANSACTION_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Transaction Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Transaction (Capture)

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/orders/{ORDER_ID}/transactions.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"transaction":{"kind":"capture","amount":"10.00","parent_id":{AUTHORIZATION_ID}}}'

Transaction kinds: authorization, capture, sale, void, refund

### Collections

List Custom Collections

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Custom Collection

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Custom Collection

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"custom_collection":{"title":"Summer Collection","body_html":"<p>Summer products</p>"}}'

Update Custom Collection

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X PUT \\
  -d '{"custom_collection":{"id":{COLLECTION_ID},"title":"Updated Collection"}}'

Delete Custom Collection

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/custom_collections/{COLLECTION_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X DELETE

List Smart Collections

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Get Smart Collection

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections/{COLLECTION_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Create Smart Collection

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/smart_collections.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"smart_collection":{"title":"Sale Items","rules":[{"column":"compare_at_price","relation":"greater_than","condition":"0"}]}}'

Rule columns: title, type, vendor, variant_price, tag, compare_at_price, weight, inventory_stock, variant_compare_at_price, variant_weight, variant_inventory, variant_title

Rule relations: equals, not_equals, greater_than, less_than, starts_with, ends_with, contains, not_contains

### Collects (Product-Collection Links)

List Collects

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query parameters: product_id, collection_id, limit, since_id, fields

Create Collect

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"collect":{"product_id":{PRODUCT_ID},"collection_id":{COLLECTION_ID}}}'

Delete Collect

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/collects/{COLLECT_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X DELETE

### Abandoned Checkouts

List Abandoned Checkouts

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/checkouts.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Query parameters: limit, since_id, created_at_min, created_at_max, updated_at_min, updated_at_max, status (open, closed)

Get Abandoned Checkout Count

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/checkouts/count.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

### Order Status

FieldValuesfinancial_statuspending, authorized, partially_paid, paid, partially_refunded, refunded, voidedfulfillment_statusnull (unfulfilled), partial, fulfilled, restocked

### Product Status

StatusDescriptionactiveAvailable for salearchivedNo longer available, hidden from admin listsdraftNot ready for sale

### Return Status

StatusDescriptionrequestedReturn requested by customerin_progressReturn being processedopenReturn accepted, awaiting itemsclosedReturn completedcancelledReturn cancelled

### Pagination

Shopify uses cursor-based pagination via the Link header.

### Using Page Info

# First request
curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json?limit=50" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -i

Response includes Link header:

Link: <https://store.myshopify.com/admin/api/2024-10/products.json?page_info=abc123&limit=50>; rel="next"

# Next page
curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/products.json?page_info=abc123&limit=50" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

Note: When using page_info, you cannot use other query parameters except limit and fields.

### Rate Limiting

Shopify uses a leaky bucket algorithm:

Bucket size: 40 requests
Leak rate: 2 requests/second
Restoration: ~20 seconds for full bucket

Response headers:

X-Shopify-Shop-Api-Call-Limit: Current usage (e.g., 32/40)
Retry-After: Seconds to wait (on 429 response)

### Best Practices

Check X-Shopify-Shop-Api-Call-Limit header
If near limit, add delays between requests
On 429 response, wait for Retry-After seconds
Use bulk operations for large data sets

### List Webhooks

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"

### Create Webhook

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -X POST \\
  -d '{"webhook":{"topic":"orders/create","address":"https://example.com/webhooks/orders","format":"json"}}'

Common topics: orders/create, orders/updated, orders/fulfilled, orders/cancelled, products/create, products/update, products/delete, customers/create, customers/update, inventory_levels/update, refunds/create

### Delete Webhook

curl "https://$SHOPIFY_STORE_DOMAIN/admin/api/2024-10/webhooks/{WEBHOOK_ID}.json" \\
  -H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN" \\
  -X DELETE

### v1.0.0

Initial release with full Admin REST API coverage
Orders, Products, Variants, Customers
Inventory management (levels, items, locations)
Fulfillments and fulfillment orders
Refunds, Returns, Transactions
Collections (custom, smart) and collects
Abandoned checkouts
Webhooks management
Status reference tables
Pagination and rate limiting documentation
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: zachgodsell93
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-08T19:13:33.062Z
- Expires at: 2026-05-15T19:13:33.062Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/shopify-admin-api)
- [Send to Agent page](https://openagent3.xyz/skills/shopify-admin-api/agent)
- [JSON manifest](https://openagent3.xyz/skills/shopify-admin-api/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/shopify-admin-api/agent.md)
- [Download page](https://openagent3.xyz/downloads/shopify-admin-api)