Metaobject limits
This document lists how many metaobject definitions, fields, and entries can be created per shop, including apps, by plan. It also covers the limits that apply when a theme renders metaobjects in Liquid.
Anchor to Metaobject definition limitsMetaobject definition limits
Standard metaobject definitions don't count towards limits.
Standard metaobject definitions don't count towards limits.
Anchor to App definitionsApp definitions
Each app installed on a shop can create up to 128 metaobject definitions.
Definitions configured in TOML configuration are app scoped.
Definitions configured in TOML configuration are app scoped.
Anchor to Merchant definitionsMerchant definitions
The merchant's Shopify plan limits how many metafield object definitions they can create.
| Plan | Maximum allowed definitions |
|---|---|
| Basic | 128 |
| Shopify | 128 |
| Advanced | 128 |
| Plus | 256 |
| Enterprise | 256 |
Anchor to FieldsFields
Each metaobject definition can have up to 40 fields.
Anchor to Metaobject entry limitsMetaobject entry limits
Standard metaobject entries don't count towards limits.
Standard metaobject entries don't count towards limits.
Each metaobject definition can have up to 1,000,000 entries. This limit applies to each definition separately. Entries in one definition don't count toward another definition's limit. When a definition reaches its limit, creating another entry fails with a MAX_OBJECTS_EXCEEDED error.
List metafields can reference up to 1,024 metaobjects. For more information, refer to lists type limits.
Anchor to Liquid limitsLiquid limits
These limits apply to each page render when a theme loads metaobjects in Liquid. They're separate from the storage limits above: a definition can store up to 1,000,000 entries and a list metafield can reference up to 1,024 metaobjects, but a single page can load only some of them.
| Limit | Value |
|---|---|
Entries returned when you loop over metaobject_definition.values or a list.metaobject_reference or list.mixed_reference metafield without the paginate tag | 50 |
Entries per page when you use the paginate tag | 250 |
| Unique entries of a single metaobject type that can be loaded per page render | 1,000 |
Unique handles of a single metaobject type that can be looked up with metaobjects.TYPE[handle] per page render, including handles that don't match a published entry | 20 |
Metaobject definitions that can be accessed through the metaobjects object per page render | 50 |
The size of a list.metaobject_reference or list.mixed_reference metafield returns the total number of referenced entries, even when a loop without paginate returns only the first 50. The size of metaobject_definition.values and metaobject_definition.values_count are subject to the count limit, so they return 25,001 for definitions with more than 25,000 entries. Exceeding the per-type limits renders a Liquid error instead of the entries.
The size of a list.metaobject_reference or list.mixed_reference metafield returns the total number of referenced entries, even when a loop without paginate returns only the first 50. The size of metaobject_definition.values and metaobject_definition.values_count are subject to the count limit, so they return 25,001 for definitions with more than 25,000 entries. Exceeding the per-type limits renders a Liquid error instead of the entries.
Anchor to Loop over more than 50 entriesLoop over more than 50 entries
To render more than 50 entries from a metaobject list, wrap the loop in the paginate tag. Each page returns up to 250 entries. If the list can hold more than 250 entries, then use the paginate object or the default_pagination filter to render page navigation, or narrow the list before rendering it: