PhotoPrintAgent Narrow

Browse photo prints, estimate delivery prices, prepare uploads and track orders with scoped OAuth.

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
94%
Vollständigkeit des Schemas
73%
Qualität der Benennung
94%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'preview_print_price' description contains placeholder textin preview_print_price
  • INFOTool description contains placeholder or incomplete textin preview_print_price

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~7,405Tokens (Tool-Definitionen)
~7.7 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (5.79% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "mcp-narrow": {
      "url": "https://photoprintagent.com/mcp-narrow"
    }
  }
}

Remote-Endpunkte

https://photoprintagent.com/mcp-narrowstreamable-http

Was es kann

Tool-Inventar

Tools (10)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢list_products(query, category, finish, widthInches, heightInches, ...)

Public paginated product catalog, print specifications, and availability. Follow nextOffset until null. availableOnly defaults to true; false includes unavailable public products with explicit available flags. Filters cover query, category, finish, dimensions and known unit price range. capabilities distinguishes API support from current orderability. productCode and sku are PhotoPrintAgent seller codes for customer listings and search; id remains the API identifier for uploads and quotes. Each product supplies artwork dimensions, minimum/maximum image counts, ordered slot labels, bleed and rotation rules. These apply to all active supported products, including multi-image designs. Artwork minimumDpi values are print quality guidance, not an upload rejection threshold: accept smaller valid images, resize them, and treat reduced quality as a nonblocking warning. Admin Only products are never listed. Pass a returned products[].id as productId when uploading and quoting; omission selects the original photo-4x6 product. Price depends on the items and destination; call quote_prints for an authoritative total.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 100
    },
    "category": {
      "type": "string",
      "maxLength": 80
    },
    "finish": {
      "type": "string",
      "maxLength": 80
    },
    "widthInches": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "heightInches": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "minPriceCents": {
      "type": "integer",
      "minimum": 0
    },
    "maxPriceCents": {
      "type": "integer",
      "minimum": 0
    },
    "availableOnly": {
      "type": "boolean",
      "default": true
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "const": "photo-4x6"
        },
        "productCode": {
          "type": "string"
        },
        "sku": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "countries": {
          "type": "array",
          "items": {
            "type": "string",
            "const": "US"
          }
        },
        "maxPhotos": {
          "type": "integer"
        },
        "maxPrints": {
          "type": "integer"
        },
        "specs": {
          "type": "object",
          "properties": {
            "widthInches": {
              "type": "number"
            },
            "heightInches": {
              "type": "number"
            },
            "landscapePixels": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "portraitPixels": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "recommendedDpi": {
              "type": "number"
            },
            "minimumDpi": {
              "type": "number"
            },
            "colorSpace": {
              "type": "string",
              "const": "sRGB"
            },
            "outputFormat": {
              "type": "string",
              "const": "image/jpeg"
            },
            "maxFileBytes": {
              "type": "number"
            },
            "maxInputPixels": {
              "type": "number"
            },
            "acceptedMimeTypes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "acceptedExtensions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "imageHandling": {
              "type": "object",
              "properties": {
                "resolutionPolicy": {
                  "type": "string"
                },
                "animationPolicy": {
                  "type": "string"
                },
                "multipagePolicy": {
                  "type": "string"
                },
                "transparencyPolicy": {
                  "type": "string"
                },
                "colorPolicy": {
                  "type": "string"
                },
                "svgPolicy": {
                  "type": "string"
                },
                "unsupportedPolicy": {
                  "type": "string"
                },
                "helpUrl": {
                  "type": "string"
                }
              },
              "required": [
                "resolutionPolicy",
                "animationPolicy",
                "multipagePolicy",
                "transparencyPolicy",
                "colorPolicy",
                "svgPolicy",
                "unsupportedPolicy",
                "helpUrl"
              ],
              "additionalProperties": false
            },
            "aspectRatio": {
              "type": "string"
            },
            "cropRules": {
              "type": "string"
            },
            "priceMode": {
              "type": "string",
              "const": "quote_required"
            }
          },
          "required": [
            "widthInches",
            "heightInches",
            "landscapePixels",
            "portraitPixels",
            "recommendedDpi",
            "minimumDpi",
            "colorSpace",
            "outputFormat",
            "maxFileBytes",
            "maxInputPixels",
            "acceptedMimeTypes",
            "acceptedExtensions",
            "imageHandling",
            "aspectRatio",
            "cropRules",
            "priceMode"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "id",
        "title",
        "countries",
        "maxPhotos",
        "maxPrints",
        "specs"
      ],
      "additionalProperties": false
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "productCode": {
            "type": "string",
            "pattern": "^PPA[A-F0-9]{12}$"
          },
          "sku": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unitPriceCents": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "description": "Integer USD cents"
              },
              {
                "type": "null"
              }
            ],
            "description": "Integer USD cents"
          },
          "category": {
            "type": "string"
          },
          "finish": {
            "type": "string"
          },
          "size": {
            "type": "string"
          },
          "widthInches": {
            "type": "number"
          },
          "heightInches": {
            "type": "number"
          },
          "artwork": {
            "type": "object",
            "properties": {
              "qualityGuidance": {
                "type": "object",
                "properties": {
                  "recommendedDpi": {
                    "type": "number"
                  },
                  "minimumDpiIsRejectionThreshold": {
                    "type": "boolean"
                  },
                  "fitModes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "fitDescription": {
                    "type": "string"
                  }
                },
                "required": [
                  "recommendedDpi",
                  "minimumDpiIsRejectionThreshold",
                  "fitModes",
                  "fitDescription"
                ],
                "additionalProperties": false
              },
              "widthPixels": {
                "type": "integer"
              },
              "heightPixels": {
                "type": "integer"
              },
              "minImages": {
                "type": "integer"
              },
              "maxImages": {
                "type": "integer"
              },
              "minimumDpi": {
                "type": "number"
              },
              "allowRotate": {
                "type": "boolean"
              },
              "labels": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "bleed": {
                "type": "object",
                "additionalProperties": {
                  "type": "number"
                }
              },
              "issues": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "calendar": {
                "type": "object",
                "properties": {
                  "layout": {
                    "type": "string",
                    "const": "alternating-photo-grid"
                  },
                  "months": {
                    "type": "number",
                    "enum": [
                      12,
                      18
                    ]
                  }
                },
                "required": [
                  "layout",
                  "months"
                ],
                "additionalProperties": false
              },
              "composition": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "width": {
                    "type": "integer"
                  },
                  "height": {
                    "type": "integer"
                  },
                  "background": {
                    "type": "string"
                  },
                  "slots": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "integer"
                        },
                        "y": {
                          "type": "integer"
                        },
                        "width": {
                          "type": "integer"
                        },
                        "height": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "width",
                        "height"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "id",
                  "width",
                  "height",
                  "background",
                  "slots"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "widthPixels",
              "heightPixels",
              "minImages",
              "maxImages",
              "minimumDpi",
              "allowRotate",
              "labels",
              "bleed",
              "issues"
            ],
            "additionalProperties": false
          },
          "shipping": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "provider",
                  "flat",
                  "per_item"
                ]
              },
              "amountCents": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100000,
                "default": 0
              },
              "multipleItemAmountCents": {
                "anyOf": [
                  {
                    "$ref": "#/properties/products/items/properties/shipping/properties/amountCents"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null
              }
            },
            "required": [
              "mode"
            ],
            "additionalProperties": false
          },
          "adminOnly": {
            "type": "boolean"
          },
          "available": {
            "type": "boolean"
          },
          "unavailableReason": {
            "type": "string"
          },
          "preview": {
            "type": "object",
            "additionalProperties": {}
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "widthInches",
          "heightInches"
        ],
        "additionalProperties": true
      }
    },
    "catalogProducts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/products/items"
      }
    },
    "orderingAvailable": {
      "type": "boolean"
    },
    "googleEnabled": {
      "type": "boolean"
    },
    "xEnabled": {
      "type": "boolean"
    },
    "x402Available": {
      "type": "boolean"
    },
    "paymentNetwork": {
      "type": "string"
    },
    "solanaAvailable": {
      "type": "boolean"
    },
    "x402PayTo": {
      "type": [
        "string",
        "null"
      ]
    },
    "support": {
      "type": "string"
    },
    "deliveryEstimate": {
      "type": "string"
    },
    "total": {
      "type": "number"
    },
    "nextOffset": {
      "type": [
        "number",
        "null"
      ]
    },
    "capabilities": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "availableToOrder": {
            "type": "boolean"
          },
          "productCount": {
            "type": "number"
          }
        },
        "required": [
          "supported",
          "availableToOrder",
          "productCount"
        ],
        "additionalProperties": false
      }
    },
    "priceFilterBasis": {
      "type": "string"
    }
  },
  "required": [
    "product",
    "orderingAvailable",
    "googleEnabled",
    "xEnabled",
    "x402Available",
    "paymentNetwork",
    "solanaAvailable",
    "x402PayTo",
    "support"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_photos

List your unexpired, unlocked uploaded photos. Use their IDs in slot order. Photos reserved by an order cannot be deleted.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "photos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "productId": {
            "type": "string"
          },
          "artworkKey": {
            "type": "string"
          },
          "width": {
            "type": "integer"
          },
          "height": {
            "type": "integer"
          },
          "quality": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "high",
                  "reduced"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "orientation": {
            "type": "string",
            "enum": [
              "portrait",
              "landscape"
            ]
          }
        },
        "required": [
          "id",
          "productId",
          "artworkKey",
          "width",
          "height",
          "quality",
          "orientation"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "photos"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢preview_print_item(productId, photoIds, calendar, offset, limit)

Preview one complete design using owned uploaded photoIds in product slot order. Reviewed compositions (including photobooth strips) render the same assembly used for fulfillment. For artwork.calendar, include calendar:{startYear,startMonth}; previews include the generated date grids in print page order. Other products return ordered flat artwork pages, not a physical mockup. JPEG thumbnails appear as MCP image content after the JSON metadata. Page with offset/limit; no order or external photo link is created.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]{1,63}$"
    },
    "photoIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "minItems": 1,
      "maxItems": 200
    },
    "calendar": {
      "type": "object",
      "properties": {
        "startYear": {
          "type": "integer",
          "minimum": 2000,
          "maximum": 2100
        },
        "startMonth": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12
        }
      },
      "required": [
        "startYear",
        "startMonth"
      ],
      "additionalProperties": false
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4,
      "default": 4
    }
  },
  "required": [
    "photoIds"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "composition",
        "artwork_pages",
        "calendar"
      ]
    },
    "layoutId": {
      "type": [
        "string",
        "null"
      ]
    },
    "totalPages": {
      "type": "integer"
    },
    "nextOffset": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "pages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer"
          },
          "label": {
            "type": "string"
          },
          "width": {
            "type": "integer"
          },
          "height": {
            "type": "integer"
          }
        },
        "required": [
          "index",
          "label",
          "width",
          "height"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "productId",
    "kind",
    "layoutId",
    "totalPages",
    "nextOffset",
    "pages"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢estimate_print_price(productId, quantity, zip, state)

Estimate configured product and shipping charges using only product, quantity, ZIP and state. No photos or contact details required. Unknown tax or charges remain null; this is not a payable quote.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "zip": {
      "type": "string",
      "pattern": "^\\d{5}$"
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Z]{2}$"
    }
  },
  "required": [
    "productId",
    "quantity",
    "zip",
    "state"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "estimate": {
      "type": "boolean",
      "const": true
    },
    "currency": {
      "type": "string",
      "const": "USD"
    },
    "productId": {
      "type": "string"
    },
    "quantity": {
      "type": "number"
    },
    "subtotal": {
      "type": [
        "number",
        "null"
      ]
    },
    "shipping": {
      "type": [
        "number",
        "null"
      ]
    },
    "tax": {
      "type": [
        "number",
        "null"
      ]
    },
    "total": {
      "type": [
        "number",
        "null"
      ]
    },
    "knownAmount": {
      "type": "number"
    },
    "unknownComponents": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "requiresFinalQuote": {
      "type": "boolean",
      "const": true
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "estimate",
    "currency",
    "productId",
    "quantity",
    "subtotal",
    "shipping",
    "tax",
    "total",
    "knownAmount",
    "unknownComponents",
    "requiresFinalQuote",
    "message"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡preview_print_price(productId, items, shipping, couponCode, campaignId)

Estimate product and destination pricing before using the customer’s photos for an order. Uses placeholder artwork and does not create an order or a payable quote. Call quote_prints with buyer consent before checkout.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]{1,63}$"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "calendar": {
            "type": "object",
            "properties": {
              "startYear": {
                "type": "integer",
                "minimum": 2000,
                "maximum": 2100
              },
              "startMonth": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              }
            },
            "required": [
              "startYear",
              "startMonth"
            ],
            "additionalProperties": false
          },
          "productId": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9-]{1,63}$"
          },
          "photoId": {
            "type": "string",
            "format": "uuid"
          },
          "photoIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "minItems": 1,
            "maxItems": 200
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          }
        },
        "required": [
          "quantity"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 50
    },
    "shipping": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 150
        },
        "lastName": {
          "$ref": "#/properties/shipping/properties/firstName"
        },
        "email": {
          "type": "string",
          "format": "email",
          "maxLength": 254
        },
        "phone": {
          "type": "string"
        },
        "line1": {
          "$ref": "#/properties/shipping/properties/firstName"
        },
        "line2": {
          "type": "string",
          "maxLength": 150,
          "default": ""
        },
        "city": {
          "$ref": "#/properties/shipping/properties/firstName"
        },
        "state": {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "zip": {
          "type": "string",
          "pattern": "^\\d{5}(-\\d{4})?$"
        },
        "country": {
          "type": "string",
          "const": "US"
        }
      },
      "required": [
        "firstName",
        "lastName",
        "email",
        "phone",
        "line1",
        "city",
        "state",
        "zip",
        "country"
      ],
      "additionalProperties": false
    },
    "couponCode": {
      "type": "string",
      "maxLength": 64
    },
    "campaignId": {
      "type": "string",
      "pattern": "^[a-f0-9]{16}$"
    }
  },
  "required": [
    "items",
    "shipping"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "preview": {
      "type": "boolean",
      "const": true
    },
    "price": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "const": "USD"
        },
        "subtotal": {
          "type": "integer",
          "minimum": 0,
          "description": "Integer USD cents"
        },
        "shipping": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "tax": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "total": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "originalTotal": {
          "$ref": "#/properties/price/properties/subtotal",
          "description": "Integer USD cents"
        },
        "discount": {
          "$ref": "#/properties/price/properties/subtotal",
          "description": "Integer USD cents"
        },
        "coupon": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "printDiscount": {
              "$ref": "#/properties/price/properties/subtotal"
            },
            "shippingDiscount": {
              "$ref": "#/properties/price/properties/subtotal"
            },
            "taxCredit": {
              "$ref": "#/properties/price/properties/subtotal"
            }
          },
          "required": [
            "code",
            "name",
            "printDiscount",
            "shippingDiscount",
            "taxCredit"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "currency",
        "subtotal",
        "shipping",
        "tax",
        "total"
      ],
      "additionalProperties": false
    },
    "validUntil": {
      "type": "integer",
      "minimum": 0,
      "description": "Unix time in milliseconds"
    },
    "expiresAt": {
      "$ref": "#/properties/validUntil"
    },
    "lineItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "photoId": {
            "type": "string",
            "format": "uuid"
          },
          "photoIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "productId": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "calendar": {
            "type": "object",
            "properties": {
              "startYear": {
                "type": "integer",
                "minimum": 2000,
                "maximum": 2100
              },
              "startMonth": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              }
            },
            "required": [
              "startYear",
              "startMonth"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "productId",
          "quantity"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "preview",
    "price",
    "validUntil",
    "expiresAt",
    "lineItems"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡quote_prints(productId, items, shipping, consent, couponCode, ...)

Quote private uploaded photo IDs and a US destination for an optional productId from list_products (defaults to photo-4x6). Items may specify productId to mix products using the same print service; omitted item productId uses the order productId. For a single image use items:[{photoId,productId,quantity}]. For a multi-image design use items:[{photoIds:[frontId,backId,...],quantity}]; array order is print order and quantity counts complete products, not individual images. Follow artwork.minImages/maxImages and labels. For artwork.calendar, upload a cover plus one photo per month and include calendar:{startYear,startMonth} on the item; the server generates and interleaves the date grids. Do not upload date grids. For artwork.composition, upload each source photo at the per-image dimensions; the server assembles the ordered photos into the single print file shown by the layout. Never precompose those photos or send each side as a separate item. Up to 200 uploaded images and 500 product units per order. Shipping follows the product’s configured pricing; flat rates can differ for 1 versus 2+ prints. Use the returned shipping and total; never multiply flat shipping by quantity. Requires consent for PhotoPrintAgent to process these photos and address for printing and delivery. Unique photos, at most 500 total prints. Optional couponCode is validated here; price.total is the discounted buyer amount and price.discount is the savings in USD cents.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9-]{1,63}$"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "calendar": {
            "type": "object",
            "properties": {
              "startYear": {
                "type": "integer",
                "minimum": 2000,
                "maximum": 2100
              },
              "startMonth": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              }
            },
            "required": [
              "startYear",
              "startMonth"
            ],
            "additionalProperties": false
          },
          "productId": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9-]{1,63}$"
          },
          "photoId": {
            "type": "string",
            "format": "uuid"
          },
          "photoIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "minItems": 1,
            "maxItems": 200
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 99
          }
        },
        "required": [
          "quantity"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 50
    },
    "shipping": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string",
          "minLength": 1,
          "maxLength": 150
        },
        "lastName": {
          "$ref": "#/properties/shipping/properties/firstName"
        },
        "email": {
          "type": "string",
          "format": "email",
          "maxLength": 254
        },
        "phone": {
          "type": "string"
        },
        "line1": {
          "$ref": "#/properties/shipping/properties/firstName"
        },
        "line2": {
          "type": "string",
          "maxLength": 150,
          "default": ""
        },
        "city": {
          "$ref": "#/properties/shipping/properties/firstName"
        },
        "state": {
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "zip": {
          "type": "string",
          "pattern": "^\\d{5}(-\\d{4})?$"
        },
        "country": {
          "type": "string",
          "const": "US"
        }
      },
      "required": [
        "firstName",
        "lastName",
        "email",
        "phone",
        "line1",
        "city",
        "state",
        "zip",
        "country"
      ],
      "additionalProperties": false
    },
    "consent": {
      "type": "boolean",
      "const": true
    },
    "couponCode": {
      "type": "string",
      "maxLength": 64
    },
    "campaignId": {
      "type": "string",
      "pattern": "^[a-f0-9]{16}$"
    }
  },
  "required": [
    "items",
    "shipping",
    "consent"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "price": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "const": "USD"
        },
        "subtotal": {
          "type": "integer",
          "minimum": 0,
          "description": "Integer USD cents"
        },
        "shipping": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "tax": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "total": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "originalTotal": {
          "$ref": "#/properties/price/properties/subtotal",
          "description": "Integer USD cents"
        },
        "discount": {
          "$ref": "#/properties/price/properties/subtotal",
          "description": "Integer USD cents"
        },
        "coupon": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "printDiscount": {
              "$ref": "#/properties/price/properties/subtotal"
            },
            "shippingDiscount": {
              "$ref": "#/properties/price/properties/subtotal"
            },
            "taxCredit": {
              "$ref": "#/properties/price/properties/subtotal"
            }
          },
          "required": [
            "code",
            "name",
            "printDiscount",
            "shippingDiscount",
            "taxCredit"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "currency",
        "subtotal",
        "shipping",
        "tax",
        "total"
      ],
      "additionalProperties": false
    },
    "validUntil": {
      "type": "integer",
      "minimum": 0,
      "description": "Unix time in milliseconds"
    },
    "expiresAt": {
      "$ref": "#/properties/validUntil"
    },
    "lineItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "photoId": {
            "type": "string",
            "format": "uuid"
          },
          "photoIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "productId": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "calendar": {
            "type": "object",
            "properties": {
              "startYear": {
                "type": "integer",
                "minimum": 2000,
                "maximum": 2100
              },
              "startMonth": {
                "type": "integer",
                "minimum": 1,
                "maximum": 12
              }
            },
            "required": [
              "startYear",
              "startMonth"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "productId",
          "quantity"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "id",
    "price",
    "validUntil",
    "expiresAt",
    "lineItems"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_orders(limit)

List your most recent orders, newest first, up to 50. Does not reconcile payments; use get_order for a specific order. Unpaid Admin Only orders require a verified admin session.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 50
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "orders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]{1,100}$"
          },
          "status": {
            "type": "string",
            "enum": [
              "creating_checkout",
              "awaiting_payment",
              "verifying_payment",
              "settling_payment",
              "paid",
              "submitting",
              "processing",
              "needs_review",
              "expired"
            ]
          },
          "price": {
            "type": "object",
            "properties": {
              "currency": {
                "type": "string",
                "const": "USD"
              },
              "subtotal": {
                "type": "integer",
                "minimum": 0,
                "description": "Integer USD cents"
              },
              "shipping": {
                "$ref": "#/properties/orders/items/properties/price/properties/subtotal"
              },
              "tax": {
                "$ref": "#/properties/orders/items/properties/price/properties/subtotal"
              },
              "total": {
                "$ref": "#/properties/orders/items/properties/price/properties/subtotal"
              },
              "originalTotal": {
                "$ref": "#/properties/orders/items/properties/price/properties/subtotal",
                "description": "Integer USD cents"
              },
              "discount": {
                "$ref": "#/properties/orders/items/properties/price/properties/subtotal",
                "description": "Integer USD cents"
              },
              "coupon": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "printDiscount": {
                    "$ref": "#/properties/orders/items/properties/price/properties/subtotal"
                  },
                  "shippingDiscount": {
                    "$ref": "#/properties/orders/items/properties/price/properties/subtotal"
                  },
                  "taxCredit": {
                    "$ref": "#/properties/orders/items/properties/price/properties/subtotal"
                  }
                },
                "required": [
                  "code",
                  "name",
                  "printDiscount",
                  "shippingDiscount",
                  "taxCredit"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "currency",
              "subtotal",
              "shipping",
              "tax",
              "total"
            ],
            "additionalProperties": false
          },
          "pricingVersion": {
            "type": "integer",
            "minimum": 0
          },
          "paymentDeadline": {
            "type": "integer",
            "minimum": 0,
            "description": "Unix time in milliseconds"
          },
          "quantity": {
            "type": "integer"
          },
          "progress": {
            "type": "object",
            "properties": {
              "productionStatus": {
                "type": "string",
                "enum": [
                  "not_submitted",
                  "queued",
                  "submitting",
                  "accepted",
                  "printing",
                  "shipped",
                  "delivered",
                  "cancelled",
                  "on_hold",
                  "needs_review",
                  "unknown"
                ]
              },
              "shipmentStatus": {
                "type": "string",
                "enum": [
                  "unknown",
                  "shipped",
                  "delivered"
                ]
              },
              "lastUpdatedAt": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "trackingUrls": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "supportStatus": {
                "type": "string",
                "enum": [
                  "none",
                  "open",
                  "waiting_customer",
                  "under_review",
                  "resolved"
                ]
              },
              "canRequestCancellation": {
                "type": "boolean"
              },
              "canRequestChange": {
                "type": "boolean"
              },
              "canRequestRefund": {
                "type": "boolean"
              },
              "cancellationGuaranteed": {
                "type": "boolean",
                "const": false
              }
            },
            "required": [
              "productionStatus",
              "shipmentStatus",
              "lastUpdatedAt",
              "trackingUrls",
              "supportStatus",
              "canRequestCancellation",
              "canRequestChange",
              "canRequestRefund",
              "cancellationGuaranteed"
            ],
            "additionalProperties": false
          },
          "productName": {
            "type": "string"
          },
          "imageCount": {
            "type": "integer"
          },
          "createdAt": {
            "$ref": "#/properties/orders/items/properties/paymentDeadline"
          },
          "paidAt": {
            "anyOf": [
              {
                "$ref": "#/properties/orders/items/properties/paymentDeadline"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unix time in milliseconds"
          },
          "paymentStatus": {
            "type": "string",
            "enum": [
              "unpaid",
              "pending",
              "paid",
              "refunded",
              "not_required",
              "needs_review",
              "expired"
            ]
          },
          "fulfillmentStatus": {
            "type": "string",
            "enum": [
              "not_submitted",
              "submitting",
              "accepted",
              "needs_review"
            ]
          },
          "trackingUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "status",
          "price",
          "pricingVersion",
          "paymentDeadline",
          "quantity",
          "createdAt",
          "paidAt",
          "paymentStatus",
          "fulfillmentStatus",
          "trackingUrls",
          "message"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "orders"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_order(orderId)

Read your saved order status without payment reconciliation or print submission. Status may lag processing; report unknown explicitly. Complete checkout on the website.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{1,100}$"
    }
  },
  "required": [
    "orderId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{1,100}$"
    },
    "status": {
      "type": "string",
      "enum": [
        "creating_checkout",
        "awaiting_payment",
        "verifying_payment",
        "settling_payment",
        "paid",
        "submitting",
        "processing",
        "needs_review",
        "expired"
      ]
    },
    "price": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string",
          "const": "USD"
        },
        "subtotal": {
          "type": "integer",
          "minimum": 0,
          "description": "Integer USD cents"
        },
        "shipping": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "tax": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "total": {
          "$ref": "#/properties/price/properties/subtotal"
        },
        "originalTotal": {
          "$ref": "#/properties/price/properties/subtotal",
          "description": "Integer USD cents"
        },
        "discount": {
          "$ref": "#/properties/price/properties/subtotal",
          "description": "Integer USD cents"
        },
        "coupon": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "printDiscount": {
              "$ref": "#/properties/price/properties/subtotal"
            },
            "shippingDiscount": {
              "$ref": "#/properties/price/properties/subtotal"
            },
            "taxCredit": {
              "$ref": "#/properties/price/properties/subtotal"
            }
          },
          "required": [
            "code",
            "name",
            "printDiscount",
            "shippingDiscount",
            "taxCredit"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "currency",
        "subtotal",
        "shipping",
        "tax",
        "total"
      ],
      "additionalProperties": false
    },
    "pricingVersion": {
      "type": "integer",
      "minimum": 0
    },
    "paymentDeadline": {
      "type": "integer",
      "minimum": 0,
      "description": "Unix time in milliseconds"
    },
    "quantity": {
      "type": "integer"
    },
    "progress": {
      "type": "object",
      "properties": {
        "productionStatus": {
          "type": "string",
          "enum": [
            "not_submitted",
            "queued",
            "submitting",
            "accepted",
            "printing",
            "shipped",
            "delivered",
            "cancelled",
            "on_hold",
            "needs_review",
            "unknown"
          ]
        },
        "shipmentStatus": {
          "type": "string",
          "enum": [
            "unknown",
            "shipped",
            "delivered"
          ]
        },
        "lastUpdatedAt": {
          "type": [
            "number",
            "null"
          ]
        },
        "trackingUrls": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "supportStatus": {
          "type": "string",
          "enum": [
            "none",
            "open",
            "waiting_customer",
            "under_review",
            "resolved"
          ]
        },
        "canRequestCancellation": {
          "type": "boolean"
        },
        "canRequestChange": {
          "type": "boolean"
        },
        "canRequestRefund": {
          "type": "boolean"
        },
        "cancellationGuaranteed": {
          "type": "boolean",
          "const": false
        }
      },
      "required": [
        "productionStatus",
        "shipmentStatus",
        "lastUpdatedAt",
        "trackingUrls",
        "supportStatus",
        "canRequestCancellation",
        "canRequestChange",
        "canRequestRefund",
        "cancellationGuaranteed"
      ],
      "additionalProperties": false
    },
    "productName": {
      "type": "string"
    },
    "imageCount": {
      "type": "integer"
    },
    "createdAt": {
      "$ref": "#/properties/paymentDeadline"
    },
    "paidAt": {
      "anyOf": [
        {
          "$ref": "#/properties/paymentDeadline"
        },
        {
          "type": "null"
        }
      ],
      "description": "Unix time in milliseconds"
    },
    "paymentStatus": {
      "type": "string",
      "enum": [
        "unpaid",
        "pending",
        "paid",
        "refunded",
        "not_required",
        "needs_review",
        "expired"
      ]
    },
    "fulfillmentStatus": {
      "type": "string",
      "enum": [
        "not_submitted",
        "submitting",
        "accepted",
        "needs_review"
      ]
    },
    "trackingUrls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      }
    },
    "message": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "status",
    "price",
    "pricingVersion",
    "paymentDeadline",
    "quantity",
    "createdAt",
    "paidAt",
    "paymentStatus",
    "fulfillmentStatus",
    "trackingUrls",
    "message"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_order_events(orderId, after)

