canonical: https://jentic.com/apis/shopify.com/shopify

# Shopify REST Admin API

Expose full programmatic control over Shopify stores - products, variants, inventory, orders, fulfillments, customers, discounts, themes, and webhooks - through 273 REST endpoints. Supports multi-location inventory management, automated order workflows, and real-time event subscriptions for building custom storefronts, ERP integrations, and marketplace connectors.

## For AI agents

Manage Shopify store operations including products, orders, customers, inventory, and fulfillments. Supports 273 endpoints covering the complete e-commerce lifecycle from catalog to post-purchase.

## Scope

Does not handle payment processing, email marketing, or shipping label generation - use for store administration and catalog management only.

## Capabilities

- Publish and update product listings with variants, images, and metafields across multiple sales channels
- Process orders end-to-end from draft creation through fulfillment and refund calculation
- Adjust inventory levels across multiple warehouse locations in real time
- Search and segment customers by saved searches and tag-based filters
- Configure automated discount rules with price rules and batch-generated codes
- Subscribe to store events via webhooks for real-time order and inventory sync
- Manage theme assets and content pages for headless or hybrid storefronts

## Use cases

### AI Agent Order Processing

AI agents use the Shopify Admin API through Jentic to automate order management workflows. An agent can retrieve new orders, create fulfillments with tracking numbers, process refunds for returned items, and update order notes - all without manual admin panel interaction. The 273-endpoint surface covers the complete order lifecycle from draft creation to post-purchase follow-up.

Example prompt: Retrieve all unfulfilled orders from the last 24 hours and create a fulfillment with tracking number 1Z999AA10123456784 for order #1001

### Product Catalog Synchronization

Synchronize product catalogs between Shopify and external systems such as ERPs, marketplaces, or warehouse management tools. The API provides endpoints to list products with pagination, create new products with variants and images, update pricing and inventory, and retrieve collection memberships. Supports bulk operations through batch endpoints for high-volume catalog updates.

Example prompt: Create a new product titled 'Wireless Headphones' with two variants (Black, White) priced at $79.99 each, and upload a product image from a URL

### Multi-Location Inventory Management

Track and adjust stock levels across multiple physical locations using Shopify's inventory endpoints. Set available quantities per variant per location, connect inventory items to fulfillment services, and receive real-time inventory adjustment confirmations. Supports the connect, set, and adjust operations for precise stock control across warehouses, retail stores, and drop-ship partners.

Example prompt: Set inventory level for variant ID 808950810 to 50 units at location ID 905684977 and verify the adjustment succeeded

### Customer Segmentation and Outreach

Segment customers by purchase history, tags, and custom attributes using Shopify's customer search and saved search endpoints. Retrieve customer addresses, order history, and send account invitations. Build targeted marketing lists or trigger personalized communications based on customer behavior patterns extracted through the API.

Example prompt: Search for customers with the tag 'VIP' who have placed orders in the last 30 days and retrieve their email addresses

### Automated Discount Campaigns

Create and manage promotional campaigns programmatically using price rules and discount codes. Generate percentage or fixed-amount discounts, set usage limits, schedule start and end dates, and batch-create unique codes for distribution. The API supports prerequisite rules for minimum purchase amounts and entitled collections for targeted promotions.

Example prompt: Create a price rule for 20% off orders over $100 and generate a batch of 500 unique discount codes with prefix SUMMER

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /products.json | Create a new product with variants and images |
| GET | /orders.json | List orders with filtering by status, date, and fields |
| POST | /orders/{order_id}/fulfillments.json | Create a fulfillment for an order |
| POST | /inventory_levels/adjust.json | Adjust inventory at a location |
| GET | /customers/search.json | Search customers by query string |
| POST | /webhooks.json | Register a webhook subscription |
| POST | /price_rules.json | Create a discount price rule |
| POST | /draft_orders/{draft_order_id}/complete.json | Complete a draft order into a real order |

## Key resources

