Resources
Changelog
Every change to the published API contract and the MCP connector, newest first.
Within v1, changes are additive only — clients must ignore response fields they do
not recognize. A breaking change would ship as v2 with a
Deprecation/Sunset window on v1, except for the explicit
private-beta correction recorded below.
2026-08-11 — Remove metaobject label translations (private-beta v1 exception)
Removed GET /api/v1/metaobject-definitions/{id}/translations.
Metaobject definition display names and field labels are not translation
resources in Peak PIM. The definition's translatable capability
remains supported and continues to enable entry-value translation in Shopify
Translate & Adapt. The get_master_translations_v1 MCP tool now
supports products and collections only.
This is an explicit breaking-change exception while v1 remains in private beta. The original 2026-07-31 entry remains below as superseded release context. Product and collection translation reads are unchanged.
2026-07-31 — Public API: operations surface
Added. Reads require pim:read unless noted.
- Markets —
GET /api/v1/markets,GET /api/v1/markets/{id}: each market with its per-store records (regions, currency, web presences) and attached catalogs, including the price-list and publication handles a pricing integration addresses Shopify by. - Metafield and metaobject definitions — the schema layer to read before writing values:
GET /api/v1/metafield-definitions(filterable byowner_type),GET /api/v1/metaobject-definitionswith field structure and entry counts, plus/{id}/entries. - Translations —
GET /api/v1/products/{id}/translations,/api/v1/collections/{id}/translations,/api/v1/metaobject-definitions/{id}/translations— grouped by locale, then by store, with the catalog of translatable fields. The metaobject definition endpoint was removed on 2026-08-11 under the private-beta v1 exception above; it is retained here as superseded historical context. - Sales channels —
GET /api/v1/stores/{id}/sales-channelsand/api/v1/{products,variants,collections}/{id}/sales-channels?store_id=. These query Shopify live — the only endpoints that can answer502. - Drops — scheduled field changes:
GET /api/v1/drops,/api/v1/drops/{id}, and/api/v1/{products,variants,collections}/{id}/drops. - Data health —
GET /api/v1/data-healthand/api/v1/data-health/issues(pim:read);POST /api/v1/data-health/scans,/completeness-fills,/divergence-reconciles(pim:write) — the first non-GET endpoints on v1;POST /api/v1/data-health/unused-deletions(pim:delete) documented but reserved.
Notes for integrators:
- The two remediation batches report partial success: a
200means the batch ran, not that every operation succeeded — readresultsper operation. Both write drafts only; nothing reaches Shopify until an explicit publish. - Both batches re-check the condition they are remediating immediately before writing, so a stale batch cannot clobber values filled since the last scan.
- Every list added here is bounded and returns the whole set with
next_cursor: null— exceptGET /api/v1/data-health/issues, which is page-numbered (page,page_size,has_next) because a section is a live query over changing state.
2026-07-31 — MCP connector: operations tools
16 new tools, bringing the catalog to 28. Same consent tiers; reads need the read tier unless noted.
- Markets & definitions —
list_markets_v1,get_market_v1,list_metafield_definitions_v1,list_metaobject_definitions_v1,list_metaobject_entries_v1. - Translations & sales channels —
get_master_translations_v1,list_store_sales_channels_v1,get_master_sales_channels_v1(the sales-channel tools query Shopify live). - Drops —
list_drops_v1,get_drop_v1,list_master_drops_v1. - Data health —
get_data_health_v1,list_data_health_issues_v1,run_data_health_scan_v1, plus the write-tier remediation batchesfill_completeness_gaps_v1andreconcile_value_divergence_v1(partial success; drafts only; re-check before write).
2026-07-28 — Public API: v1 read API
Added, all requiring the pim:read scope:
GET /api/v1/products,/api/v1/variants,/api/v1/collections,/api/v1/media— cursor-paginated lists (limitdefault 50, max 250; opaquecursor), filterable byupdated_since,status, andsearch.GET /api/v1/{resource}/{id}— one entity's canonical values,draft_revision, relationships (product_id,variant_ids,media_ids), and per-store publish state.GET /api/v1/{resource}/{id}/storesandGET /api/v1/{resource}/{id}/stores/{store_id}— the entity's store-local values, one item per store.GET /api/v1/stores— the account's linked Shopify stores.
Notes for integrators:
updated_sincematches an entity's own record recency. Editing one store's version of an entity does not widen it — re-read that entity's store versions when you need store-local changes.statusis publish state (never_published,pending,published,failed), not Shopify's per-store product status.- Every list response is
{"data": [...], "next_cursor": ...}. The store-scoped lists are bounded by the account's stores and always returnnext_cursor: null.
Already live from the platform foundations, unchanged here:
GET /api/v1/ping, pk_live_ bearer keys with scopes, the
typed error envelope, the X-RateLimit-* headers and 429 budget, and
ETag/If-None-Match on reads.
2026-07 — MCP connector: v1 tools
- Remote MCP endpoint at
https://api.peak-pim.com/mcp(streamable HTTP) with OAuth 2.1: dynamic client registration, PKCE S256, refresh tokens, and a browser consent page with three permission tiers (read / read & write / read, write & publish). - 12 versioned tools:
list_products_v1,list_collections_v1,list_variants_v1,list_masters_v1,get_master_v1,get_master_with_projections_v1,get_master_related_v1,list_projections_v1,get_projection_v1,update_master_attributes_v1,update_projection_attributes_v1,publish_master_v1. - Connection management (list / disconnect / revoke all) in Settings → AI assistants (MCP).