Read your customer-safe order events in sequence. Save the last sequence as after for incremental recovery; duplicate events must be deduplicated by orderId and sequence.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{1,100}$"
    },
    "after": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "orderId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "orderId": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9_-]{1,100}$"
          },
          "sequence": {
            "type": "integer"
          },
          "type": {
            "type": "string",
            "const": "order.updated"
          },
          "occurredAt": {
            "type": "integer",
            "minimum": 0,
            "description": "Unix time in milliseconds"
          },
          "data": {
            "type": "object",
            "properties": {
              "productionStatus": {
                "type": "string",
                "enum": [
                  "not_submitted",
                  "queued",
                  "submitting",
                  "accepted",
                  "printing",
                  "shipped",
                  "delivered",
                  "cancelled",
                  "on_hold",
                  "needs_review",
                  "unknown"
                ]
              },
              "shipmentStatus": {
                "type": "string",
                "enum": [
                  "unknown",
                  "shipped",
                  "delivered"
                ]
              },
              "lastUpdatedAt": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "trackingUrls": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "supportStatus": {
                "type": "string",
                "enum": [
                  "none",
                  "open",
                  "waiting_customer",
                  "under_review",
                  "resolved"
                ]
              },
              "canRequestCancellation": {
                "type": "boolean"
              },
              "canRequestChange": {
                "type": "boolean"
              },
              "canRequestRefund": {
                "type": "boolean"
              },
              "cancellationGuaranteed": {
                "type": "boolean",
                "const": false
              },
              "paymentStatus": {
                "type": "string",
                "enum": [
                  "refunded",
                  "not_required",
                  "paid",
                  "unpaid"
                ]
              }
            },
            "required": [
              "productionStatus",
              "shipmentStatus",
              "lastUpdatedAt",
              "trackingUrls",
              "supportStatus",
              "canRequestCancellation",
              "canRequestChange",
              "canRequestRefund",
              "cancellationGuaranteed",
              "paymentStatus"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "orderId",
          "sequence",
          "type",
          "occurredAt",
          "data"
        ],
        "additionalProperties": false
      }
    },
    "nextCursor": {
      "type": [
        "number",
        "null"
      ]
    }
  },
  "required": [
    "events",
    "nextCursor"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡request_order_help(orderId, type, message, idempotencyKey)

Create an order-bound support, address-change, cancellation or refund REQUEST. Requires buyer authorization. No cancellation, refund or change is executed or guaranteed. Reuse idempotencyKey when retrying the same request; read progress capability flags first.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_-]{1,100}$"
    },
    "type": {
      "type": "string",
      "enum": [
        "general",
        "address",
        "cancellation",
        "refund",
        "damaged_prints",
        "late_delivery"
      ]
    },
    "message": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000
    },
    "idempotencyKey": {
      "type": "string",
      "pattern": "^[\\w-]{16,100}$"
    }
  },
  "required": [
    "orderId",
    "type",
    "message",
    "idempotencyKey"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "reference": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "const": "requested"
    },
    "type": {
      "type": "string"
    },
    "createdAt": {
      "type": "integer",
      "minimum": 0,
      "description": "Unix time in milliseconds"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "reference",
    "status",
    "type",
    "createdAt",
    "message"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet10 Tools