Skip to main content
POST
Create an option set

Authorizations

Authorization
string
header
required

A secret key from Print.App admin → Domains → Secret keys, sent as Authorization: Bearer sk_…. Server-side only.

Headers

Idempotency-Key
string

Makes a retry safe: a second request with the same key and the same body gets the first response back (for 24 hours) instead of creating the resource again. Use a new key, such as a UUID, for every new request.

Required string length: 1 - 255

Body

application/json

An option set and the Shopify products to publish it to.

config
object
required

The option set itself: Print Options' JSON (version "2.0"), as in the option set JSON reference.

productIds
string[]
required

Shopify product ids (from GET /v2/store-products), up to 50.

Required array length: 1 - 50 elements
Pattern: ^(gid://shopify/Product/)?[0-9]{1,20}$
title
string

Its name in Print Options. Default: the config's title.

Required string length: 1 - 200
dryRun
boolean

Check everything and say what would change, writing nothing.

Response

Created.

What a create, update or delete did to each product, or would do (dryRun).

object
string
required
Allowed value: "option_set_change"
dryRun
boolean
required

true when nothing was written.

optionSetId
string | null
required

The option set. null for a dry-run create.

title
string | null
required
currency
string | null
required
created
boolean
required
deleted
boolean
required
changes
object[]
required
failed
integer
required

Products that did not change.

Required range: x >= 0
fields
PrintOptionsField · object[]
required

Its fields as connectors address them: give a field's source as a connector's source.

warnings
object[]
required

Things that will not stop it working but may not be meant.