---
title: "How CloudPrint works with local printers"
description: "Learn how your backend, the CloudPrint Public API and the outbound local agent deliver documents to printers on private networks."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">CloudPrint Documentation</a><span aria-hidden="true">/</span><span>Start here</span></nav>

# How CloudPrint works with local printers

<p class="docs-lead">CloudPrint connects software running in the cloud with a printer in an office, store or warehouse. Your application uses only the Public API; the local agent receives authorized work over an outbound connection.</p>

## The parts of the system

The customer backend obtains a token, selects a `printer_id`, supplies a document and creates a job. CloudPrint stores the document and job state. The local agent reports printers, reserves work and sends it to an operating-system queue or a compatible RAW path.

## Why a local agent is necessary

Printers normally live inside private networks and should not be public services. The agent initiates the connection to CloudPrint, so deployment does not require inbound firewall rules, a customer VPN or remote-desktop access.

## Print job statuses

A new job starts as `pending` and may move through `reserved` and `printing`. Terminal statuses are `printed`, `failed` and `cancelled`. `printed` confirms acceptance by the operating-system spooler, not physical output. Store `print_job_id`, tolerate future non-terminal values and translate the current state into language an operator can act on.

## Safe retries

A network timeout must not create a second physical print. Generate a stable `Idempotency-Key` for each business operation. The same key and payload return the original job; the same key with a changed payload returns `409 Conflict`.

## What your application is responsible for

CloudPrint sends the job to the selected printer and reports the result observed by the agent. Your application remains responsible for choosing the correct customer printer, preparing the file, linking the job to a business record and deciding how operators retry a failed print.

## Next steps

<div class="docs-card-grid"><a class="docs-card" href="/docs/getting-started/"><strong>CloudPrint API quickstart</strong><span>Connect an agent, obtain an OAuth token, select a printer, send your first print job and confirm its final status.</span></a>
<a class="docs-card" href="/docs/api/overview/"><strong>CloudPrint Public API overview</strong><span>A practical map of CloudPrint authentication, printers, documents, print jobs, statuses and errors for backend integrations.</span></a>
<a class="docs-card" href="/docs/api/agents-and-printers/"><strong>Local Printer API for web and SaaS applications</strong><span>Connect a web or SaaS backend to local printers through CloudPrint Agent, discover printer queues via API and route jobs by stable printer ID.</span></a></div>

<nav class="docs-resource-links" aria-label="Next steps"><a href="https://cloudprint.me/status/">Service status</a><a href="/docs/api/v1/explorer/">OpenAPI</a><a href="https://developer.cloudprint.me">Developer Portal</a><a href="https://my.cloudprint.me">Open account</a><a href="/docs/legal/privacy/">Privacy Policy</a><a href="/docs/legal/terms/">Terms</a><a href="/docs/legal/data-processing/">DPA</a><a href="/docs/legal/service-level-agreement/">Service Level Agreement</a></nav>