# Klipper & Moonraker

> Automatically log prints from Klipper using Moonraker webhooks. Configure your printer to send completed prints to 3D Print Log.

HTML version: https://www.3dprintlog.com/docs/klipper. Last updated 2026-10-15.

## Klipper/Moonraker Notifier

---

Part of the [Log prints from Klipper](https://www.3dprintlog.com/docs/printlog-bridge) guide.

3D Print Log can receive print information from [Klipper](https://www.klipper3d.org/)/[Moonraker](https://moonraker.readthedocs.io/en/latest/), and automatically create a new Print when a print starts, and update the print when it finishes. It uses Moonraker's built-in **notifier** component, so no additional plugins are required, just a small configuration change.

Want the simplest setup, with no API key to create? The **Connect Spoolman** block on the printer's page logs prints too: it adds a notifier section that uses the same secret as the spool pickers. See [Connect Klipper via Spoolman](https://www.3dprintlog.com/docs/klipper-spoolman). The steps below, with an API key, are for people who don't want Spoolman.

> **Note: Legacy: use printlog-bridge for new setups**
>
> The notifier is the older way to log Klipper prints. For a new printer, the simplest way is the **Connect Spoolman** block (see [Spoolman for Klipper](https://www.3dprintlog.com/docs/klipper-spoolman)), which logs prints with no API key. If you set up this notifier with an API key, delete its `[notifier 3d_print_log]` section before you paste that block. For fuller logging, use [printlog-bridge](https://www.3dprintlog.com/docs/printlog-bridge): it logs the real outcome, filament per tool linked to your spools, the slicer's thumbnail and a webcam snapshot. It runs on the printer itself, or in Docker on another computer on your network.
>
> Already using the notifier? It keeps working, and so does its address, `/api/Moonraker/notifier`. When you're ready, [switch from the notifier](https://www.3dprintlog.com/docs/switch-from-notifier): install the bridge first and remove the notifier later. The steps below stay here for printers that already use it.

---

### Klipper integrations compared

There are three ways to connect a Klipper printer to 3D Print Log. They do different jobs, and you can combine them.

|  | Moonraker notifier (this page) | [printlog-bridge](https://www.3dprintlog.com/docs/printlog-bridge) | [Spoolman](https://www.3dprintlog.com/docs/klipper-spoolman) |
| --- | --- | --- | --- |
| What it does | Logs prints | Logs prints | Shows your spools on the printer, and logs prints |
| Install | A section in `moonraker.conf` | A small program, on the printer or in Docker | A section in `moonraker.conf` |
| Print outcome | Success or Failed | The real outcome, with Klipper's message | Success or Failed |
| Filament used | The job's total | Per tool, linked to your spools | Charged to the active spool, per spool |
| Pictures | None | Slicer thumbnail and a webcam frame | None |
| Spool pickers in Mainsail, Fluidd and KlipperScreen | No | No | Yes |
| Plan | Free | Free | 1 printer on Free, unlimited on Pro |

For a new printer, the Spoolman block is the simplest way to log prints and pick spools, with nothing to install. Add printlog-bridge for the real outcome, filament per tool, pictures, and spools kept in sync with the printer. While the bridge runs for a printer, it logs the prints and the block's notifier is ignored, so nothing is logged twice.

---

### Features:

Using the Klipper integration, when you start a print, it will immediately save a new Print in 3D Print Log with a status of "Printing", which you can view [on your Print List](https://www.3dprintlog.com/prints).

When a print finishes, the status inside of 3D Print Log will change to **Success** and the print will be updated with print times and filament usage.

If a print is canceled, 3D Print Log will change the status to **Failed**. The Print Time and Filament Usage will be updated.

---

### Limitations:

- Requires Moonraker to be installed with Klipper. See the [Moonraker documentation](https://moonraker.readthedocs.io/en/latest/) for installation instructions.
- Moonraker does not report the estimated print times through the notifier when a print is started, so no end time will be calculated when the print is first started.
- Moonraker does not analyze print settings, so no print settings from the slicer will be automatically recorded in the Notes section.

---

### Setup:

#### Step 1: Generate API Key on 3D Print Log

Moonraker will need an "API Key" to authenticate. This is how 3D Print Log knows what user your Moonraker is for.

- Navigate to the [Personal Api Keys](https://www.3dprintlog.com/api-keys) page by clicking on your User Profile Picture at the top-right, and selecting "Personal Api Keys".
- Click **Create new API Key**.
- Enter a new description (such as "Moonraker Key").
- Click **Submit** to generate a new key.
- Copy the new 32-character key for use in **Step 3**.
  - Note: The API Key cannot be retrieved after you leave the page, so copy it to a secure location, otherwise you will have to generate a new key.

#### Step 2: Find your Printer ID Number in 3D Print Log

Moonraker needs to know what Printer to use in 3D Print Log. We'll need to find the printer's id number in 3D Print Log.

- Navigate to the [Printers](https://www.3dprintlog.com/printers) page.
- Find the printer you want to use, and **Click** on it to enter the Edit Details page.
- In your browser's URL bar, record the ID of the printer. It is the number after https://www.3dprintlog.com/printers/####
- Copy that ID number for use in **Step 3**.

#### Step 3: Update Moonraker Configuration

- If your Klipper installation has a UI such as Fluidd or Mainsail, then navigate to the configuration page. Otherwise, SSH into your machine and navigate to the config directory.
- Find **moonraker.conf** and edit it.
- At the bottom of your config, paste the following notifier config. Replace the **APIKEYGOESHERE** with the API key you copied from step 1, and replace the **PRINTERIDHERE** with the printer id you copied from step 2.

  ```
  [notifier 3d_print_log]
  url: jsons://api.3dprintlog.com/api/Moonraker/notifier?+X-Api-Key=APIKEYGOESHERE
  events: *
  body:
      {% set payload = {"printerId": PRINTERIDHERE} %}
      {% do payload.update({"event_name": event_name}) %}
      {% do payload.update(event_args[1]) %}
      { payload|tojson }
  ```

- The `+X-Api-Key=` part of the `url` line makes Moonraker send the key in an `X-Api-Key` header rather than in the address. Keep the `+`.
- Building your own sender? The request body is described in the [OpenAPI spec](https://www.3dprintlog.com/docs/api#openapi).
- Save and restart Moonraker.

#### Step 4: Happy Printing!

The **Moonraker Integration** should now be configured. Happy printing!

---

### Troubleshooting

If the notifier does not seem to be working, you can check the logs in the moonraker.log file for **NotifyJSON**. That can point you in the right direction, if your Moonraker is having trouble reaching 3D Print Log.

If Moonraker says "failed plugins: notifier", or `moonraker.log` shows `No module named 'apprise'`, your printer's Moonraker was built without the `apprise` package the notifier needs. The Snapmaker U1 and some older Creality Sonic Pads ship that way. Delete the `[notifier 3d_print_log]` section, restart Moonraker, and use [printlog-bridge](https://www.3dprintlog.com/docs/printlog-bridge) to log that printer's prints instead. It runs on another computer and installs nothing on the printer.

If you need further help, please contact us through the [Feedback](https://www.3dprintlog.com/feedback) page and we'll be happy to help.

## Related pages

- [Log prints from Klipper](https://www.3dprintlog.com/docs/printlog-bridge.md): printlog-bridge logs every Klipper and Moonraker print to 3D Print Log by itself, with its outcome, print time, filament per tool, pictures and spools.
- [Spoolman for Klipper](https://www.3dprintlog.com/docs/klipper-spoolman.md): Show your 3D Print Log spools in the Mainsail, Fluidd and KlipperScreen spool pickers and log every print, using Moonraker's Spoolman support with nothing to install.
- [Bridge – switch from the notifier](https://www.3dprintlog.com/docs/switch-from-notifier.md): Move a Klipper printer from the Moonraker notifier to printlog-bridge. Install the bridge first, then remove the notifier section from moonraker.conf.
- [Prints](https://www.3dprintlog.com/docs/prints.md): Log every 3D print with photos, filament usage, print time, and settings. Learn how to create, edit, rate, and organize prints in 3D Print Log.

Index of every docs page in Markdown: https://www.3dprintlog.com/docs/llms.txt
