Typescript Client for the Ultimaker API

In order to create our Brokered Additive Manufacturing demonstrators, we need to be able to interface and send commands back and forth from the printers. To achieve this, we are accessing the Application Programming Interfaces (APIs) found on Additive Manufacturing machines. This enables our web-based machine agents to interface with a machine and represent it in our Brokered Additive Manufacturing networks. The web-based agent then bids for work and successfully wins a job then it can send it directly to the machine for printing. The APIs also enables the web-based agent to monitor and evaluate the condition of the machine, and report this back to the network as and when it is required.


To achieve this connection between our web-based agent and AM APIs, we produce clients that are packages of code that make it easy to connect and interface with the API from the client-side. We are currently developing a set of clients for the range of AM machines in our lab. The first of which is the Ultimaker client that interfaces with Ultimaker 3D printers.

The code is available on GitHub with complete set of docs detailing the client and available functions.

It is written in Typescript and is isomorphic enabling it to run in both Server (Node.js) and Browser javascript environments. It is still in its early days but covers the majority of the Ultimaker API endpoints and implements some unit testing to ensure it functions as intended. The responses to all the API call have been typed so you will know what to expect from your functions when you call them.

We have opensourced the project and are keen to have more collaborators to help maintain and grow the clients capability. We hope people will find it useful and encourage more innovations in how we network and manage our AM services.

Watch this space for more AM machine client packages and are keen to hear how you will use the code.

Leave a Reply

Your email address will not be published. Required fields are marked *