- **Products** — Create, list, and update products with variants, images, and metafields
- **Orders** — Retrieve, create, cancel, and close orders with transaction and refund management
- **Customers** — Search, create, and manage customer profiles with addresses and saved searches
- **Inventory** — Adjust, set, and connect inventory levels across multiple locations
- **Fulfillments** — Create fulfillments, update tracking, and manage fulfillment orders
- **Discounts** — Define price rules and generate discount codes with usage limits
- **Webhooks** — Subscribe to store events for real-time notifications

## Why Jentic

- **Setup:** Wiring the Shopify REST Admin API by hand means choosing between an X-Shopify-Access-Token key and the OAuth2 flow, building the {store_name}.myshopify.com host for each store, and handling its call limits yourself. Through Jentic you install once, import the Shopify REST Admin API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Shopify puts the order id in the URL path (/orders/{order_id}/fulfillments.json), so a rule can pin your agent to one order or draft order: it can read and fulfill that order and nothing else. You choose the operations it may call, so writes like creating products or price rules are not included unless you add them.
- **Credential handling:** Your Shopify access token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a product with variants' or 'fulfill an order', and Jentic returns the matching Shopify operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Magento REST API** — Open-source e-commerce platform with self-hosted flexibility vs Shopify's managed SaaS model
- **eBay Catalog API** — Lookup eBay catalog products to cross-list Shopify items on the eBay marketplace
- **Stripe API** — Payment processing for custom checkout flows outside Shopify Payments
- **AfterShip API** — Multi-carrier shipment tracking and delivery notifications

## FAQ

### What authentication does the Shopify REST Admin API use?

The Shopify Admin API supports OAuth 2.0 for public apps and custom app API keys passed via the X-Shopify-Access-Token header. Through Jentic, your OAuth tokens and access credentials are stored encrypted in your Jentic One instance - agents receive scoped tokens without exposure to raw secrets.

### Can I adjust inventory across multiple Shopify locations with this API?

Yes. Use the /inventory_levels/adjust.json endpoint to increment or decrement stock at a specific location. The /inventory_levels/set.json endpoint sets absolute quantities. Both require the inventory_item_id and location_id parameters. The /locations.json endpoint lists all configured warehouse and retail locations.

### What are the rate limits for the Shopify Admin API?

Shopify enforces a leaky bucket rate limit of 40 requests per app per store for REST endpoints, refilling at 2 requests per second. Exceeding the limit returns a 429 Too Many Requests response with a Retry-After header. The API also returns X-Shopify-Shop-Api-Call-Limit headers showing current bucket usage.

### How do I create a product with variants through Jentic?

Search Jentic for 'create a shopify product with variants' to discover the POST /products.json operation. The schema shows you need a product object with title, variants array (each with price, sku, and option values), and optional images. Execute through Jentic and the product appears in the Shopify admin immediately.

### How many endpoints does the Shopify Admin API have?

The Shopify REST Admin API exposes 273 endpoints covering products, orders, customers, inventory, fulfillments, discounts, themes, blogs, pages, metafields, webhooks, and Shopify Payments. This breadth allows agents to handle nearly any store operation without switching to a different API.

### Can I subscribe to real-time order events with webhooks?

Yes. POST to /webhooks.json with a topic (e.g., orders/create, orders/paid, orders/fulfilled) and a callback URL. The API supports over 50 webhook topics. Use GET /webhooks.json to list active subscriptions and DELETE /webhooks/{webhook_id}.json to remove them.

### Is the Shopify Admin API free to use?

Access to the Shopify Admin API is included with any Shopify plan (starting at $39/month). There are no separate API fees. Rate limits scale with your plan tier. Custom apps on development stores have free unlimited API access for testing before going live.

### Can I limit what my agent is allowed to do with the Shopify REST Admin API?

Yes. Because you self-host Jentic One, your own rules decide which Shopify operations and credentials the agent may use, and it can only call what you allow. Since Shopify puts the order id in the URL path (like /orders/{order_id}/fulfillments.json), a rule can pin the agent to a single order or draft order so it reads and fulfills that order and nothing else. You choose the operations it may call, so writes such as creating products with POST /products.json or discount price rules with POST /price_rules.json stay off limits unless you add them.
