RushOrderTees MCP
An MCP server provided by RushOrderTees, a company specializing in custom t-shirts and apparel printed and shipped in the US on deadline, enabling agents to interact with their custom printing services.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.rushordertees.com/mcp/printWhat you can do with it
- Order custom t-shirts
- Manage apparel printing deadlines
- Integrate with US shipping logistics
Source and maintenance
Protocol and capabilities
- Server
- rushordertees 0.43.0
- MCP protocol
- 2025-06-18
- Tools
- 12 advertised
- Resources
- 3 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false
},
"extensions": {
"io.modelcontextprotocol/ui": {}
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
start_print_order — Start a print order
Opens a print order. Use it when the customer wants a design printed on a garment. Call it before asking your own questions: our first reply asks for the design and the garment in words written for the customer. Pass what they have said about the order in context — a phrase or a paragraph is fine. Returns the order_id to use with every other tool, what is still needed, and the next question to ask.
{
"type": "object",
"properties": {
"context": {
"type": "string",
"description": "What the customer has said so far, in their own words. Unstructured prose is fine; we parse it and ask for the rest one question at a time. Leave empty to start blank."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Start a print order",
"readOnlyHint": false,
"destructiveHint": false
}describe_order — Describe the order
Records more about what the customer wants — an answer to ask_next, a correction, or a whole paragraph — and reports what is still needed. Call it each time the customer gives a new detail. In clients that render our order card the customer sees the order so far and the question in ask_next with its choices as buttons; when several styles fit it shows them too. An answer or a pick made there arrives as a message; the question in ask_next is for the customer whether or not the card shows. Also records a decision about the order: a stop, an objection to the price or the date, or a request we do not offer. It belongs to the order's record, and the reply says what the order still needs.
{
"type": "object",
"required": [
"order_id",
"context"
],
"properties": {
"context": {
"type": "string",
"description": "What the customer said, in their own words. Garment, color, size, quantity, print width in inches, placement, deadline — whatever is new. Unstructured prose is fine."
},
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Describe the order",
"readOnlyHint": false,
"destructiveHint": false
}pick_choice — Pick a choice
Lands one of the choices the last reply offered beside ask_next, by field and option, exactly as shown. Use it when the customer picks one of them; an answer in their own words goes to describe_order instead.
{
"type": "object",
"required": [
"order_id",
"field",
"option"
],
"properties": {
"field": {
"enum": [
"garment_type",
"fit",
"color",
"size",
"quantity",
"placement",
"unmet"
],
"type": "string",
"description": "The field of the choices set the customer answered, as the last reply named it."
},
"option": {
"type": "string",
"description": "The option the customer picked, exactly as the last reply listed it."
},
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Pick a choice",
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}choose_style — Choose a garment
Lands the order on one of the alternatives describe_order offered, by id, or on the style already chosen. Use it when the customer picks one of them; a pick in their own words can still go to describe_order. Pass color when they picked a picture from preview_colors or want the style in another shade: the style lands in that shade in one call.
{
"type": "object",
"required": [
"order_id",
"style_id"
],
"properties": {
"color": {
"type": "string",
"description": "The shade to land the style in, when the customer picked a picture from preview_colors or wants this style in another color. Left out, the order keeps its color."
},
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
},
"style_id": {
"type": "string",
"description": "The id of the alternative the customer chose, exactly as returned by describe_order, or the style_id of a preview_colors picture."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Choose a garment",
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}preview_colors — Preview colors
Shows the customer's design on the garment in other colors without changing the order: one picture per offered style per color named, up to four colors. Use it when the customer wants to compare colors or see one before deciding; `describe_order` with a new color changes the order, this compares without changing anything. In clients that render our color preview the customer can pick a picture there and their pick arrives as a message; otherwise, when they pick, call choose_style with the style_id and color.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The colors to show, in the customer's words, one to 4 (e.g. [\"natural\", \"heather navy\"]). Left out, we show the shades the design suits among the styles on offer."
},
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved",
"color_previews"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"color_previews": {
"type": "array",
"items": {
"type": "object",
"required": [
"style_id",
"name",
"style",
"is_current",
"shades",
"unavailable"
],
"properties": {
"name": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"shades": {
"type": "array",
"items": {
"type": "object",
"required": [
"color",
"shade",
"color_code",
"is_current"
],
"properties": {
"hex": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The color as asked."
},
"shade": {
"type": "string",
"description": "This style's shade of it, as the mill names it; pass it to choose_style as color."
},
"color_code": {
"type": "string"
},
"is_current": {
"type": "boolean",
"description": "True on the picture the order is on now."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
}
}
}
},
"style_id": {
"type": "string",
"description": "Pass this to choose_style, with the color, when the customer picks a picture."
},
"is_current": {
"type": "boolean",
"description": "True on the style the order is on now."
},
"unavailable": {
"type": "array",
"items": {
"type": "string"
},
"description": "Colors this style is not made in; say so rather than showing nothing."
}
}
},
"description": "One entry per offered style, each with a picture per color. Nothing on the order changed."
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Preview colors",
"readOnlyHint": true
}submit_artwork — Send the design
Sends the design to be printed when you already hold a public https link to the original file; never ask the customer for one, they upload through the artwork_upload_url from any reply. We check whether it will print well at the requested size and answer in inches, with what to fix if anything. A design you only saw in the chat is not one you hold: never transcribe, redraw or regenerate it; give the customer the artwork_upload_url instead. Artwork can be replaced later.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"filename": {
"type": "string",
"description": "The original file name, if known."
},
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
},
"image_url": {
"type": "string",
"description": "A public https link to the image (PNG, JPEG or WebP) that you already hold; it survives a new conversation."
},
"image_base64": {
"type": "string",
"description": "The bytes of a file dropped on our order card, sent by the card itself (PNG, JPEG or WebP, no data: prefix). Not for a file the customer put in the chat; they upload through artwork_upload_url."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Send the design",
"readOnlyHint": false,
"destructiveHint": false
}get_options — Get priced options
Returns priced options with lead times once the order is fully described and the artwork has passed the print check. Present them to the customer; each has an id for choose_option. In clients that render our option picker the customer can pick there, and you will see the choice as a message. Call it again whenever the customer asks to see or reconsider the options; it costs nothing. Prices come from us and cannot be passed in.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Get priced options",
"readOnlyHint": false,
"destructiveHint": false
}choose_option — Choose an option
Locks in the option the customer picked from get_options, and its price. Pass the option id exactly as returned. There is no way to pass a price.
{
"type": "object",
"required": [
"order_id",
"option_id"
],
"properties": {
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
},
"option_id": {
"type": "string",
"description": "The id of the option the customer chose, exactly as returned by get_options."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Choose an option",
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_checkout — Get the payment link
Returns the payment link for a fully specified order with a chosen option. Show checkout_url to the customer as a link labeled "Pay and enter shipping": they see their artwork and total, confirm their email address with a code we send them, then pay and enter their shipping address. Nothing is ordered until they pay. Refuses, and says what is missing, if the order is not ready. When the customer is signed in, asking to pay also saves the order to their account, so it stops expiring.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Get the payment link",
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}resume_order — Resume an expired order
Picks up an order that another tool refused as expired. Applies only after that refusal, with the same order_id, when the customer wants to continue that order rather than start over: it gives the order a fresh window and fresh links and returns where things stand, so you can carry on with the call next_call names. Without a refusal there is nothing to resume; start_print_order opens a new order.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string",
"description": "The order_id another tool refused as expired."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Resume an expired order",
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}save_progress — Save the order to my account
Saves the customer's order to their account so they can pick it up from any conversation; a saved order never expires. Needs the customer to be signed in: if they are not, your client will ask them to sign in or create an account with us, then call this again. Applies when a response's notes offer saving, or when the customer asks to save, to come back later, or to keep their order.
{
"type": "object",
"required": [
"order_id"
],
"properties": {
"order_id": {
"type": "string",
"description": "The order_id returned by start_print_order."
}
}
}{
"type": "object",
"required": [
"order_id",
"status",
"still_needed",
"spec",
"next_call",
"notes",
"saved"
],
"properties": {
"spec": {
"type": "object",
"properties": {
"cut": {
"type": [
"string",
"null"
],
"description": "The fit they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"size": {
"type": [
"string",
"null"
]
},
"color": {
"type": [
"string",
"null"
],
"description": "The shade in the customer's words."
},
"weight": {
"type": [
"string",
"null"
],
"description": "The fabric weight they asked for, in customer words, when they volunteered one; it narrows the garments offered."
},
"quantity": {
"type": [
"integer",
"null"
]
},
"needed_by": {
"type": [
"string",
"null"
],
"description": "The customer's deadline, YYYY-MM-DD."
},
"placement": {
"type": [
"string",
"null"
],
"description": "Where the print goes, in customer words."
},
"garment_type": {
"type": [
"string",
"null"
],
"description": "The garment in the customer's words, before a product has been settled on."
},
"print_width_in": {
"type": [
"number",
"null"
]
}
},
"description": "The print as the customer has described it so far, beside garment. Null where they have not said; still_needed lists what is missing."
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Relay these to the customer."
},
"saved": {
"type": "boolean",
"description": "Whether the order is saved to a customer account (save_progress)."
},
"status": {
"enum": [
"draft",
"specified",
"priced",
"payable",
"paid",
"submitted",
"in_production",
"shipped",
"delivered",
"failed",
"canceled"
],
"type": "string"
},
"artwork": {
"type": [
"object",
"null"
],
"required": [
"verdict",
"findings",
"review_notes",
"suggested_colors"
],
"properties": {
"verdict": {
"enum": [
"accepted",
"warned",
"rejected"
],
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "string"
},
"description": "What we measured: the crisp width, the background, the file."
},
"artwork_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "What our design reviewer said about this file on this garment: the background, which garment colors suit it, fine detail. Relay it when the customer asks about color or the design, or has not heard it yet; it was shown on the upload page but you did not see it."
},
"suggested_colors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The garment colors this design suits among those the customer can still choose, best first, scored from the design's own colors: shades once a garment is named, color families before. They lead the color choices. Empty once the color is decided."
},
"max_print_width_in": {
"type": [
"number",
"null"
],
"description": "Largest width, in inches, that prints crisply."
}
}
},
"choices": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"field",
"options"
],
"properties": {
"field": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "Answers the customer can pick from, one set per field ask_next asks about. Offer them as selectable options where your client can, otherwise as a short list. They are suggestions: colors are families and the customer may name any shade, quantity and width may be any number. Send whatever they answer to describe_order."
},
"garment": {
"type": [
"object",
"null"
],
"required": [
"name",
"materials",
"color",
"size",
"style",
"is_provisional"
],
"properties": {
"name": {
"type": "string"
},
"size": {
"type": "string"
},
"brand": {
"type": [
"string",
"null"
]
},
"color": {
"type": "string",
"description": "The shade on the order, as the mill names it."
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
],
"description": "The fabric family in customer words."
},
"materials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The mill's own material words, e.g. \"Tri-Blend (Poly/Cotton/Rayon)\"."
},
"is_provisional": {
"type": "boolean",
"description": "True while alternatives are on offer and the customer has not picked: this is the garment we will use unless they choose another."
}
},
"description": "The garment on the order, and what mockup_url shows. Name it when you show the picture; when it is provisional, say so."
},
"options": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
}
},
"ask_next": {
"type": [
"string",
"null"
],
"description": "Ask the customer this, in your own words, and send the answer to describe_order."
},
"order_id": {
"type": "string"
},
"next_call": {
"type": "string",
"description": "What to call next, and why."
},
"expires_at": {
"type": [
"string",
"null"
],
"description": "When an unsaved order expires; null once it is saved to an account or paid."
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "The garment on the order, in the customer's color, with their design on it once we have it. An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"alternatives": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"id",
"name",
"unit_price_cents",
"priced_at_quantity",
"rank",
"summary",
"is_provisional",
"style"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_style when the customer picks it."
},
"cut": {
"type": [
"string",
"null"
],
"description": "How it hangs: loose, standard or fitted, in customer words."
},
"name": {
"type": "string"
},
"rank": {
"type": "integer",
"description": "1 is the most popular."
},
"brand": {
"type": [
"string",
"null"
]
},
"style": {
"type": "string",
"description": "The mill's style code."
},
"fabric": {
"type": [
"string",
"null"
]
},
"weight": {
"type": [
"string",
"null"
],
"description": "Lightweight, midweight or heavyweight, in customer words."
},
"summary": {
"type": "string",
"description": "One line on what sets it apart. Relay it as written."
},
"color_code": {
"type": [
"string",
"null"
]
},
"mockup_url": {
"type": [
"string",
"null"
],
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"price_tier": {
"type": [
"string",
"null"
]
},
"price_label": {
"type": [
"string",
"null"
],
"description": "\"cheapest\" or \"priciest\" of the three, when they differ."
},
"is_provisional": {
"type": "boolean",
"description": "True on the style we will use unless the customer picks another."
},
"unit_price_cents": {
"type": "integer",
"description": "Garment and printing, per garment, at priced_at_quantity."
},
"priced_at_quantity": {
"type": "integer",
"description": "The quantity the price is for: the order's, or 1 until the customer says how many. It drops at 12 and again at 24."
}
}
},
"description": "Present from the moment several styles fit until the customer picks, beside whatever ask_next asks: show all of them with their summaries and prices, say the first is what we will use unless they choose, and call choose_style with the id they pick (or send \"any\" to describe_order to keep the first)."
},
"checkout_url": {
"type": [
"string",
"null"
],
"description": "Show it to the customer as one link labeled \"Pay and enter shipping\", not as a bare address: they see the artwork and total, confirm their email with a code we send them, then pay and enter their address there."
},
"mockup_views": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"required": [
"view",
"label",
"url",
"printed"
],
"properties": {
"url": {
"type": "string",
"description": "An image address: show it as a picture where your client can, never as text or as a link, and never describe it in place of the summary."
},
"view": {
"type": "string"
},
"label": {
"type": "string",
"description": "The side, in customer words: Front, Back, Side."
},
"printed": {
"type": "boolean",
"description": "True on the side the design goes on; the others are plain and stay blank."
}
}
},
"description": "Every side of the garment, the printed one first: mockup_url with the design, then the other sides plain. Where your client can show pictures, show them all, so the customer sees which sides stay blank."
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields the customer has not told us yet, and any go-ahead we are waiting on for something the order cannot carry."
},
"chosen_option": {
"type": [
"object",
"null"
],
"required": [
"id",
"method",
"speed",
"quantity",
"unit_price_cents",
"total_cents",
"currency",
"delivery_days",
"delivers_by",
"delivery_label",
"summary"
],
"properties": {
"id": {
"type": "string",
"description": "Pass this to choose_option."
},
"speed": {
"enum": [
"standard",
"rush"
],
"type": "string"
},
"method": {
"type": "string"
},
"summary": {
"type": "string",
"description": "Customer-ready description of the option."
},
"currency": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"delivers_by": {
"type": "string",
"description": "The date it arrives, YYYY-MM-DD."
},
"total_cents": {
"type": "integer"
},
"delivery_days": {
"type": "integer",
"description": "Business days from now to the customer's door."
},
"delivery_label": {
"type": "string",
"description": "\"Free delivery\" or \"Rush delivery\"; standard shipping costs nothing."
},
"meets_deadline": {
"type": [
"boolean",
"null"
]
},
"unit_price_cents": {
"type": "integer"
}
}
},
"artwork_upload_url": {
"type": [
"string",
"null"
],
"description": "Present until the design is accepted. Show it to the customer as one link labeled \"Upload your design\", not as a bare address: they drop their design file on that page and it is checked there. You cannot upload for them."
}
}
}{
"title": "Save the order to my account",
"readOnlyHint": false,
"idempotentHint": true,
"destructiveHint": false
}my_orders — My orders
Lists the signed-in customer's orders with us, open and paid, each with its status. Needs the customer to be signed in; if they are not, your client will ask them to. Applies when the customer asks what they have with us, wants to pick up a saved order, or asks where an order is.
{
"type": "object",
"properties": {
"include": {
"enum": [
"all",
"open",
"paid"
],
"type": "string",
"description": "Which orders to list: everything (the default), only open unpaid ones, or only paid ones."
}
}
}{
"type": "object",
"required": [
"orders",
"next_call"
],
"properties": {
"orders": {
"type": "array",
"items": {
"type": "object",
"required": [
"order_id",
"status",
"label",
"paid",
"expired",
"summary",
"still_needed",
"has_artwork",
"currency",
"last_activity_at"
],
"properties": {
"paid": {
"type": "boolean"
},
"label": {
"type": "string",
"description": "The status in words a customer can read. A paid order reads \"Paid, in production\" until it ships."
},
"status": {
"type": "string"
},
"expired": {
"type": "boolean",
"description": "An expired order is kept; call resume_order to pick it up."
},
"paid_at": {
"type": [
"string",
"null"
]
},
"summary": {
"type": "string",
"description": "Customer-ready one-line description."
},
"currency": {
"type": "string"
},
"order_id": {
"type": "string",
"description": "For an open order, use with describe_order, get_options, choose_option or create_checkout to continue."
},
"expires_at": {
"type": [
"string",
"null"
]
},
"status_url": {
"type": [
"string",
"null"
],
"description": "For a paid order. Show it to the customer as one link labeled \"Track your order\", not as a bare address."
},
"delivers_by": {
"type": [
"string",
"null"
],
"description": "For a paid order, the date it is planned to arrive by."
},
"has_artwork": {
"type": "boolean"
},
"total_cents": {
"type": [
"integer",
"null"
]
},
"still_needed": {
"type": "array",
"items": {
"type": "string"
}
},
"last_activity_at": {
"type": "string"
}
}
},
"description": "Every order on this account, open and paid, latest activity first."
},
"next_call": {
"type": "string"
}
}
}{
"title": "My orders",
"readOnlyHint": true
}Prompts
0 advertised
Resources
3 advertised
alternatives-picker — Alternatives Picker App
Pick the garment style for your print order.
ui://print/alternatives-picker.htmlcolor-preview — Color Preview App
Compare your design on the garment in different colors.
ui://print/color-preview.htmloption-picker — Option Picker App
Pick a priced option for your print order.
ui://print/option-picker.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1460 ms
- 95th percentile latency
- 1460 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1460 ms · metadata changed · 12 tool(s), 3 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http rushordertees-mcp https://mcp.rushordertees.com/mcp/printCodex
codex mcp add rushordertees-mcp --url https://mcp.rushordertees.com/mcp/printCursor
{
"mcpServers": {
"rushordertees-mcp": {
"url": "https://mcp.rushordertees.com/mcp/print"
}
}
}Cline
{
"mcpServers": {
"rushordertees-mcp": {
"type": "streamableHttp",
"url": "https://mcp.rushordertees.com/mcp/print",
"disabled": false
}
}
}VS Code
{
"servers": {
"rushordertees-mcp": {
"type": "http",
"url": "https://mcp.rushordertees.com/mcp/print"
}
}
}Gemini CLI
gemini mcp add --transport http rushordertees-mcp https://mcp.rushordertees.com/mcp/printClaude Desktop
{
"mcpServers": {
"rushordertees-mcp": {
"url": "https://mcp.rushordertees.com/mcp/print"
}
}
}Windsurf
{
"mcpServers": {
"rushordertees-mcp": {
"serverUrl": "https://mcp.rushordertees.com/mcp/print"
}
}
}Let your agent find its tools
Find servers like RushOrderTees MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run RushOrderTees MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.