The SimplyPrint API: a quick intro for developers
The SimplyPrint API: a quick intro for developers
SimplyPrint has a full REST API. Most of what you do in the panel - adding to the queue, starting prints, reading printer state, uploading files, managing filament - is reachable as a JSON endpoint. This article is the quick orientation: who can use it, where to get a key, the base URL, and where the real reference lives.
The full endpoint reference, with request and response shapes for every call, is at apidocs.simplyprint.io. This article does not repeat that - it just gets you started.
Which plan you need
It depends on how your integration connects: with an API key or through OAuth2.
With an API key (your own scripts and tools, using X-API-KEY):
- Pro and up - the API is available. You can read printer state, jobs, history, filament and tags, upload files and use the rest of the API reference.
- Print Farm and up - adds the queue-management endpoints: adding, updating, reordering and removing queue items, emptying the queue, fetching the next items and marking them done, and the farm overview. On Pro, these endpoints refuse API-key calls.
- Free, Basic, Cloud Slicer and Filament Manager - no API key access.
API-key requests are rate limited per user, counted over one minute. If you go over the limit, the API answers with HTTP 429 ("You have reached the API rate limit") for the next 60 seconds:
Plan | Requests per minute |
|---|---|
Pro | 60 |
Print Farm | 180 |
School | 180 |
Enterprise | 600 |
With OAuth2 (an app that other SimplyPrint users connect to their own account): the API-key plan requirement doesn't apply, so most endpoints work for users on any plan, including Free. Endpoints that belong to a paid feature still need that feature on the user's plan. For example, adding to the print queue needs a plan that includes the print queue. What an app may do is also limited by the scopes it was approved for and the user agreed to. See OAuth2 for partner apps below.
How to get an API key
- Sign in to the panel.
- Click your name in the top bar, open Your account, then the API tab (or go straight to simplyprint.io/panel/user_settings/api).
- In the API Token section, click Generate API token.
- Copy the token - it's shown once, so store it somewhere safe.
Check: the section now shows Regenerate API token and Remove API token.
Each user has one API token. Regenerate API token creates a new one and the old one stops working at once.
The base URL
Every API call hits this shape:
https://api.simplyprint.io/{companyId}/{endpoint}
The number in the URL is your account ID, not an API version. So https://api.simplyprint.io/123/account/Test calls the account/Test endpoint for account 123. Your account ID is shown on the same API tab, as Company ID, next to your full Base URL.
Authentication is one header: X-API-KEY: your_key_here. No tokens to rotate, no signing - just the header on every request.
All responses come back as JSON and include a status boolean plus an optional message, so error handling is the same shape across every call.
Where the real docs live
The full endpoint catalogue lives at apidocs.simplyprint.io - every endpoint, request body, response shape, error code, and the OAuth2 flow with its scope list.
For AI agents and tooling, there's also:
- apidocs.simplyprint.io/llms.txt - the full reference in one file, ready to drop into an LLM context window.
- apidocs.simplyprint.io/api/index.json - a structured catalogue of every endpoint if you want to build tooling on top of it.
OAuth2 for partner apps
API keys are perfect for your own integration against your own account. If you're building a product that other SimplyPrint customers will connect to their account, use OAuth2 instead. Each customer authorises via a consent screen and you never see their credentials.
This is the flow our official Cura integration uses, and the flow we provision for partner integrations on Zapier, n8n, Make and Activepieces.
To get an OAuth2 client provisioned, submit the OAuth2 Client Request Form with your redirect URIs, requested scopes, and a one-paragraph description of what your app does.
Some actions aren't open to OAuth2 apps by default. Starting prints is the main one: we allow it for certain apps, case by case, because starting a print well (filament mapping, start options, every printer brand's quirks) is something we prefer to keep in the SimplyPrint interface. Uploading files and sending them to a user's SimplyPrint account is open. If your app needs to start prints, say so in the request form and describe what you want to do.
Commercial apps are welcome to apply the same way: describe your product and how it will use the API in the request form.
Webhooks for push events
The REST API is the pull side - you ask, SimplyPrint answers. For the push side - "a print just finished", "a queue item was approved", "a print was paused" - use webhooks. SimplyPrint POSTs the event to your endpoint so you don't have to poll.
Webhooks are part of Print Farm and above. See All about the Webhooks feature for the event list and setup.
AI agents: use the MCP server
If your integration is an AI agent - Claude, Claude Code, or any other MCP-compatible client - you can skip the REST endpoints entirely and connect via the SimplyPrint MCP server. The agent gets a native tool surface (add to queue, inspect printer, list jobs, adjust filament, and so on) without you writing any endpoint glue. OAuth2-based, scope-gated, same account.
The MCP integration is documented on the MCP feature page.
FAQ
Can someone with my API key change my password or billing?
No. An API key can only call the endpoints listed in the API reference, and it acts with your user's permissions in the account. Changing your password and managing your subscription aren't part of the API. Treat the key like a password anyway: anyone who has it can do what your user can do through the API, such as starting and cancelling prints. If a key leaks, click Regenerate API token (or Remove API token) and the old key stops working.
Is there an official SDK?
Not yet. The API is plain JSON over HTTPS, so any modern HTTP client gives you a usable surface in a few lines - cURL works, Postman works, your language's standard HTTP library works. If you need a language-specific SDK for a serious integration, get in touch.
Is there a sandbox or test environment?
There's no public sandbox - integrations build against real accounts. The usual pattern is to create a separate free or Pro account for development, generate its own API key, build against it, then swap to your production key. For larger partner integrations we can provision a dev-friendly setup on request.
What's the API version - is there a v1, v2?
The number in the URL is your account ID, not a version. There is no /v1 today - we add endpoints to the API but don't break the existing surface, so the current API doesn't need a version prefix.
If we ever ship a major-major change - breaking response shapes, a different auth model, or a URL restructure - it will land behind a /v2 (or similar) prefix and the existing API will keep working alongside it. None of that is on the roadmap right now, just calling out how we'd handle it if the day came.
Does it work with my Prusa / Bambu Lab / Creality / OctoPrint printer?
Yes. From the API's perspective every printer is the same printer object - Prusa MK4, Bambu Lab X1C, Creality K-series, an OctoPrint-connected Ender, they all look the same in code. Brand-specific quirks (PrusaLink, AMS, Klipper macros) are abstracted behind a unified surface.
Can I write integration code against a specific brand?
For Prusa, Bambu Lab and OctoPrint replacements we publish brand-specific landing pages with ecosystem detail: Prusa API, Bambu Lab API, OctoPrint replacement.
Related articles
- All about the Webhooks feature
- Integrating user balances with external systems via the API
- The full API reference - apidocs.simplyprint.io
Updated on: 27/10/2026
Thank you!