Reference

Shopify Platform Limits Guide

Every ceiling Shopify enforces that can matter for a large product catalog, customer list, or migration project - variants, images, custom data, bulk imports, and API throughput. Sourced from Shopify's own documentation, not guesswork.

Verified against Shopify's official documentation - September 2026.

Why platform limits matter for a migration

Square and Shopify model a catalog differently, and a handful of Shopify's hard limits are exactly where that shows up during a migration - a Square item with unusually many variations, a product with dozens of photos, or a catalog in the tens of thousands can all bump into a ceiling you didn't know existed. This page collects the numbers that actually matter at scale, sourced directly from Shopify's own developer and merchant documentation, so you can plan around them before you migrate rather than after.

Variants & options per product

Shopify significantly raised its variant ceiling in late 2025 - but the option-count limit didn't move.

2,048
Max variants per product
Raised from 100 on October 15, 2025 - available on every plan, including Basic.
3
Max options per product
Not raised alongside the variant increase - still applies whether you're using two options or several.
Square doesn't cap item variations the way Shopify's old 100-variant limit did, so a heavily-variated Square item was one of the few places that ceiling actually mattered. With Shopify's limit now at 2,048, most catalogs migrate cleanly - the 3-option cap is the one worth checking instead, since it applies no matter how many variants you have. unSquared handles it with the "Combine extra options" setting in Product Settings.
Store-wide throttle: once a store already has a very large number of variants, Shopify limits how many new variants it can create per day. Shopify doesn't publish the exact numbers - import tools have reported both 50,000 variants (then 1,000 a day) and 500,000 variants (then 10,000 a day). Shopify Plus stores aren't subject to this cap, and updating existing products never counts toward it.

Images, videos & 3D models per product

Media wasn't part of the 2025 variant increase, and still has its own, separate ceiling.

250
Max media items per product
Images, videos, and 3D models combined - this did not increase alongside the 2,048-variant limit.
If a Square item's photo library would push a single Shopify product past 250 media items - unusual, but it happens with heavily photographed apparel - the standard workaround is splitting it into linked products using Combined Listings, where each linked product keeps its own 250-item budget.

Metafields & metaobjects

Custom data has its own set of limits, separate from the product itself.

LimitValue
JSON metafield value size (API 2026-04+)128 KB
Items in a list-type metafield128 (1,024 for metaobject list references)
Metaobject definitions per app128
unSquared writes several dozen of its own metafield definitions during migration - across product, variant, and collection data, including square.full_category_path - well inside these limits for a normal catalog. Custom apps or a large number of manually created definitions of your own are the more likely way to bump into the 128-definition ceiling.

CSV product imports

Shopify's own product CSV import (Products > Import in Shopify admin) has a file-size ceiling of its own.

15 MB
Max product CSV file size
Shopify's own product import via CSV - a separate path from unSquared's migration.
Splitting a large export into several smaller CSV files and importing them one at a time is Shopify's own recommended workaround for a file that exceeds this size or times out.
unSquared's own Product Weight + Online Price upload has a separate 20MB limit - that's an unSquared constraint, not this Shopify one.

Bulk operations (GraphQL Admin API)

Large, asynchronous data transfers - the mechanism behind Shopify's own bulk import/export tooling, and the one unSquared itself switches into for big migrations.

100 MB
Max JSONL upload size
Per bulk mutation or import operation.
10 days
Max bulk query runtime
A bulk query still running after 10 days is stopped and marked failed.
5
Concurrent bulk operations
Per app, per shop.
This is the same mechanism unSquared switches into automatically for migrations of 2,000+ products, sending your catalog to Shopify in batches of 500 instead of one product at a time.

API rate limits

Both of Shopify's Admin APIs are rate-limited per app, per store - the exact ceiling depends on the store's plan.

Shopify planGraphQL Admin API
Basic / Shopify100 points/second
Advanced200 points/second
Shopify Plus1,000 points/second
Enterprise (Commerce Components)2,000 points/second
Shopify planREST Admin API
Standard plans40-request bucket, leaking at 2 requests/second
Shopify Plus400-request bucket, leaking at 20 requests/second
A single GraphQL query is capped at 1,000 points of cost, and array-type inputs are capped at 250 items across the Admin API.
Pagination is limited to 25,000 objects per query - a count requested past that point returns "25,001" rather than an exact number.
unSquared paces its own requests to stay comfortably inside these limits automatically - this is background information for understanding migration speed, not a setting you need to manage yourself.

Sources & last verified

Every number on this page is sourced directly from Shopify's official developer and merchant documentation. Shopify updates these limits from time to time - if you spot one that's changed, let us know.