Shopify API

Shopify's API: What the Admin API, Storefront API, and Webhooks Actually Cover

Shopify's Admin API (REST and GraphQL) manages orders, products, customers, and inventory from outside the admin dashboard. The Storefront API powers custom, headless storefronts. Webhooks push real-time event notifications, an order was created, inventory changed, to any endpoint you control. Together they're the foundation almost every Shopify integration gets built on.

What each piece is actually for

The Admin API is the one most integrations live on. It reads and writes orders, products, customers, inventory levels, fulfillments, and metafields, the same data you'd see and edit inside the Shopify admin. Shopify offers it as both REST and GraphQL, but it's been clear for a while that GraphQL is where new capability lands first. The REST Admin API hasn't gained new functionality in recent versions and mostly exists for stores already built on it.

The Storefront API is a different tool for a different job. It's GraphQL-only, built for reading product and collection data and managing a cart from a custom front end that isn't Shopify's own theme engine. Headless storefronts, custom mobile apps, and kiosk builds generally run on this one, not the Admin API.

Webhooks are how Shopify tells the outside world something happened, without anyone polling for it. Subscribe to a topic like `orders/create`, `inventory_levels/update`, or `app/uninstalled`, and Shopify sends a POST request to an endpoint you register the moment it occurs. High-volume stores can also have webhooks delivered through Google Pub/Sub or Amazon EventBridge instead of a plain HTTPS endpoint.

Where the documentation stops helping

Reading the docs tells you what each endpoint and webhook topic does. It doesn't tell you how to design a sync that survives a rate limit, handles a webhook that arrives twice, or reconciles what happens when your system and Shopify's disagree about an order's state. GraphQL's cost-based throttling catches a lot of DIY integrations off guard: it isn't a simple requests-per-minute cap, it's a budget based on how expensive each query actually is, and a sync that worked fine in testing can start failing once real order volume hits it.

There's also a smaller, less-documented category of Shopify setup with no API at all: certain admin-only settings, a handful of legacy reports, and the configuration screens inside some third-party apps simply don't expose an endpoint. When a workflow depends on one of those, the API story runs out, and the only way to automate it is driving the admin interface itself.

What We Build on Shopify's API

Two-way order sync that doesn't drift

A sync that writes orders out to an ERP or accounting system and listens for updates coming back, built to handle retries and duplicate webhook deliveries without creating the same order twice.

Filling the gaps the API leaves open

When a setting or report only exists inside the admin UI, or inside a third-party app's own dashboard with no API of its own, we automate the browser instead of waiting for Shopify or the app vendor to expose an endpoint.

Got a Shopify workflow that depends on a setting with no API?

Tell us what it is and where it lives, inside Shopify or inside a third-party app. We'll scope whether it's an API job, a browser-automation job, or both, and build whichever one actually gets it done.

Let's talk

Building something on top of Shopify's API and hitting limits the docs didn't warn you about?

Describe what you're syncing and where it's breaking, rate limits, webhook reliability, data the API just doesn't expose. Shopify is one platform among many we build on top of; whatever system your business runs on, if a workflow around it is still manual, that's what we fix.

Let's talk

Frequently Asked Questions

What's the difference between Shopify's Admin API and Storefront API?+
The Admin API manages your store's backend data, orders, products, customers, inventory, from outside the Shopify admin. The Storefront API is for building a custom front end, a headless storefront, mobile app, or kiosk, that reads product data and manages a cart without using Shopify's own theme engine. Most backend integrations use the Admin API; most headless commerce builds use the Storefront API, sometimes both at once.
Is Shopify's REST API going away?+
Shopify hasn't shut it off, but it has stopped adding new capability to the REST Admin API and points new development toward the GraphQL Admin API instead. If you're starting a new integration today, building it on GraphQL avoids inheriting a path Shopify has already set aside.
What is a Shopify webhook, and how do I use one?+
A webhook is Shopify notifying an endpoint you control the moment something happens in your store, like an order being created or inventory changing, instead of your system having to repeatedly check for it. You register a URL for a specific topic, orders/create, products/update, and dozens of others, in your app or admin settings, and Shopify sends the event data there as it happens.
Can I get Shopify data that isn't in the Admin API?+
Sometimes, no, not directly. A handful of admin settings, legacy reports, and third-party app configuration screens were never built with an API in mind. When that's the case, the practical option is automating the admin interface itself rather than waiting for an endpoint that may never arrive.

Let's talk

Tell us the one thing your team does manually that eats up time. We read every message and reply within a day.