Create product with options
mutation { productCreate(input: { title: "T-Shirt", options: ["Size", "Color"], variants: [{ options: ["Small", "Red"], price: "25.00", sku: "TSHIRT-S-RED" }] }) { product { id } } }
Bulk create variants
Bulk Operations API. Upload JSONL file → async processing → download result.
Update inventory
inventoryAdjustQuantity or inventorySetOnHandQuantities mutation.
Rate limits
REST: 40 req/sec (Plus 80). GraphQL: cost-based, 1000-point bucket. Bulk ops: no rate limit but slower.
Frequently asked questions
How to create Shopify product + variants via API?
productCreate mutation with options array + variants array.
Bulk create 1000+ variants via API?
Bulk Operations API. Upload JSONL, async processing, download result.
Update variant price via API?
productVariantUpdate mutation with new price.
API rate limit exceeded?
429 error. Retry after Retry-After header value.
Best Node.js library for Shopify Admin API?
@shopify/shopify-api (official). Supports OAuth + GraphQL + REST.
Webhook for variant changes?
Register webhook for products/update. Includes variant changes.
Test Admin API without live store?
Shopify development store (free). Sample data + full API access.
Deprecated APIs to avoid?
REST product endpoints (still work, but GraphQL preferred). Old inventory API replaced.
Related reading
Try it free on Shopify
Print It My Way's permanent Free plan includes live preview, custom options, and Cart Transform pricing.
Install Print It My Way