Tools
Catalog reads
Seventeen read tools that cover the rest of the catalog: the connected stores, every browsable entity type with the interface's full filter vocabulary, grouped variant search, the global quick search, relationships (attachments, entity media, metaobject-entry references), Shopify-computed collection membership, the definition and field-information layer, and reference resolution. All require pim:read.
list_stores_v1
list_stores_v1pim:readList the account's connected Shopify stores: id (the channel_id every other tool takes), name and merchant display name, shop domain, the source language and the published locales (translation targets are the published locales minus the primary one), plus the account capabilities that gate some entity types (online_store_content: blogs, articles, pages; discounts: the Discounts tools). Read this first to address stores by id.
No arguments.
list_entities_v1
list_entities_v1pim:readList items of one type (products, collections, variants, blogs, articles, pages) as lean browse rows with the full browse filter vocabulary: search, sort, store presence (store_ids/store_mode), pending-publish and publish-failed flags, a parent (a product's variants, a blog's articles), structured filter conditions, and optional per-store field values (field_keys + field_channel_ids). Use list_masters_v1 for full-detail rows or the other entity types.
| Argument | Type | Description |
|---|---|---|
type | string, one of Product, Collection, Variant, Page, Blog, Article, required | Which kind of item to list. Blog, Article, and Page need the account's online-store content capability (see list_stores_v1). |
channel_id | string | Enrich rows for a single store (per-store sort, SKU, thumbnails). Use store_ids/store_mode to filter by store presence. |
exclude_default_variants | boolean | Exclude auto default variants from the list. |
field_channel_ids | array of string | The stores whose field values to return (needed for store_fields). |
field_keys | array of string | Extra per-store field values to return per row (mf:… or custom:… keys only, at most 20). |
filter | object | Structured filter. A condition the server cannot apply (unknown operator, blank value on a value-taking operator, a store-scoped condition without a store) is SKIPPED rather than rejected, so verify the population before trusting a count. |
order | string, one of asc, desc | Sort direction. |
page | integer | 1-based page number. |
page_size | integer | Rows per page (clamped to the server max). |
parent_master_id | string | Restrict to children of this parent item (a product's variants, a blog's articles). |
pending_publish | boolean | Only items with unpublished changes. |
publish_failed | boolean | Only items whose last publish failed on some store. |
search | string | Free-text search. |
sort | string | Sort field key. |
sort_source | string, one of master, projection, master_column, projection_column, default_variant | Which side the sort key lives on: "master", "projection" (needs channel_id), "master_column" (created_at/updated_at), or "projection_column" (last_publish_at). |
sort_type | string, one of string, number, date | How sort values compare. |
store_ids | array of string | Restrict by store presence to these store ids (see store_mode). |
store_mode | string, one of any, all, only, none | How store_ids applies: "any" (on at least one, default), "all" (on every listed store), "only" (on exactly those), "none" (on none of them). |
list_variant_groups_v1
list_variant_groups_v1pim:readSearch variants with the browse filter vocabulary and get the matches grouped under their parent product, paginated over the matched products. Each group carries the product row and only the variants that matched.
| Argument | Type | Description |
|---|---|---|
channel_id | string | Enrich rows for a single store (per-store sort, SKU, thumbnails). Use store_ids/store_mode to filter by store presence. |
exclude_default_variants | boolean | Exclude auto default variants from the list. |
field_channel_ids | array of string | The stores whose field values to return (needed for store_fields). |
field_keys | array of string | Extra per-store field values to return per row (mf:… or custom:… keys only, at most 20). |
filter | object | Structured filter. A condition the server cannot apply (unknown operator, blank value on a value-taking operator, a store-scoped condition without a store) is SKIPPED rather than rejected, so verify the population before trusting a count. |
order | string, one of asc, desc | Sort direction. |
page | integer | 1-based page number. |
page_size | integer | Rows per page (clamped to the server max). |
pending_publish | boolean | Only items with unpublished changes. |
publish_failed | boolean | Only items whose last publish failed on some store. |
search | string | Free-text search. |
sort | string | Sort field key. |
sort_source | string, one of master, projection, master_column, projection_column, default_variant | Which side the sort key lives on: "master", "projection" (needs channel_id), "master_column" (created_at/updated_at), or "projection_column" (last_publish_at). |
sort_type | string, one of string, number, date | How sort values compare. |
store_ids | array of string | Restrict by store presence to these store ids (see store_mode). |
store_mode | string, one of any, all, only, none | How store_ids applies: "any" (on at least one, default), "all" (on every listed store), "only" (on exactly those), "none" (on none of them). |
search_catalog_v1
search_catalog_v1pim:readSearch the whole catalog at once — products, variants, collections, files, content, markets, catalogs, metaobject entries and definitions — and get the top matches grouped per type (at most 5 per group, with the group's matched count). Each item matches on its OWN fields: a SKU hit surfaces the variant, not its product. Queries under 2 characters return no groups.
| Argument | Type | Description |
|---|---|---|
query | string, required | Free-text query (at least 2 characters). |
list_projection_links_v1
list_projection_links_v1pim:readList the authored relationship links between per-store versions: media attachments (entity → file), catalog → market attachments, and catalog → product memberships. Filter by the source and/or target per-store version id. Each link carries its position and whether Shopify has confirmed it yet (pending_publish). Collection membership is never a link — read it with read_collection_membership_v1.
| Argument | Type | Description |
|---|---|---|
source_projection_id | string | The per-store version the links start from (a product, variant, collection, article, or catalog version). |
target_projection_id | string | The per-store version the links point at (a file, market, or product version). |
list_entity_media_v1
list_entity_media_v1pim:readList the media attached to one per-store version of a product, variant, collection, or article, in gallery order: each attachment's link id and position, the file's identity and facts (filename, type, dimensions, readiness), its per-store alt text and Shopify media id, a preview URL, and whether the attachment is still awaiting publish.
| Argument | Type | Description |
|---|---|---|
projection_id | string, required | The per-store version id of the entity (not the file). |
list_metaobject_entry_references_v1
list_metaobject_entry_references_v1pim:readList the entities whose metafields reference one metaobject entry, per store: the referencing entity, its type and parent, the field key that holds the reference, and its title. Capped at 200 rows per store (truncated_channel_ids names the stores that hit the cap).
| Argument | Type | Description |
|---|---|---|
entry_id | string, required | The metaobject entry's id. |
read_collection_membership_v1
read_collection_membership_v1pim:readRead Shopify-computed collection membership on one store, in either direction: the products a collection holds (direction products_of_collection) or the collections holding a product (collections_of_product). Pass master_id for one entity with the full member list, or master_ids (at most 20) for a bounded batch that names each entity's leading members and totals. Membership is computed by Shopify from the collection's sources — it is never stored here — so a cold read reaches Shopify live; a hand-picked membership still awaiting publish is reported with pending_publish.
| Argument | Type | Description |
|---|---|---|
channel_id | string, required | The store id. |
direction | string, one of products_of_collection, collections_of_product, required | Which side to read. |
master_id | string | One collection id (products_of_collection) or one product id (collections_of_product): the full member list. |
master_ids | array of string | Up to 20 ids for a batched read that names each entity's leading members and counts. |
- Extended timeout. 120 s per call — the operation runs server-side orchestration or a live Shopify read.
- Live Shopify read. Slower than PIM reads and can fail when Shopify is unavailable.
get_metafield_definition_v1
get_metafield_definition_v1pim:readGet one metafield definition in full: identity (namespace.key, owner type), type and validations, category constraints, capability options, origin (custom or Shopify standard template), per-store presence, and per-store capability eligibility (read live from Shopify, so slower than the list).
| Argument | Type | Description |
|---|---|---|
id | string, required | The item id (must belong to the token's account; cross-account ids return not found). |
- Live Shopify read. Slower than PIM reads and can fail when Shopify is unavailable.
get_metaobject_definition_v1
get_metaobject_definition_v1pim:readGet one metaobject definition in full: type key, name, its field definitions (key, name, type, required, validations), per-store presence, entry count, capability flags (publishable, translatable, renderable, online store), any structure conflict between stores, and same-type duplicates.
| Argument | Type | Description |
|---|---|---|
id | string, required | The item id (must belong to the token's account; cross-account ids return not found). |
list_custom_field_definitions_v1
list_custom_field_definitions_v1pim:readList the account's own custom fields — PIM-only fields that never publish to Shopify — with their slug, the entity kind they apply to, type, options, formula, and optional metafield target. Values live on per-store versions under the key custom:<slug> and are written with update_projection_attributes_v1 or bulk_patch_v1. Pass id to read exactly one definition.
| Argument | Type | Description |
|---|---|---|
applies_to | string, one of Product, Variant, Collection, Media, Blog, Article | Narrow to definitions of one entity kind. |
id | string | Read one definition by id instead of listing. |
list_product_category_metafields_v1
list_product_category_metafields_v1pim:readFor one store and one Shopify taxonomy category, list the metafield definitions already enabled for that category on the store and Shopify's standard templates that could still be enabled. Paged with limit/cursor; when Shopify cannot be reached the enabled list still answers with available_error set.
| Argument | Type | Description |
|---|---|---|
category_id | string, required | The taxonomy category (a raw id or a gid://shopify/TaxonomyCategory/… GID). |
channel_id | string, required | The store id. |
cursor | string | The next_cursor of a previous page. |
limit | integer | Templates per page (1–50). |
- Live Shopify read. Slower than PIM reads and can fail when Shopify is unavailable.
read_taxonomy_v1
read_taxonomy_v1pim:readRead the Shopify product taxonomy: pass category_id to get a category's attributes with their selectable values (for metafield values and collection conditions), or value_gids (1–100 gid://shopify/TaxonomyValue/… ids) to resolve value names. A shared public vocabulary, cached server-side; an unreachable Shopify answers degraded rather than failing.
| Argument | Type | Description |
|---|---|---|
category_id | string | A taxonomy category id or GID: answers its attributes and values. |
value_gids | array of string | Taxonomy value GIDs to name (1–100). |
- Live Shopify read. Slower than PIM reads and can fail when Shopify is unavailable.
get_field_suggestions_v1
get_field_suggestions_v1pim:readGet the values already in use for autocomplete-style fields, keyed by field: for products the vendors and tags in use, for files the tags. Reuse these before inventing new spellings.
| Argument | Type | Description |
|---|---|---|
type | string, one of Product, Media, required | Which entity kind's vocabulary to read. |
list_theme_templates_v1
list_theme_templates_v1pim:readList the theme template suffixes one store's live theme offers for a resource kind (product, collection, page, blog, article) — the values a Template Suffix field may take; the empty suffix is the theme's default template. Reaches Shopify live.
| Argument | Type | Description |
|---|---|---|
channel_id | string, required | The store id. |
resource | string, one of product, collection, page, blog, article, required | Which resource kind's templates to list. |
- Live Shopify read. Slower than PIM reads and can fail when Shopify is unavailable.
resolve_references_v1
resolve_references_v1pim:readResolve stored reference values (metafield reference GIDs on one store, or PIM item ids from custom-field references) into the entities they name — name, type, thumbnail, and the identity behind each value. With target_channel_ids, instead translate the source store's GIDs into each target store's own GIDs for the same entities, so a reference can be copied to another store: a store absent from a value's map cannot reference it there. At most 200 values per call; a value that names nothing is simply omitted.
| Argument | Type | Description |
|---|---|---|
channel_id | string | The store the gids belong to (required whenever gids is given). |
gids | array of string | Store-local Shopify GIDs to resolve. |
master_ids | array of string | PIM item ids to resolve (store-independent; lookup mode only). |
target_channel_ids | array of string | Translate the gids into these stores' own GIDs instead of describing the entities. |
search_references_v1
search_references_v1pim:readSearch one store for entities a reference field can point at (products, variants, collections, files, metaobject entries) and get picker rows: the store-local GID the field stores, name, thumbnail, PIM identity, and the kind's detail facts (a product's status/vendor/type and leading SKUs, a collection's member count or automated flag, a file's kind). raw_count above the returned count means matches exist that are not published on this store. At most 50 rows.
| Argument | Type | Description |
|---|---|---|
channel_id | string, required | The store whose GIDs the field stores. |
type | string, one of Product, Variant, Collection, Media, MetaobjectEntry, required | Which entity kind to search. |
page_size | integer | Rows to return (at most 50). |
parent_master_id | string | For metaobject entries: the definition to search under. |
reference_channel_ids | array of string | Also return each row's GID on these stores (for an edit that writes to several stores). |
search | string | Free-text search. |