{"openapi":"3.1.0","info":{"title":"Lumaprints (BYOK) API","version":"0.1.0","description":"Lumaprints (BYOK) lets an AI assistant read your own Lumaprints data through the Lumaprints API with a key you supply (Lumaprints API key). Read-only: 7 tools (list_categories, list_subcategories, list_subcategory_options, list_stores, list_orders, get_order, get_order_shipments). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-lumaprints.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-lumaprints/docs"},"termsOfService":"https://connectorbay.com/byok-lumaprints/terms"},"servers":[{"url":"https://byok-lumaprints.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-lumaprints/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_categories":{"post":{"operationId":"list_categories","summary":"List the product categories Lumaprints currently offers (canvas, framed canvas, metal, paper and so on) with id and name","description":"List the product categories Lumaprints currently offers (canvas, framed canvas, metal, paper and so on) with id and name. Use for \"What product categories does Lumaprints offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_categoriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_subcategories":{"post":{"operationId":"list_subcategories","summary":"List the products under a category with size limits and the minimum DPI the artwork needs. Use for \"Which canvas product","description":"List the products under a category with size limits and the minimum DPI the artwork needs. Use for \"Which canvas products does Lumaprints sell and what sizes can I order\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category_id":{"description":"Category id, from list_categories.","title":"Category Id","type":"integer"}},"required":["category_id"],"title":"list_subcategoriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_subcategory_options":{"post":{"operationId":"list_subcategory_options","summary":"List the option groups (borders, frames, hardware and so on) and their choices available for one product. Use for \"What ","description":"List the option groups (borders, frames, hardware and so on) and their choices available for one product. Use for \"What border options exist for Lumaprints stretched canvas\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subcategory_id":{"description":"Subcategory id, from list_subcategories.","title":"Subcategory Id","type":"integer"}},"required":["subcategory_id"],"title":"list_subcategory_optionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stores":{"post":{"operationId":"list_stores","summary":"List the standard stores in your account that can be used for API orders, with id and name. Use for \"Which Lumaprints st","description":"List the standard stores in your account that can be used for API orders, with id and name. Use for \"Which Lumaprints stores can I use for API orders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_storesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_orders":{"post":{"operationId":"list_orders","summary":"List the orders of a store with number, date, status, shipping method and totals. Recipient and artwork details are left","description":"List the orders of a store with number, date, status, shipping method and totals. Recipient and artwork details are left out. Paged. Use for \"What is the status of my recent Lumaprints orders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"store_id":{"description":"Store id, from list_stores.","minimum":1,"title":"Store Id","type":"integer"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"order_date_start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders on or after this date (YYYY-MM-DD).","title":"Order Date Start"},"order_date_end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only orders on or before this date (YYYY-MM-DD).","title":"Order Date End"}},"required":["store_id"],"title":"list_ordersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_order":{"post":{"operationId":"get_order","summary":"Get one order's number, date, status, shipping method, production time and cost totals. Recipient and artwork details ar","description":"Get one order's number, date, status, shipping method, production time and cost totals. Recipient and artwork details are left out. Use for \"How much did Lumaprints order 1000000001 cost in total\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_number":{"description":"Lumaprints order number, from list_orders.","title":"Order Number","type":"integer"}},"required":["order_number"],"title":"get_orderArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_order_shipments":{"post":{"operationId":"get_order_shipments","summary":"List the shipments of an order with carrier, shipping method, tracking number, ship date and the items in each parcel. U","description":"List the shipments of an order with carrier, shipping method, tracking number, ship date and the items in each parcel. Use for \"Has Lumaprints order 1000000001 shipped and what is the tracking number\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_number":{"description":"Lumaprints order number, from list_orders.","title":"Order Number","type":"integer"}},"required":["order_number"],"title":"get_order_shipmentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}