Compare print-on-demand supplier prices, shipping and delivered totals for the same product.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when a seller asks which print-on-demand (POD) supplier costs less for a product, wants a Printify vs Printful product comparison, or needs to compare product prices, shipping costs, delivered totals or estimated delivery times. Compares Printify, Printful, Gelato, Prodigi, CustomCat, Fourthwall and Inkthreadable wherever the product has supplier offers. Useful for Etsy and Shopify sellers choosing where to fulfill T-shirts, hoodies, mugs and other POD products. Compare one product and configuration for a destination and currency. Search products first; for a specified size or color pass choices or an optionKey from get_product_options. With neither, it uses the product's usual configuration and returns its label. Unknown costs remain null; similar products stay separate; affiliate links never change rankings. Paid plans must be explicitly requested; base is standard pricing. supplier shows one supplier's every product and print provider for the choice. Optional seller context, passed only when the seller already said it and never guessed: yourSupplier (the supplier they use now, so it is pinned first and every other row shows the difference per sale), and sellingPrice in the chosen currency, or targetMargin in percent to get the price to charge, with salesChannel (etsy, shopify, woocommerce, tiktok-shop) and shopLocation (the country their shop is in) to apply approved platform fees. Whenever the seller mentions their supplier, selling price, margin or platform, call this tool again with those fields instead of estimating profit yourself. If a price or margin arrives without salesChannel or shopLocation, the result lists what to ask. Profit is an estimate before tax from approved fee research. Supported destinations: US, GB, DE, AU, CA. Comparison totals and rankings are product + shipping. Supplier-billed duty is separate: an established amount, zero, bounded estimate or unverified amount. Profit deducts established duty or a converted estimate. Show one estimated duty amount using the converted upper endpoint, or the native upper endpoint marked not converted; do not narrate min–max ranges. Unverified duty or an unconverted native estimate leaves profit before that charge. Estimated or unverified duty never supports a best actual-profit claim in either profit mode; conditional design/setup prices do not establish a winner or gap. VAT, sales tax and customer-paid import charges are excluded or explicitly marked unknown. Do not use for ordering, store integrations, print-quality rankings or unsupported destinations.
Where the buyer lives: US, GB, DE, CA or AU.
Choices by field, such as { "size": "m", "color": "black" }. Values match a value key, its last part or its label, case-insensitively; get_product_options lists them.
Show only this supplier, with every product and print provider it offers for the choice.
An exact key from get_product_options.
base is each supplier's standard price; tier1 and tier2 are its paid plans.
The platform the seller sells on. Needed with sellingPrice or targetMargin for platform fees.
What the seller's customer pays per item, in the chosen currency, including any shipping the seller charges. Only when the seller said so.
The country the seller's shop is based in, which can differ from the destination the order ships to. Needed with sellingPrice or targetMargin for platform fees.
The share of the sale, in percent, the seller wants to keep after supplier cost and platform fees. Returns the price to charge with each supplier. Use instead of sellingPrice.
The supplier the seller uses today. Only when the seller said so; never guess.
Use this when a seller asks which print-on-demand (POD) supplier costs less for a product, wants a Printify vs Printful product comparison, or needs to compare product prices, shipping costs, delivered totals or estimated delivery times. Compares Printify, Printful, Gelato, Prodigi, CustomCat, Fourthwall and Inkthreadable wherever the product has supplier offers. Useful for Etsy and Shopify sellers choosing where to fulfill T-shirts, hoodies, mugs and other POD products. Compare one product and configuration for a destination and currency. Search products first; for a specified size or color pass choices or an optionKey from get_product_options. With neither, it uses the product's usual configuration and returns its label. Unknown costs remain null; similar products stay separate; affiliate links never change rankings. Paid plans must be explicitly requested; base is standard pricing. supplier shows one supplier's every product and print provider for the choice. Optional seller context, passed only when the seller already said it and never guessed: yourSupplier (the supplier they use now, so it is pinned first and every other row shows the difference per sale), and sellingPrice in the chosen currency, or targetMargin in percent to get the price to charge, with salesChannel (etsy, shopify, woocommerce, tiktok-shop) and shopLocation (the country their shop is in) to apply approved platform fees. Whenever the seller mentions their supplier, selling price, margin or platform, call this tool again with those fields instead of estimating profit yourself. If a price or margin arrives without salesChannel or shopLocation, the result lists what to ask. Profit is an estimate before tax from approved fee research. Supported destinations: US, GB, DE, AU, CA. Comparison totals and rankings are product + shipping. Supplier-billed duty is separate: an established amount, zero, bounded estimate or unverified amount. Profit deducts established duty or a converted estimate. Show one estimated duty amount using the converted upper endpoint, or the native upper endpoint marked not converted; do not narrate min–max ranges. Unverified duty or an unconverted native estimate leaves profit before that charge. Estimated or unverified duty never supports a best actual-profit claim in either profit mode; conditional design/setup prices do not establish a winner or gap. VAT, sales tax and customer-paid import charges are excluded or explicitly marked unknown. Do not use for ordering, store integrations, print-quality rankings or unsupported destinations.
| Argument | Type | Description |
|---|---|---|
| choices | object | Choices by field, such as { "size": "m", "color": "black" }. Values match a value key, its last part or its label, case-insensitively; get_product_options lists them. |
| currency* | string | |
| supplier | string | Show only this supplier, with every product and print provider it offers for the choice. |
| optionKey | string | An exact key from get_product_options. |
| destination* | string | Where the buyer lives: US, GB, DE, CA or AU. |
| pricingTier | string | base is each supplier's standard price; tier1 and tier2 are its paid plans. |
| salesChannel | string | The platform the seller sells on. Needed with sellingPrice or targetMargin for platform fees. |
| sellingPrice | number | What the seller's customer pays per item, in the chosen currency, including any shipping the seller charges. Only when the seller said so. |
| shopLocation | string | The country the seller's shop is based in, which can differ from the destination the order ships to. Needed with sellingPrice or targetMargin for platform fees. |
| targetMargin | number | The share of the sale, in percent, the seller wants to keep after supplier cost and platform fees. Returns the price to charge with each supplier. Use instead of sellingPrice. |
Use this when a seller asks about a product's specs, fabric, fit, print methods or what is similar to it. Returns curated product facts and similar products with what they share and how they differ. Specs describe the product; they do not promise every supplier offers every option.
| Argument | Type | Description |
|---|---|---|
| similarLimit | integer | |
| canonicalProductId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"canonicalProductId"
],
"properties": {
"similarLimit": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 0
},
"canonicalProductId": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
}
},
"additionalProperties": false
}Use this when a seller wants supplier pricing for a specific print-on-demand product size or color, such as an adult M black T-shirt or an 11 oz mug. Lists the product's fields and supported configurations for the destination and currency; narrow with words or choices. Pass a returned key as optionKey, or its choices, to compare_product. Search products first to obtain canonicalProductId. Supported destinations: US, GB, DE, AU, CA.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | Words to narrow the list, such as `m black`. |
| offset | integer | |
| choices | object | Choices by field, such as { "size": "m", "color": "black" }. Values match a value key, its last part or its label, case-insensitively; get_product_options lists them. |
| currency* | string | |
| destination* | string | Where the buyer lives: US, GB, DE, CA or AU. |
| canonicalProductId* | string |
Use this when a seller asks how a supplier works: plans and monthly fees, custom branding, who handles checkout, support and refunds, where it prints, or which print providers a marketplace uses. Facts carry their verification date and sources. Production locations are what the supplier reports, not a promise that a given product ships from there.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| offset | integer | |
| country | string | Only production locations in this country, such as US. |
| include | array | facts: plans, fees, branding and who handles what. locations: where it reports printing. providers: a marketplace's print providers. |
| provider | string | |
| supplierId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"supplierId"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Only production locations in this country, such as US."
},
"include": {
"type": "array",
"items": {
"enum": [
"facts",
"locations",
"providers"
],
"type": "string"
},
"default": [
"facts"
],
"maxItems": 3,
"description": "facts: plans, fees, branding and who handles what. locations: where it reports printing. providers: a marketplace's print providers."
},
"provider": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"supplierId": {
"enum": [
"customcat",
"fourthwall",
"gelato",
"inkthreadable",
"printful",
"printify",
"prodigi"
],
"type": "string"
}
},
"additionalProperties": false
}Use this when a seller asks how a supplier's prices compare overall, by category, or against one other supplier: how many products it is the cheapest for, where it costs more, and by how much. Uses each product's usual configuration delivered to the destination; checkedAt is the supplier's latest price scrape.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| offset | integer | |
| search | string | |
| versus | string | Compare against this supplier only, instead of every other one. |
| within | any | How close to the cheapest still counts as near-cheapest. |
| category | string | |
| currency | string | Currency for every price. Defaults to the destination's own currency. |
| supplierId* | string | |
| destination | string | Where the buyer lives: US, GB, DE, CA or AU. |
Use this to browse POD Benchmark's product categories, with product counts and starting delivered prices for a destination. Pass a category id to search_products to list its products.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | |
| offset | integer | |
| parent | string | Only the children of this category. |
| currency | string | Currency for every price. Defaults to the destination's own currency. |
| destination | string | Where the buyer lives: US, GB, DE, CA or AU. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 200
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
},
"parent": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Only the children of this category."
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"AUD",
"CAD"
],
"type": "string",
"description": "Currency for every price. Defaults to the destination's own currency."
},
"destination": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"default": "US",
"description": "Where the buyer lives: US, GB, DE, CA or AU."
}
},
"additionalProperties": false
}Use this to list the print-on-demand suppliers POD Benchmark compares, with their type and website.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | |
| offset | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 200
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
}
},
"additionalProperties": false
}Use this when a seller pastes a supplier product link (Printify, Printful, Gelato, Prodigi, CustomCat, Fourthwall or Inkthreadable). Returns the matching POD Benchmark product and any colour the link selects, ready for compare_product with yourSupplier set to that supplier. It never opens the link.
| Argument | Type | Description |
|---|---|---|
| url* | string | A supplier's product page, such as a Printify or Printful product link. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 4096,
"minLength": 1,
"description": "A supplier's product page, such as a Printify or Printful product link."
}
},
"additionalProperties": false
}Use this when a seller wants to find a print-on-demand (POD) product to compare across suppliers such as Printify, Printful, Gelato, Prodigi, CustomCat, Fourthwall and Inkthreadable. Search by product type such as T-shirt, hoodie or mug, or by brand and model such as Bella+Canvas 3001 or Gildan 5000, and filter by category, brand, supplier, audience, specs (fit, material, eco and more) or weight. Returns product ids, a starting delivered price for the destination and optional filter counts; compare a specific size or colour with compare_product. Supported destinations: US, GB, DE, AU, CA.
| Argument | Type | Description |
|---|---|---|
| sort | string | |
| limit | integer | |
| query | string | Product type, brand or model, such as `hoodie` or `bella canvas 3001`. Leave empty to browse with filters. |
| specs | object | Spec filters, any value per field, such as { "fit": ["classic"], "material": ["cotton"] }. includeFacets lists the values. |
| brands | array | |
| offset | integer | |
| category | string | A category id from list_categories, such as `t-shirts`. |
| currency |
Use this when a seller is choosing a supplier for a product type (t-shirts, hoodies, mugs, wall art, stickers or phone cases) and their shop: where buyers are, the platform, whether they need custom branding, want to start free, or want to choose their print provider. Returns suppliers that fit, that need a check, and that don't, each with dated reasons and sources, plus a delivered price range for an example product. No AI ranking.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| offset | integer | |
| destination | string | Where the buyer lives: US, GB, DE, CA or AU. |
| productType | string | |
| salesChannel | string | Where the seller sells. Leave out if they haven't decided. |
| shopLocation | string | |
| wantsFreeStart | boolean | |
| needsCustomBranding | boolean | |
| wantsToChooseProvider |
| yourSupplier | string | The supplier the seller uses today. Only when the seller said so; never guess. |
| canonicalProductId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"canonicalProductId",
"destination",
"currency"
],
"properties": {
"choices": {
"type": "object",
"description": "Choices by field, such as { \"size\": \"m\", \"color\": \"black\" }. Values match a value key, its last part or its label, case-insensitively; get_product_options lists them.",
"propertyNames": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"additionalProperties": {
"type": "string",
"maxLength": 120,
"minLength": 1
}
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"AUD",
"CAD"
],
"type": "string"
},
"supplier": {
"enum": [
"customcat",
"fourthwall",
"gelato",
"inkthreadable",
"printful",
"printify",
"prodigi"
],
"type": "string",
"description": "Show only this supplier, with every product and print provider it offers for the choice."
},
"optionKey": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "An exact key from get_product_options."
},
"destination": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"description": "Where the buyer lives: US, GB, DE, CA or AU."
},
"pricingTier": {
"enum": [
"base",
"tier1",
"tier2"
],
"type": "string",
"default": "base",
"description": "base is each supplier's standard price; tier1 and tier2 are its paid plans."
},
"salesChannel": {
"enum": [
"etsy",
"shopify",
"woocommerce",
"tiktok-shop"
],
"type": "string",
"description": "The platform the seller sells on. Needed with sellingPrice or targetMargin for platform fees."
},
"sellingPrice": {
"type": "number",
"maximum": 100000,
"description": "What the seller's customer pays per item, in the chosen currency, including any shipping the seller charges. Only when the seller said so.",
"exclusiveMinimum": 0
},
"shopLocation": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"description": "The country the seller's shop is based in, which can differ from the destination the order ships to. Needed with sellingPrice or targetMargin for platform fees."
},
"targetMargin": {
"type": "number",
"description": "The share of the sale, in percent, the seller wants to keep after supplier cost and platform fees. Returns the price to charge with each supplier. Use instead of sellingPrice.",
"exclusiveMaximum": 95,
"exclusiveMinimum": 0
},
"yourSupplier": {
"enum": [
"customcat",
"fourthwall",
"gelato",
"inkthreadable",
"printful",
"printify",
"prodigi"
],
"type": "string",
"description": "The supplier the seller uses today. Only when the seller said so; never guess."
},
"canonicalProductId": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"canonicalProductId",
"destination",
"currency"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 120,
"description": "Words to narrow the list, such as `m black`."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0
},
"choices": {
"type": "object",
"description": "Choices by field, such as { \"size\": \"m\", \"color\": \"black\" }. Values match a value key, its last part or its label, case-insensitively; get_product_options lists them.",
"propertyNames": {
"type": "string",
"maxLength": 60,
"minLength": 1
},
"additionalProperties": {
"type": "string",
"maxLength": 120,
"minLength": 1
}
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"AUD",
"CAD"
],
"type": "string"
},
"destination": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"description": "Where the buyer lives: US, GB, DE, CA or AU."
},
"canonicalProductId": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
}
},
"additionalProperties": false
}| pricingTier | string |
| categoryLimit | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"supplierId"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
},
"search": {
"type": "string",
"default": "",
"maxLength": 200
},
"versus": {
"enum": [
"customcat",
"fourthwall",
"gelato",
"inkthreadable",
"printful",
"printify",
"prodigi"
],
"type": "string",
"description": "Compare against this supplier only, instead of every other one."
},
"within": {
"oneOf": [
{
"type": "object",
"required": [
"kind",
"amount"
],
"properties": {
"kind": {
"type": "string",
"const": "amount"
},
"amount": {
"type": "number",
"maximum": 1000,
"minimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"percent"
],
"properties": {
"kind": {
"type": "string",
"const": "percent"
},
"percent": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}
],
"default": {
"kind": "amount",
"amount": 1
},
"description": "How close to the cheapest still counts as near-cheapest."
},
"category": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"AUD",
"CAD"
],
"type": "string",
"description": "Currency for every price. Defaults to the destination's own currency."
},
"supplierId": {
"enum": [
"customcat",
"fourthwall",
"gelato",
"inkthreadable",
"printful",
"printify",
"prodigi"
],
"type": "string"
},
"destination": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"default": "US",
"description": "Where the buyer lives: US, GB, DE, CA or AU."
},
"pricingTier": {
"enum": [
"base",
"tier1",
"tier2"
],
"type": "string",
"default": "base"
},
"categoryLimit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 0
}
},
"additionalProperties": false
}| string |
| Currency for every price. Defaults to the destination's own currency. |
| audiences | array | Such as unisex, mens, womens or kids. |
| suppliers | array | Only products at least one of these suppliers sells. |
| pricedOnly | boolean | Only products with a delivered price for the destination. |
| destination | string | Where the buyer lives: US, GB, DE, CA or AU. |
| maxWeightOz | number |
| minWeightOz | number |
| includeFacets | boolean | Also count brands, suppliers, audiences and spec values. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sort": {
"enum": [
"relevance",
"cheapest",
"priciest",
"most-suppliers",
"name"
],
"type": "string",
"default": "relevance"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 200,
"description": "Product type, brand or model, such as `hoodie` or `bella canvas 3001`. Leave empty to browse with filters."
},
"specs": {
"type": "object",
"default": {},
"description": "Spec filters, any value per field, such as { \"fit\": [\"classic\"], \"material\": [\"cotton\"] }. includeFacets lists the values.",
"propertyNames": {
"enum": [
"fit",
"fabricBlendCategory",
"neckline",
"labelType",
"sleeve",
"material",
"capacity",
"construction",
"ecoFriendly"
],
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 30,
"minItems": 1
}
},
"brands": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 20
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
},
"category": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A category id from list_categories, such as `t-shirts`."
},
"currency": {
"enum": [
"USD",
"EUR",
"GBP",
"AUD",
"CAD"
],
"type": "string",
"description": "Currency for every price. Defaults to the destination's own currency."
},
"audiences": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"default": [],
"maxItems": 10,
"description": "Such as unisex, mens, womens or kids."
},
"suppliers": {
"type": "array",
"items": {
"enum": [
"customcat",
"fourthwall",
"gelato",
"inkthreadable",
"printful",
"printify",
"prodigi"
],
"type": "string"
},
"default": [],
"maxItems": 7,
"description": "Only products at least one of these suppliers sells."
},
"pricedOnly": {
"type": "boolean",
"default": false,
"description": "Only products with a delivered price for the destination."
},
"destination": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"default": "US",
"description": "Where the buyer lives: US, GB, DE, CA or AU."
},
"maxWeightOz": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"minWeightOz": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"includeFacets": {
"type": "boolean",
"default": false,
"description": "Also count brands, suppliers, audiences and spec values."
}
},
"additionalProperties": false
}| boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
},
"destination": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string",
"default": "US",
"description": "Where the buyer lives: US, GB, DE, CA or AU."
},
"productType": {
"enum": [
"t-shirts",
"hoodies",
"mugs",
"wall-art",
"stickers",
"phone-cases"
],
"type": "string",
"default": "t-shirts"
},
"salesChannel": {
"enum": [
"shopify",
"etsy",
"woocommerce",
"tiktok-shop"
],
"type": "string",
"description": "Where the seller sells. Leave out if they haven't decided."
},
"shopLocation": {
"enum": [
"US",
"GB",
"DE",
"AU",
"CA"
],
"type": "string"
},
"wantsFreeStart": {
"type": "boolean",
"default": false
},
"needsCustomBranding": {
"type": "boolean",
"default": false
},
"wantsToChooseProvider": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}