Skip to main content
PUT
Error

Authorizations

Authorization
string
header
required

Shopify App Bridge session token of the embedded Depict: Search & Merchandising app. The shop in the token determines the merchant; merchant_id parameters must belong to that shop.

Path Parameters

surface_name
string
required

The surface's URL-safe name.

Pattern: ^[a-z0-9_-]+$

Query Parameters

merchant_id
string
required

Lite merchant id, e.g. shopify-<shop id>.

Body

application/json
name
string
required

URL-safe ([a-z0-9_-]+); also the storefront metaobject handle the theme block references.

Pattern: ^[a-z0-9_-]+$
context
enum<string>
required

Placement: product page (product anchor), category page (collection anchor), or any (no anchor). Per-product recommenders require product.

Available options:
product,
category,
any
steps
object[]
required

Recommenders in priority order: each fills the slots the ones before it left empty.

filters
object[]

Applied to every step's candidates.

Median-relative: 0.5 = half the anchor's (or catalogue's) median price.

stock_mode
enum<string>
default:in_stock

Include sold-out products and pins with all; omitted on write resets to in_stock. Generative cross-sell keeps its in-stock pool.

Available options:
in_stock,
all
limit
integer
default:25

Slots the surface renders.

excluded_product_ids
string[]

Products never recommended on this surface.

Response

The saved surface, with ingestion admission when metafield keys changed.

A saved surface. pin_mode, looks, custom_rules, only_show_pinned, shuffle and avoid_surfaces are ops-only serving directives: read-only here; an upsert keeps them (shuffle only while the surface stays live).

id
string
required

Stable uuid; kept across upserts. Pins, metrics and compose address the surface by it.

name
string
required

URL-safe ([a-z0-9_-]+); also the storefront metaobject handle the theme block references.

Pattern: ^[a-z0-9_-]+$
context
enum<string>
required

Placement: product page (product anchor), category page (collection anchor), or any (no anchor). Per-product recommenders require product.

Available options:
product,
category,
any
steps
object[]
required

Recommenders in priority order: each fills the slots the ones before it left empty.

filters
object[]
required

Applied to every step's candidates.

Median-relative: 0.5 = half the anchor's (or catalogue's) median price.

stock_mode
enum<string>
required

Include sold-out products and pins with all; omitted on write resets to in_stock. Generative cross-sell keeps its in-stock pool.

Available options:
in_stock,
all
limit
integer
required

Slots the surface renders.

excluded_product_ids
string[]
required

Products never recommended on this surface.

pin_mode
enum<string>
required
Available options:
insert,
override
looks
enum<string>
required
Available options:
none,
first,
only
custom_rules
any[]
required
only_show_pinned
boolean
required
shuffle
boolean
required
avoid_surfaces
string[]
required
ingestion
object