============================================================ TITLE: Developers & API | ezeep Cloud Printing TYPE: article VERSION: 1 VERSION_ID: e57d2b46-cf06-4ecc-9380-2188a0c0bc28 GENERATED_AT: 2026-05-07T12:31:31.124Z SUMMARY: Build custom print workflows with the ezeep API. REST endpoints for print submission, printer management, and more. AUTHOR: URL curl READING TIME: 14 min WORD COUNT: 2723 KEYWORDS: Developers & API, ezeep Cloud Printing, I Want To..., Built for Production, From Zero to First Print Job, Frequently Asked Questions SOURCE URL: https://www.ezeep.com/developers-api ============================================================ KEY TAKEAWAYS: * I Want To... * Built for the Way Developers Build Today * Add Printing to Any Application * Trigger Print Jobs Without a User * Build Secure Release Into Your Application # Our API. Your App. Endless Possibilities. From MCP servers for AI-native platforms to REST APIs and backend automation - build printing into anything you're creating, without drivers, servers, or hardware headaches. Read the API DocsGet API Credentials Quick Chooser ## I Want To... ### Build with ezeep in Any AI-Native Environment ezeep's MCP makes printing a native capability in any app you build with AI-powered tools, from a Lovable-built ERP to a Claude-powered ops workflow, with zero code and zero integration effort. ### Integrate Printing Into My App or Platform Submit print jobs, manage printers, users, and groups through a standard REST API. Connect ezeep to any application, SaaS product, or platform - no drivers, print servers, or infrastructure to manage. #### Automate Backend Print Workflows Trigger print jobs from backend services, scheduled tasks, and event pipelines without a logged-in user: warehouse labels from order events, invoices from accounting software, reports on a schedule. ## Built for the Way Developers Build Today ezeep's MCP server exposes your entire print environment as native tools - list printers, submit jobs, manage users, and automate workflows directly inside Claude, Cursor, Lovable, Windsurf, GitHub Copilot, or any MCP-compatible platform. What You Can Do Query available printers by name, location, or capability. Submit print jobs by passing a document and a printer target. Monitor and manage in-progress jobs. Create and manage users, groups, and printer assignments. Pull usage history and reporting. Manage your entire print fleet through conversation — ask your AI to show offline printers, invite users, or reassign printer groups without opening a dashboard. Available Resources Printers, Print Jobs, Users, Groups, Assignments, Connectors, Usage Reports. Works With Claude, Cursor, Lovable, Windsurf, GitHub Copilot, and any platform that supports the Model Context Protocol. Common Use Cases Printing shipping labels and packing slips from a Lovable-built fulfilment platform. Triggering invoice runs from a Claude-powered accounting workflow. Building a warehouse ops copilot that routes documents to the right printer at the right time. Giving any AI-built application a print button that actually works at enterprise scale. Get Your API Key { "mcpServers": { "ezeep": { "type": "http", "url": "https:">//mcp.ezeep.com/mcp", "headers": { "Authorization": "Bearer " } } } } ## Add Printing to Any Application Your app sends a document and a printer target. ezeep renders it in the cloud and delivers it. That's the entire integration surface. "token comment"># List available printers curl -X GET 'https:"token comment">//printapi.ezeep.com/sfapi/GetPrinter/' \ -H "Authorization: Bearer " "token comment"># Print a file by URL curl -X POST 'https:"token comment">//printapi.ezeep.com/sfapi/Print' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ -d '{ "fileurl": "https:">//example.com/invoice.pdf", "printerid": "9620e656-b39b-49ba-a653-a3f168575ec2", "type": "pdf" }' "token comment"># Create a user curl -X POST 'https:"token comment">//api.ezeep.com/v1/users/' \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "email": "newuser@company.com", "first_name": "Jane", "last_name": "Doe" }' const headers = { Authorization: class="token string">"Bearer class="token operator">", class="token string">"Content-Type": class="token string">"application/json", }; const printers = await fetch( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/sfapi/GetPrinter/", { headers } ); const job = await fetch( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/sfapi/Print", { method: class="token string">"class="token function">POST", headers, body: JSON.stringify({ fileurl: class="token string">"https:class="token commentclass="token string">">//example.com/invoice.pdf", printerid: class="token string">"9620e656-b39b-49ba-a653-a3f168575ec2", type: class="token string">"pdf", }), } ); const user = await fetch( class="token string">"https:class="token commentclass="token string">">//api.ezeep.com/v1/users/", { method: class="token string">"class="token function">POST", headers, body: JSON.stringify({ email: class="token string">"newuser@company.com", first_name: class="token string">"Jane", last_name: class="token string">"Doe", }), } ); import requests headers = { class="token string">"Authorization": class="token string">"Bearer class="token operator">", class="token string">"Content-Type": class="token string">"application/json", } printers = requests.get( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/sfapi/GetPrinter/", headers=headers ).json() job = requests.post( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/sfapi/Print", headers=headers, json={ class="token string">"fileurl": class="token string">"https:class="token commentclass="token string">">//example.com/invoice.pdf", class="token string">"printerid": class="token string">"9620e656-b39b-49ba-a653-a3f168575ec2", class="token string">"type": class="token string">"pdf", }, ).json() user = requests.post( class="token string">"https:class="token commentclass="token string">">//api.ezeep.com/v1/users/", headers=headers, json={ class="token string">"email": class="token string">"newuser@company.com", class="token string">"first_name": class="token string">"Jane", class="token string">"last_name": class="token string">"Doe", }, ).json() Submit PDFs, images, and raw data as print jobs from any server-side or client-side context. Target specific printers by ID or let users choose from their assigned list. Set job options like copies, duplex, color mode, and page range per request. Track job status and get confirmation when the document reaches the printer. Create and manage organizations, users, and groups programmatically. Assign and revoke printer access by user or group. Query available printers, connectors, and driver information. Pull usage reports and print history on demand. Listen for events via webhooks. Print Jobs, Printers, Organizations, Users, Members, Groups, Memberships, Assignments, Connectors, Printer Drivers, Webhooks. Shipping labels from WMS, invoices from CRM, documents from web apps, receipts from POS, kiosk and self-service output, coworking platforms automating member onboarding and print billing, MSP tools managing client environments, SaaS platforms embedding print management. Read the API Documentation Backend Workflow Automation ## Trigger Print Jobs Without a User Not every print job starts with someone clicking print. The ezeep Print App for Services lets your backend, scheduler, or event pipeline send documents to any printer automatically — no active user session required. Print from backend services, cron jobs, and event-driven pipelines without an interactive user session. Route jobs to specific printers by location, department, or job type. Integrate with Zapier, Make, or any webhook-capable platform. Run fully unattended workflows across distributed sites. Warehouse label printing triggered by order events, automated invoice runs from accounting software, scheduled report distribution, Zapier and Make integrations, kiosk output. Read Documentation "token comment"># Unattended print: submit a file by URL curl -X POST 'https:"token comment">//printapi.ezeep.com/sfapi/Print' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ -d '{ "fileurl": "https:">//wms.example.com/label.pdf", "printerid": "", "type": "pdf", "copies": 2, "printanddelete": true }' curl -X GET \ 'https:"token comment">//printapi.ezeep.com/sfapi/Status/?id=' \ -H "Authorization: Bearer " const headers = { class="token string">"Content-Type": class="token string">"application/json", Authorization: class="token string">"Bearer class="token operator">", }; const job = await fetch( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/sfapi/Print", { method: class="token string">"class="token function">POST", headers, body: JSON.stringify({ fileurl: class="token string">"https:class="token commentclass="token string">">//wms.example.com/label.pdf", printerid: class="token string">"class="token operator">", type: class="token string">"pdf", copies: class="token number">2, printanddelete: true, }), } ); const { jobid } = await job.json(); const status = await fetch( `https:class=class="token string">"token comment">//printapi.ezeep.com/sfapi/Status/?id=${jobid}`, { headers: { Authorization: class="token string">"Bearer class="token operator">" } } ); Pull Printing API ## Build Secure Release Into Your Application The Pull Printing Release API lets you build authenticated document release directly into your own app or device interface. Users authenticate, see their pending jobs, and release them at the printer. "token comment"># Get pending jobs for authenticated user curl -X GET 'https:"token comment">//printapi.ezeep.com/pullprint/jobs' \ -H "Authorization: Bearer " "token comment"># Release a specific job to a printer curl -X POST 'https:"token comment">//printapi.ezeep.com/pullprint/release' \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "job_id": "", "printer_id": "" }' class=class="token string">"token comment">// Get pending jobs for authenticated user const jobs = await fetch( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/pullprint/jobs", { headers: { Authorization: class="token string">"Bearer class="token operator">" } } ); class=class="token string">"token comment">// Release a specific job to a printer const release = await fetch( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/pullprint/release", { method: class="token string">"class="token function">POST", headers: { class="token string">"Content-Type": class="token string">"application/json", Authorization: class="token string">"Bearer class="token operator">", }, body: JSON.stringify({ job_id: class="token string">"class="token operator">", printer_id: class="token string">"class="token operator">", }), } ); import requests headers = {class="token string">"Authorization": class="token string">"Bearer class="token operator">"} class=class="token string">"token comment"># Get pending jobs for authenticated user jobs = requests.get( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/pullprint/jobs", headers=headers ).json() class=class="token string">"token comment"># Release a specific job to a printer release = requests.post( class="token string">"https:class="token commentclass="token string">">//printapi.ezeep.com/pullprint/release", headers={**headers, class="token string">"Content-Type": class="token string">"application/json"}, json={ class="token string">"job_id": class="token string">"class="token operator">", class="token string">"printer_id": class="token string">"class="token operator">", }, ).json() Query pending print jobs for an authenticated user. Release specific jobs to a target printer on demand. Build custom release interfaces for kiosks, touchscreens, or mobile apps. Support both trusted-user and trusted-device authentication workflows. Custom release apps on printer touchscreens, RFID or badge-tap release at shared devices, mobile release from a custom app, secure printing in healthcare and financial services environments. Read Pull Printing API Documentation How It Works ## Architecture That Stays Out of Your Way You don't need to understand printing to use the ezeep API. But if you want to know what happens after your API call, here it is. #### Your App Calls the API Authenticate via OAuth2 (Authorization Code or Device flow). Send a document with a target printer ID. That's your only touchpoint. #### ezeep Renders in the Cloud The document is converted to print-ready output using cloud-hosted manufacturer drivers. Your app never handles driver logic, spooler configuration, or format conversion. #### The Printer Receives the Job ezeep routes the rendered job to the target printer through an encrypted channel. If the printer is connected via an ezeep Hub, Connector, or native cloud link, the job arrives without any on-premises infrastructure in between. Authentication ## Standard OAuth2. No Proprietary Auth. ezeep uses OAuth2 with JWT tokens. Choose the flow that fits your integration. #### Authorization Code Flow Best for interactive applications where a user is present. Redirect the user to ezeep's auth server, receive an authorization code, exchange it for access and refresh tokens. #### Device Authorization Flow Best for devices, kiosks, and headless environments where there's no browser. Request a device code, display it to the user, poll for authorization. #### Token Revocation Revoke access or refresh tokens when a session ends or credentials need to be invalidated. This ensures expired integrations lose access immediately. All API traffic is encrypted via TLS. Access tokens expire after approximately one hour. Refresh tokens have a longer lifetime and can generate new access tokens as needed. Read Full Auth Documentation Printer Manufacturers ## Make Your Devices Cloud-Native Building a printer, MFP, or embedded device? The ezeep API supports manufacturer integrations including cloud printing, follow-me workflows, Pull Printing release apps on touchscreens, and scan-to-cloud scenarios. If you're looking to embed ezeep into your hardware or firmware, we have dedicated documentation and an integrations team to support the process. View Manufacturer Integration Docs Security & Compliance ## Built for Production Security isn't a feature we added. It's how the platform was built from day one. #### Encrypted API Traffic All communication between your app and ezeep is TLS-encrypted. Print data is encrypted in transit and not retained after delivery. #### Permission-Based Access Control what each API consumer can do through scoped tokens, user-level permissions, and organization-level isolation. #### Centralized Audit Logging Every API action is logged with user, timestamp, and resource context for traceability, debugging, and compliance. #### Multi-Tenant Isolation Each organization's data, users, and printers are fully isolated. Built for SaaS products serving multiple customers from a single integration. Read About ezeep Security Get Started ## From Zero to First Print Job #### Read the Docs The API reference covers authentication, endpoints, parameters, and response formats. Quickstart guides walk you through printing, user management, and writing your first integration. #### Get Your Credentials Request your Client ID and Secret through the developer portal. For a quick test, use the demo Client ID from the docs to authenticate and make your first calls immediately. #### Send Your First Print Job Authenticate, pick a printer, submit a document. You'll have a working print integration in minutes. When you're ready to go deeper, the full REST API and webhooks are there. Get API Credentials Pricing & Partners ## Start Free. Scale When You Ship. The ezeep API is available on all plans, including the free tier with 50 pages per month. Build and test your integration at no cost, then scale with plan-based page quotas as your usage grows. Building a product or platform around ezeep printing? Join ezeep Connect for partner resources, co-marketing, and dedicated integration support. Become a Partner ## Frequently Asked Questions Curious about how it all works? Here's everything you wanted to know about ezeep's cloud printing API! ##### What is the ezeep Print API? The ezeep API is a RESTful cloud printing interface. It lets developers submit print jobs, manage printers and users, and automate document output programmatically. Your app calls the API over HTTPS, ezeep handles rendering and delivery to the target printer. No drivers, no print servers, no direct printer connections from your code. ##### How do I get started? Sign up for a free ezeep account, request API credentials (Client ID and Secret), and follow the quickstart guide in the documentation. You can also use the demo Client ID to make your first API calls immediately without waiting for credentials. ##### How does authentication work? ezeep uses standard OAuth2 with JWT tokens. Interactive applications use the Authorization Code Flow. Devices, kiosks, and headless services use the Device Authorization Flow. Access tokens expire after approximately one hour and can be refreshed automatically. ##### Can the API print without a logged-in user? Yes. The ezeep Print App for Services enables unattended printing from backend systems, scheduled tasks, and event-driven workflows. This covers ERP/WMS label printing, kiosk output, scheduled reports, and any scenario where print jobs are triggered by code rather than a person. ##### What printer hardware is supported? Any printer connected to ezeep through an ezeep Hub, ezeep Connector, or native cloud connection is accessible via the API. This includes office printers and MFPs from HP, Lexmark, Xerox, Kyocera, Brother, Konica Minolta, and others, plus specialty hardware like Zebra label printers and Epson receipt printers. ## Build Printing Into Your Product Without the Pain You write the code. ezeep handles everything between your API call and ink on paper. Start Free Trial Contact About API Pricing ------------------------------------------------------------ ABOUT THIS CONTENT ------------------------------------------------------------ Source: https://www.ezeep.com/developers-api Author: URL curl This content is provided for informational purposes. Please visit the original source for the most up-to-date information.