build_variant_config
ChatGPTTurn a plain description of a print (paper, size, border preset, frame type + moulding, glass, mount colour + size, fixing, or a substrate) into the exact variant_config object quote_print and place_order accept, applying the website's production rules. Returns the config plus the resulting physical layout (borders, mount widths, framed outer size) or a list of rule violations.
choose_artwork
ChatGPTSTART HERE when the customer wants to order a print from theprintspace and hasn't said which image. Shows their Creative Hub library as a visual picker (real thumbnails) with a tile for uploading a new image from their device — so uploading is always on offer, never something they have to ask for. In clients that support panels the customer picks (or uploads) right there and you are told which image they chose; otherwise present the returned list, and offer upload.upload_url for a new file. The first thumbnails are also attached for you to look at, in the same order as images.
create_upload_link
ChatGPTCreates a one-hour upload session so the customer can upload artwork files from their own computer or phone into their Creative Hub library: JPEG, PNG or TIFF, up to 200 MB each, several files. Takes no input. Returns upload_url (a page the customer opens in a browser to upload) and issued_at; in clients that support panels, an upload panel is shown in the chat instead. Uploaded files are then found with list_library_images using uploaded_after = issued_at. This tool does not upload anything itself.
design_print
ChatGPTTHE FAST PATH — one call that turns a plain description of a print into the exact variant_config, prices it and renders the picture, all at once. Give paper, size and any border / frame / mount / glass / fixing (or a substrate); add image_url to get the preview (returned as an image AND as preview_url — always give the customer preview_url as a plain link, never as a markdown image; a preview panel is shown where the client supports panels) and delivery { country, postcode } to get the production price, delivery methods, VAT and totals. Prefer this over calling build_variant_config, quote_print and render_preview one after another. Names are matched loosely ("photo rag", "oak thin") and a wrong option comes back with the valid choices, so you can usually skip get_catalogue. Pass the returned variant_config to place_order unchanged.
get_catalogue
ChatGPTEverything orderable from theprintspace: papers with size limits, frame types, mouldings (with physical widths), glass, window-mount colours and size presets, hanging fixings, mounting substrates each with a customer-facing description plus colours/fixings/backings, the production rules, and the exact variant_config vocabulary. Call this first.
get_order
ChatGPTOne of the customer's theprintspace (Creative Hub) orders placed through this API: status, items, totals, invoice URL and tracking when dispatched. An order still awaiting payment by link carries payment.checkout_url (the same short pay link, while the Stripe page is open — give it exactly as returned) or payment.status "link_expired".
get_payment_method
ChatGPTRead-only: whether the customer has a saved card for place_order to charge — has_card, and if so brand, last4, expiry and the Stripe branch. Having no card is fine: place_order then returns a Stripe payment link, and paying there saves the card for next time. This tool never adds, changes or removes a card.
list_library_images
ChatGPTThe customer's Creative Hub image library, newest first: id, name, the full-resolution artwork_url to order with, the 1500 px artwork_preview_medium_url to preview with, thumbnail, pixel dimensions and DPI. Pass uploaded_after (the issued_at from create_upload_link) to find what the customer just uploaded.
list_orders
ChatGPTThe customer's theprintspace (Creative Hub) orders placed through this API, newest first (paginated).
place_order
ChatGPTCreate the order. With a saved card it is charged immediately. With NO saved card nothing is charged: the reply carries payment.checkout_url — a short Creative Hub link that opens Stripe's secure payment page; give it to the customer exactly as returned — and paying there saves their card for next time. Only call after the customer has seen the price and explicitly confirmed the items, address, delivery method and total. Idempotent: the same idempotency_key (or, when omitted, the same request) is never charged twice, and a retry returns the same payment link. A 402 authentication_required reply means the bank wants 3-D Secure — give the customer the next_action_url to complete it; the order activates on success.
quote_print
ChatGPTPrice one or more configured prints for a destination without creating anything: per-line production price, the eligible delivery methods with prices, VAT where it applies, and totals. Use the delivery method keyword in place_order.
render_preview
ChatGPTRender a picture of the print exactly as configured — paper borders, window mount and frame moulding to scale, on a neutral wall. Same fields as build_variant_config plus image_url. (design_print does this AND prices it in one call — prefer that.)
show_options
ChatGPTShows the customer theprintspace's own photographs of the options for one step — papers, frames (styles, mouldings, glass, window mounts, hanging fixings) or mounting boards and their fixings — as a panel in the chat where panels are supported, and returns the same items as text (id, name, description, picture URL). Call it whenever you present those options, before describing them; never illustrate them with pictures from anywhere else. The customer can tap an option in the panel and you are told which.
upload_artwork
ChatGPTAdds one image to the customer's Creative Hub library from a source the server can fetch: image_url (a public https URL, or a Dropbox, Google Drive, OneDrive or SharePoint share link that anyone with the link can view), or file (an image the customer attached to the chat — ChatGPT supplies a temporary download link). Accepts JPEG, PNG or TIFF up to 200 MB. Returns the new library entry: artwork_url (full resolution, for ordering), the 1500 px preview URL, pixel dimensions, and native and recommended print sizes. One of image_url or file is required.