Open API - at least send gcode and check status

Just getting status via API would be hugely helpful. I have two large air filters I would like to make sure are turned on any time a print job is running. It would be nice to be able to turn them on via IFTT on my smart outlets. In the absence of this, I am going to have to use some type of particulate matter sensor. It would be nice to have both actually.

I don’t want this to take away from your request for an emergency stop, which I believe is a totally reasonable ask.

I put my printers on a smart power outlet. Directly above my machines, I have a smart smoke detector. My power outlets automatically cut power in the event the smoke detector triggers. This is a sort of last line of defense safety measure.

1 Like

Hi CookiecadNathan I am interested to think along what is the discord link

Some form of API to at minimum check status of various properties and job status is a must. I want to integrate into my HomeAssistant automation system and can’t; a let down on an otherwise great printer. The lack thereof is enough of a negative that I have paused buying more of these.

There is no negative to doing so, it doesn’t open up Bambu IP or any other possible harmful ideas. The slicer is already open source and the slicer shows all of the things we want to pull into other systems. Why force us all to come up with weird basement/frankenstein ways of doing it instead of just opening up the basics to query?

Even just a read-only REST API for status of systems/jobs/filament-levels would be nice. Starting print jobs obviously is a larger endeavor.

1 Like

Reading this thread and the responses from @SirWill is making me reconsider buying another dozen X1Cs.

For even a modest farm of 10 machines, Bambu Studio as a management tool isn’t going to work. I need a central queue of prints to be done and a ability to monitor all the machines.

Having the ability to run multiple instances of Bambu Studio is nice up until about 6 machines.

With an open api I could easily build a little Next.js or Django app with a web interface for print queue management and monitoring many machines.

All is not lost. Since Bambu Studio is open source, there is little but a lot of work stopping someone from hacking that apart and adding an api.

1 Like

Really hope Bambu can have open API access. Not asking for anything to interfere with their prints or process but something that could just pull statuses and start prints. We have a print farm and use a software called Lattice Systems to control it all but they can’t integrate without the open API.

I design most of my models in OpenSCAD, and I use the VS Code OpenSCAD extension. I love having a live preview of my model next to my editor. The only thing missing from this awesome setup is an integration with my 3D printer. It would be really cool if I could add a one-click “send to 3D printer” button in VS Code. Clicking the button would render the STL, add it to a build plate, and then send it to the 3D printer. I could even add some comments at the top of my .scad files to configure the preset, AMS slot, strength/support settings, etc.

I hope they’ll add an API so I can interact the printer, or even a way to control an instance of Bambu Studio running on the same machine.

Or maybe I can get most of the way there by creating a .3mf file and opening the file in Bambu Studio. Maybe I can write a script using something like lib3mf.

1 Like

Yup, a big +1 for this request.

As others have stated, a simple API to monitor print progress, start/stop prints, and query various hardware settings (AMS filaments for example) would be really handy.

I was all ready to hit buy on a couple of new printers but now i’m seriously considering looking elsewhere if i’m not able to monitor print status and queue jobs automatically from my own web server. I would have thought this was a huge factor for businesses of any size looking to invest in an X1/P1-based print farm.

I absolutely love my P1P and as others have said above, I don’t want to sound like i’m bashing it at all. From a print farm use case however it may be a dealbreaker if there’s absolutely no plan to implement this in the near future

1 Like

+1 For an API
Sending Gcode, checking status, getting basics metrics etc…

1 Like

Same! I want digital assistants like Chat GPT to be able to give me the status of my prints. API would make that possible

+1 It would definitely be nice to have some way to get layer status and gcode, like how you can see the gcode output of octoprint. With Octoprint you could use that gcode output to trigger an external DSLR in many different ways (rpi, arduino, a laptop, thin client, whatever hardware) which was great. I miss that a lot.

1 Like

I think there should be an API, Bambu realized, as for the Bambu X1E, that WiFi and permanent cloud usage isn’t always an option. So I think an API with basic get and post functionality would be great.
I would expect to see the following:

Get

  • Nozzle, Bed and Housing/interior temp
  • Layer
  • Percentage / print time left
  • Filename
  • Regular still image of the print
  • Preview Image from the 3MF
  • Status
  • Issue / Error ID/s
  • Attached accessories/AMS
  • Filament status with a hex color, e.g #FF0000

Post

  • Pause/Resume/stop print
  • Home/move axis
  • Turn light on or off
  • List SD Card contents and start printing
  • Heat bed/nozzle
  • Fan control

So that’s just my idea, like I used that on other machines: Prusa, Octoprint/OctoPi, Repetier and Ultimaker

4 Likes

+1 to @3DJupp api definition

1 Like

+1, I would like to use this to make a Stream Deck Plugin and maybe a Discord bot.

A nice endpoint would also be to get an image/picture from the camera. not the whole video stream.

I would love to purchase multiple Bambu printers to run a business but no API is an insurmountable dealbreaker for me. @SirWill could you at least clarify why an API is not going to happen? It seems like an extremely strange choice to me.

Actually possible, you are able to connect to the printer via MQTT (locally or cloud) and subscribe on “device/>YourPrinterSerial</report.” You will receive a general update JSON with all the info you asked for and also record any command that is sent to the printer. You can then post these messages to device/>YourPrinterSerial</request"

You can send device commands, gcode snippets, and even start a print that’s located on the SD card. (the start print message needs to set the right MD5 checksum, you can find that in your 3mf)
This includes an AMS slot mapping and also plate selection in case you slice multiple plates.

To get a sliced model or project to the printer, you can connect to the printer’s FTP server and upload whatever you want.

Be careful with any message you send! There will be no compatibility checks.

I’m currently working on a locally hosted print queue server that should make managing multiple printers and prints easy. I will share the project once it’s ready for beta.

6 Likes

I also support the OP’s request for an API. A printer queue for multiple printers is needed.

@iChris That is a awesome development! I am excited to try your solution once it is beta.

1 Like

Yes, API please! Would love to have the ability to see status and/or control via my stream deck.

1 Like

I am interested in helping test this.

I was hoping they would have a API by now that’s available even if limited.

im interested in testing.

I literally have a mysql database with the SKU’s of prints, along with filename.
If I could send the printer something like
PrintFile(‘MMMini_Axolotl_single_colour.3mf’)
or
PrintFile(‘MMMini_Axolotl_MultiColor.3mf’)
If I’m using AMS, I could always have a note of what slot each colour needs to be in, i.e. eyes slot 1, body slot 2, etc etc