Modules/REST API for your SME software

REST API for your SME software

Over 600 open REST endpoints according to the OpenAPI 3 standard, searchable via Swagger. Write your own integrations, connect Zapier or n8n, or display live key figures on your company website. Included in every plan.

600+ open REST endpoints

Full access to your business data via more than 600 clean REST endpoints, from accounting and invoices to postal mail.

Open standard, fully documented

Everything according to the OpenAPI 3 standard, searchable in Swagger, with ready-made SDKs for Python, TypeScript, and Swift.

Included in every plan

Developer access is included in every plan, at no extra cost. You create API keys yourself in the settings.

What do you need an API for?

Your company website should show up-to-date key figures. A business partner's tool wants to pull the data automatically. Or you want to build your own WordPress plugin. Whenever data needs to flow between Printerless and another system, you need an interface.

That is exactly what the API is for. Over 600 open endpoints give you access to your own business data, from accounting and invoices to postal mail. You decide what is shared for each key.

All endpoints documented and searchable

Each of the over 600 endpoints is described in the Swagger interface and can be tried directly. You choose the right service, see all fields and examples, and test the call in the browser.

All endpoints documented and searchable

What an API call looks like

With your API key, you get a token and then call any endpoint using a normal HTTP request. Here using letters as an example, once with curl and once in Python.

curl
# 1. Token holen (client_id + Schlüssel aus den Einstellungen, API-Schlüssel)
TOKEN=$(curl -s -X POST \
  https://auth.printerless.ch/realms/members/protocol/openid-connect/token \
  -d grant_type=client_credentials \
  -d client_id=$CLIENT_ID \
  -d client_secret=$CLIENT_SECRET | jq -r .access_token)

# 2. API-Call mit Bearer-Token (Beispiel: Briefe abrufen)
curl -s https://api.printerless.ch/v2/letters/letter/ \
  -H "Authorization: Bearer $TOKEN"
Python
import requests

# 1. Token holen
token = requests.post(
    "https://auth.printerless.ch/realms/members/protocol/openid-connect/token",
    data={
        "grant_type": "client_credentials",
        "client_id": CLIENT_ID,
        "client_secret": CLIENT_SECRET,
    },
).json()["access_token"]

# 2. Briefe abrufen
letters = requests.get(
    "https://api.printerless.ch/v2/letters/letter/",
    headers={"Authorization": f"Bearer {token}"},
).json()
print(letters["items"])

Export OpenAPI specification

The OpenAPI specification is available at api.printerless.ch/openapi/ and is the machine-readable basis of the Swagger interface. Access requires authentication. If you do not attach a valid token, the interface responds with 401.

JavaScript
// OpenAPI-Spezifikation exportieren (Authentifizierung erforderlich)
const token = await fetch(
  "https://auth.printerless.ch/realms/members/protocol/openid-connect/token",
  {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: new URLSearchParams({
      grant_type: "client_credentials",
      client_id: CLIENT_ID,
      client_secret: CLIENT_SECRET,
    }),
  },
).then(r => r.json()).then(d => d.access_token)

const openapi = await fetch("https://api.printerless.ch/openapi/", {
  headers: { Authorization: `Bearer ${token}` },
}).then(r => r.json())

console.log(openapi) // vollständige OpenAPI-3-Spezifikation

Generate TypeScript client

From the OpenAPI specification, you generate a ready-made TypeScript client using the public openapi-generator-cli. The tool runs independently via npx, without installation and without any dependency on Printerless. The same approach is also available for Python and many other languages. You only swap the generator name, for example python instead of typescript-axios.

Bash
# 1. OpenAPI-Spezifikation mit Token herunterladen
curl -s https://api.printerless.ch/openapi/ \
  -H "Authorization: Bearer $TOKEN" > openapi.json

# 2. TypeScript-Client generieren (öffentliches Tool, keine Abhängigkeit zu Printerless)
npx @openapitools/openapi-generator-cli generate \
  -i openapi.json \
  -g typescript-axios \
  -o ./printerless-client

Over 600 endpoints, clearly separated

Accounting, invoices, postal mail, contacts, and documents: each area has its own clearly documented interface. More than 600 endpoints in total.

One login for everything

All services share a central login based on the OAuth2 and OpenID Connect standard. You get a token, then it works for every service.

Fine-grained permissions per key

Each API key gets only the permissions you give it. Permissions are finely granular, from read-only to full management, per area.

Ready-made SDKs for developers

Ready-made SDKs are available for Python, TypeScript, and Swift, so developers can get started in hours instead of weeks. Each service is clearly described according to the OpenAPI 3 standard.

Zapier, n8n & more

Connect Printerless with Zapier or n8n without any programming, or build live dashboards. Accounting, invoices, and postal mail flow automatically to wherever you need them.

EU hosting, your data belongs to you

The entire platform runs on EU servers in compliance with GDPR and the Swiss FADP. Your business data stays where you control it, accessible via your own logins.

Complete API documentation

You can find all endpoints with fields, examples, and the option to try them directly in the browser in the searchable Swagger interface.

Go to Swagger documentation

Frequently Asked Questions

Is the API included in my plan?
Do I need programming skills?
What data can I access?
Where can I find the documentation?

Connect your company to everything

Try Printerless free for 14 days and create your first API key in just a few minutes.

Try for free