Connect your shopping assistant.
Use REST or Model Context Protocol (MCP) to find a canvas, check supported options, get a current quote, and hand the selection to the customer. Both connections use the store’s catalog and pricing service.
Connect with MCP
In an MCP-compatible client, add a remote server using this URL and choose Streamable HTTP. Authentication: none.
https://canvasrack.com/mcp
The endpoint uses stateless HTTP POST and returns JSON responses. Your MCP client should initialize the connection, discover tools, and send Accept: application/json, text/event-stream with the negotiated protocol version. A persistent SSE GET connection is not offered. Tool results contain JSON text; check isError before using them.
REST endpoints & MCP tools
REST base URL: https://canvasrack.com/api/v1. Send JSON with Content-Type: application/json for POST requests. Public server-to-server requests do not need a browser cookie or CSRF token.
| REST endpoint | MCP tool | Use it to |
|---|---|---|
GET /products | search_products | Find products; filter REST requests with q and category. |
GET /products/{id} | get_product | Read current product details. |
GET /products/{id}/options | get_product_options | Read supported choices and a configuration template. |
POST /validate | validate_configuration | Validate size, orientation and quantity. |
POST /quotes | request_quote | Get integer USD cents and a quote valid for 15 minutes. |
POST /review-links | create_review_link | Create a customer handoff link valid for one hour. |
Example product ID: cr-canvas-16x24. Supported canvas sizes are 8×12, 12×18, 16×24, 20×30 and 24×36 inches. Configuration and quote tools support canvas; apparel is discovery-only and requires a separate quote.
Get a quote
curl 'https://canvasrack.com/api/v1/quotes' \
-H 'Content-Type: application/json' \
-d '{"items":[{"product":"canvas","size":"16x24","orientation":"landscape","quantity":1}]}'
The quote covers the selected canvas and applicable quantity discount. Optional checkout upgrades and delivery choices are selected by the customer; applicable tax is calculated by Stripe before payment. Refresh an expired quote before presenting a price.
Hand the selection to the customer
curl 'https://canvasrack.com/api/v1/review-links' \
-H 'Content-Type: application/json' \
-d '{"product":"canvas","size":"16x24","orientation":"landscape","quantity":1}'
Open the returned review_url in the customer’s browser. It restores size, orientation and quantity, and refreshes pricing. The customer then uploads a photo, checks the crop and quality, approves the artwork, and continues to checkout. Links contain only opaque tokens and expire after one hour.
Limits & errors
Public API requests are limited to 120 per IP per minute, and MCP to 60. JSON inputs are bounded to 32 KB, with at most 20 canvases per quote. Respect HTTP 429 and Retry-After. Invalid configurations return 400, unavailable resources 404, and expired review links 410. Inspect the returned error message and MCP isError.
Customer privacy & control
Public tools cannot access private photos, carts, orders or administration, approve artwork, charge a customer, or start fulfillment. Do not include customer contact details or photo data in discovery, quote or review-link requests. Private browser routes require a session and CSRF protection for changes.
Connecting through MCP does not automatically list CanvasRack in ChatGPT or Google Shopping. Merchant Center verification and marketplace registration remain separate setup steps. The preview merchant feed marks products unavailable and must not be submitted while the store is in test mode.