Skip to main content
PrintEasy keeps the shape of the PrintNode API, so most integrations move over by changing the base URL, the API key and a few ids. This page lists every difference you need to handle.

Before and after

A print job in PrintNode:
The same job in PrintEasy:
The response is the job object, not a bare integer, so read the id from id.

Authentication and base URL

PrintEasy accepts the same Basic scheme: send the API key as the username with an empty password, or send Authorization: Bearer pe_live_.... Keys are created in the dashboard, one per organization, with the scopes read, print and admin. The base URL is https://api.printeasy.adfinite.com/v1. Every path from the PrintNode API you use keeps its name and gains the /v1 prefix.

Ids

PrintEasy ids are UUID strings, not integers. Printers, computers and jobs all use them, so change any column or type that stores a PrintNode id as a number. POST /v1/printjobs returns the job object ({ "id": "0192f1a0-...", "state": "queued", ... }), not a bare integer. Look up the new printer ids with GET /v1/printers.

API differences

Webhooks

PrintNode webhooks send a shared secret header. PrintEasy signs every request with an HMAC following the Standard Webhooks format (webhook-id, webhook-timestamp, webhook-signature), so verify the signature instead of comparing a header. There are 15 event types (printjob.queued through printjob.expired, computer.online, computer.offline and the printer.* events), failed deliveries are retried for about 27 hours, and you can replay any delivery from the dashboard. See Webhooks for the payload and verification code.

Rate limit

Each API key may make 20 requests per second. Above that you get 429 with Retry-After. See Rate limits and idempotency.

SDKs

The TypeScript and Python SDKs wrap these calls with retries, automatic idempotency keys and createAndWait, which replaces polling a job id by hand.

What you gain

  • A full job lifecycle with received and printing states and an event history for every job.
  • Signed webhooks that follow the Standard Webhooks format, with automatic retries and a delivery log you can replay.
  • Per-printer default options, so a request only sends what differs from the printer’s defaults.
  • Scoped API keys (read, print, admin), each limited to one organization.
  • Test mode keys (pe_test_...) that accept jobs without printing on paper.

Checklist

  1. Install the agent on each computer and approve it in the dashboard.
  2. Create an API key with the print scope and switch the base URL.
  3. Replace stored printer ids with the string ids from GET /v1/printers.
  4. Read the job id from the response object and use POST /v1/printjobs/{id}/cancel to cancel.
  5. Register a webhook if you relied on PrintNode webhooks, and verify the signature on each delivery.
  6. Send an Idempotency-Key header instead of X-Idempotency-Key, and keep your request rate under 20 per second per key.
  7. Test everything with a pe_test_ key and the virtual printers first (see Test mode).