{"openapi":"3.1.0","info":{"title":"SimplyPrint (BYOK) API","version":"0.1.0","description":"SimplyPrint (BYOK) lets an AI assistant read your own SimplyPrint data through the SimplyPrint API with a key you supply (SimplyPrint API key (needs the Pro plan or an organization seat)). Read-only: 8 tools (list_printers, get_printer, get_farm_overview, list_queue_items, list_files, list_print_jobs, list_filament, get_print_statistics). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-simplyprint.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-simplyprint/docs"},"termsOfService":"https://connectorbay.com/byok-simplyprint/terms"},"servers":[{"url":"https://byok-simplyprint.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-simplyprint/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_printers":{"post":{"operationId":"list_printers","summary":"List the printers of the account with name, state, online flag, group, IP, firmware, model and temperatures. Page size i","description":"List the printers of the account with name, state, online flag, group, IP, firmware, model and temperatures. Page size is 1 to 25. Use for \"Which of my 3D printers are online and what are they doing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":25,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many printers per page (1 to 25).","title":"Page Size"},"order_by":{"anyOf":[{"enum":["status","name","online","last_online","ui","created"],"type":"string"},{"type":"null"}],"default":"name","description":"Sort order.","title":"Order By"},"compact":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return only the AI-relevant column set (smaller answer).","title":"Compact"}},"required":["company_id"],"title":"list_printersArguments","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_printer":{"post":{"operationId":"get_printer","summary":"Get one printer by id with state, group, IP, firmware, model, temperatures and camera flag. Use for \"What is printer 13 ","description":"Get one printer by id with state, group, IP, firmware, model, temperatures and camera flag. Use for \"What is printer 13 doing right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"},"pid":{"description":"Printer id from list_printers.","minimum":1,"title":"Pid","type":"integer"}},"required":["company_id","pid"],"title":"get_printerArguments","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_farm_overview":{"post":{"operationId":"get_farm_overview","summary":"Get a summary of the print farm: how many printers are online, offline, printing, paused, awaiting bed clearing, in main","description":"Get a summary of the print farm: how many printers are online, offline, printing, paused, awaiting bed clearing, in maintenance or need attention, and the per-brand breakdown. Needs the Print Farm plan. Use for \"How many of my printers are printing and which ones need the bed cleared\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"}},"required":["company_id"],"title":"get_farm_overviewArguments","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_queue_items":{"post":{"operationId":"list_queue_items","summary":"List print queue items with filename, copies left and printed, type, who added it, when and the estimated cost. Page siz","description":"List print queue items with filename, copies left and printed, type, who added it, when and the estimated cost. Page size is 1 to 200. Use for \"What is waiting in my SimplyPrint print queue\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"},"filter":{"anyOf":[{"enum":["active","done","pending","all"],"type":"string"},{"type":"null"}],"default":"active","description":"Which slice of the queue: active (default), done, pending or all.","title":"Filter"},"search":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"description":"Only items whose filename contains this text (up to 128 characters).","title":"Search"},"sort_by":{"anyOf":[{"enum":["sort_position","created","name","approval_status"],"type":"string"},{"type":"null"}],"default":"sort_position","description":"Sort by sort_position (queue order), created, name or approval_status.","title":"Sort By"},"sort_dir":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort direction: asc or desc.","title":"Sort Dir"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Items per page (1 to 200).","title":"Page Size"}},"required":["company_id"],"title":"list_queue_itemsArguments","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_files":{"post":{"operationId":"list_files","summary":"List the files and folders in a folder of the file library with name, extension, type, size, print counts and total spac","description":"List the files and folders in a folder of the file library with name, extension, type, size, print counts and total space used. Use for \"What files are in my SimplyPrint library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"},"f":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Folder id to list (0 is the root folder).","title":"F"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only files whose name contains this text.","title":"Search"},"global_search":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to search all folders of the account instead of only the folder f.","title":"Global Search"}},"required":["company_id"],"title":"list_filesArguments","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_print_jobs":{"post":{"operationId":"list_print_jobs","summary":"List print jobs (ongoing and finished) with filename, status, printer, start and end time, filament used and print time.","description":"List print jobs (ongoing and finished) with filename, status, printer, start and end time, filament used and print time. Page size is 1 to 100. Use for \"Which prints finished or failed recently on my printers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"},"page":{"description":"Page number, starting at 1.","maximum":1000,"minimum":1,"title":"Page","type":"integer"},"page_size":{"description":"Jobs per page (1 to 100).","maximum":100,"minimum":1,"title":"Page Size","type":"integer"}},"required":["company_id","page","page_size"],"title":"list_print_jobsArguments","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_filament":{"post":{"operationId":"list_filament","summary":"List the filament spools with brand, type, color, diameter, total and remaining amount and cost, plus counts per brand a","description":"List the filament spools with brand, type, color, diameter, total and remaining amount and cost, plus counts per brand and type. Use for \"Which filament spools do I have and how much is left on each\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"}},"required":["company_id"],"title":"list_filamentArguments","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_print_statistics":{"post":{"operationId":"get_print_statistics","summary":"Get print statistics for the account: total print seconds, filament used in grams, and counts of done, failed and regret","description":"Get print statistics for the account: total print seconds, filament used in grams, and counts of done, failed and regretted jobs, optionally for a date range. Needs the Pro plan. Use for \"How many hours did my printers run and how many prints failed this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"description":"SimplyPrint company id (the number in your SimplyPrint API URLs, shown in your account's API settings).","title":"Company Id","type":"integer"},"start_date":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range as a unix timestamp in seconds. Leave out for no lower bound.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range as a unix timestamp in seconds. Leave out for no upper bound.","title":"End Date"}},"required":["company_id"],"title":"get_print_statisticsArguments","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}}}}