A hosted, fleet-aware replacement for the OctoPrint REST API

OctoPrint API alternative

If you have code that talks to OctoPrint's REST API today, SimplyPrint gives you a hosted fleet-wide alternative. Same per-printer operations - start, pause, resume, send G-code, fetch state - but exposed across every printer in your account through one API key, one OAuth2 flow and one base URL. Run alongside your existing OctoPrint hosts via our plugin, or skip the Pi entirely on firmware-integrated printers.

View API overview Get started for free More info & how-to
Feature image

OctoPrint + SimplyPrint = a fleet-wide cloud REST API

SimplyPrint runs alongside OctoPrint - it does not replace OctoPrint locally on the Pi. The SimplyPrint OctoPrint plugin connects your existing OctoPrint hosts to our cloud, and your existing OctoPrint API integrations on those hosts keep working. The win is fleet-wide REST: one base URL for every printer.

One REST API for every printer, not one per Pi

If you've been talking to http://pi-1.local/api/printer, http://pi-2.local/api/printer, and so on, you know the pain: per-host auth, per-host firewall holes, per-host SSL, no shared queue, no shared filament inventory. SimplyPrint replaces that with one cloud REST API across the whole fleet.

# Queue a print on a printer connected via the SimplyPrint OctoPrint plugin
curl -X POST "https://api.simplyprint.io/{companyId}/queue/AddItem" \
  -H "X-API-KEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "fileId": "your_gcode_file_id",
    "amount": 1,
    "for_printers": "17",
    "position": "top"
  }'
The printer ID is fleet-wide and stable; the host machine behind it doesn't appear in the API. Move a printer from one Pi to another, the printer ID doesn't change.

How it connects: the SimplyPrint OctoPrint plugin

SimplyPrint connects to OctoPrint-hosted printers through our official OctoPrint plugin. Install it once per host, the plugin links the printer to your SimplyPrint account, and from then on the printer shows up as a standard printer object in the SimplyPrint API.

  • OctoPrint keeps running: your existing OctoPrint UI, your existing OctoPrint plugins, and your existing OctoPrint REST integrations on that host all keep working.
  • SimplyPrint adds a fleet layer: the cloud panel, the cloud REST API, OAuth2, webhooks, file storage, multi-printer queue. None of that requires touching OctoPrint's own configuration.
  • Skip OctoPrint where supported: Prusa MK4-family printers can use SimplyPrint's open-source firmware bundle (currently in beta, no webcam yet), and Klipper printers connect via Moonraker on the existing Klipper host instead of OctoPrint. Either way the API treats them as the same printer object.

Plugin setup guide
Feature image
Feature image

Read printer state, send commands

Every printer-control endpoint works the same way whether the printer is hosted by OctoPrint or connected by another route. Pass the printer ID, get JSON back.

# List every printer in the account - identical shape regardless of host
curl "https://api.simplyprint.io/{companyId}/printers/Get" \
  -H "X-API-KEY: your_api_key_here"
Send any G-code your firmware accepts - useful for keeping existing OctoPrint G-code-driven automations working through SimplyPrint instead:
# Send a one-off G-code line through the SimplyPrint OctoPrint plugin
curl -X POST "https://api.simplyprint.io/{companyId}/printers/actions/SendGcode" \
  -H "X-API-KEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "pid": 17, "gcode": "M115" }'

What SimplyPrint adds beyond OctoPrint's REST API

OctoPrint's REST is per-host and printer-focused. SimplyPrint adds the fleet primitives. Multi-printer queue, webhooks, and persistent job history are the three most-used SimplyPrint capabilities that don't exist in OctoPrint's REST API:

  • Multi-printer queue with approval and routing: /queue/AddItem picks a compatible printer automatically, or you target a specific one. No more bespoke "which Pi is free" code.
  • Webhook push events: SimplyPrint POSTs queue, file, printer, job and filament events to your URL the moment they happen. No polling loops, no missed events.
  • OAuth2 partner-app flow: let other shops connect their own SimplyPrint account to your tool via consent screen - not a viable pattern on a per-host OctoPrint REST.
  • Filament Manager: read every spool in your shop, not just whatever is loaded into the printer's hot-end. Per-print weight tracking, brand/material/colour, drying state.
  • Job history + statistics endpoints: filter past jobs, archive them, pull cost and time data across the whole fleet, not per host.
  • MCP server for AI agents: the same fleet exposed to Claude, ChatGPT and Gemini as a native tool surface.

Feature image
Feature image

Migrating from an OctoPrint REST integration

If you have working OctoPrint REST code today, the migration is incremental - both can run side-by-side while you switch over:

  • 1. Install the SimplyPrint OctoPrint plugin on every host that already runs OctoPrint. The plugin doesn't disable OctoPrint's REST - both surfaces stay live.
  • 2. Generate a SimplyPrint API key from account settings → API.
  • 3. Port one endpoint at a time - start with read-only (/printers/Get, /queue/GetItems) before moving to writes.
  • 4. Wire webhooks to replace whatever OctoPrint event-listener pattern you were using - SimplyPrint pushes events to your URL rather than running a plugin loop on each Pi.
  • 5. Drop the per-host endpoints once your code reads / writes through SimplyPrint cloud only.
Need help mapping a specific OctoPrint endpoint to its SimplyPrint equivalent? The full API reference lists every endpoint with examples.

Plan access for the SimplyPrint cloud REST API

Same plan-gating as the main SimplyPrint API. Free and Basic plans don't expose an API; Pro and above unlock Basic API; Print Farm and above unlock Enhanced (write capability for queue mutations and starting prints).

Feature / Limit Free Basic Pro Print Farm Enterprise School Cloud Slicer Filament Manager
API requests per minute
Rolling per-minute limiter shared across all API calls for the account.
- - 60 180 600 180 - -
Basic API access
Read printer state, queue, jobs and history for every connected printer.
Enhanced API (start prints, send G-code)
Unlocks file uploads, queue mutations that start prints, direct G-code send.
Webhooks (replace OctoPrint event listeners)
Print Farm and above. Push events for queue, files, printers, jobs and filament.

Want to learn more about our plans?

View full pricing & feature comparison

OctoPrint replacement frequently asked questions

No. The SimplyPrint OctoPrint plugin runs inside OctoPrint, so OctoPrint keeps running normally. The win is that the SimplyPrint cloud API exposes every printer in the fleet through one base URL, instead of you talking to each Pi separately.
Yes. The SimplyPrint plugin sits alongside any other OctoPrint plugins you have installed. There's no removal of OctoPrint UI or REST surface - both keep working.
If your printers are supported, you can drop OctoPrint and use another route: Prusa MK4-family via SimplyPrint's open-source firmware bundle (beta, no webcam yet), or Klipper via Moonraker on the existing Klipper host. Bambu Lab printers go through the SimplyPrint Bambu Lab Client bridge on a Raspberry Pi or mini PC. Either way the API treats the printer the same.
SimplyPrint assigns a stable numeric printer ID when a printer first connects. The ID lives in the SimplyPrint account, not on the host - so moving a printer from one Pi to another doesn't change the printer ID your API code uses.
Yes - that's the recommended migration path. Install the SimplyPrint plugin, port one endpoint at a time, leave the OctoPrint REST surface live until you're confident in the SimplyPrint code path.
Yes. The OAuth2 flow lets each shop connect their own SimplyPrint account to your app via a consent screen, with no shared API keys. See the main API page for the OAuth2 details and the client-request form.

Table of Contents