---
title: "CloudPrint Public API overview"
description: "A practical map of CloudPrint authentication, printers, documents, print jobs, statuses and errors for backend integrations."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">CloudPrint Documentation</a><span aria-hidden="true">/</span><span>Print API</span></nav>

# CloudPrint Public API overview

<p class="docs-lead">This page covers the account-scoped Print API workflow. The complete OpenAPI reference also contains Developer Platform, Partner Management and public Agent download operations.</p>

## Where to send requests

Your backend sends all API requests to `https://public-api.cloudprint.me`. Account owners connect agents and create client apps at `https://my.cloudprint.me`. The installed agent uses a private CloudPrint protocol and is not an API for external applications.

## Print API methods

| Method | Path | Scope | Purpose |
| --- | --- | --- | --- |
| `POST` | `/oauth/token` | — | Obtain an OAuth2 access token |
| `GET` | `/api/v1/me` | authenticated | Confirm account, client app and granted scopes |
| `GET` | `/api/v1/agents` | `agents:read` | Check agent state and version |
| `GET` | `/api/v1/printers` | `printers:read` | Discover printers and capabilities |
| `POST` | `/api/v1/documents` | `documents:write` | Upload PDF or RAW data |
| `POST` | `/api/v1/print-jobs` | `print_jobs:write` | Create a job for an uploaded document |
| `POST` | `/api/v1/print-jobs/from-url` | `documents:write`, `print_jobs:write` | Fetch a public HTTPS document and create a job |
| `POST` | `/api/v1/print-jobs/from-base64` | `documents:write`, `print_jobs:write` | Decode inline bytes and create a job |
| `GET` | `/api/v1/print-jobs` | `print_jobs:read` | List jobs with cursor pagination |
| `GET` | `/api/v1/print-jobs/{printJobId}` | `print_jobs:read` | Read one job and its result |

## Implementation order

Start with token acquisition and `/me`, then add printer selection, document upload, idempotent job creation and status polling. Add the URL and Base64 shortcuts after the two-step flow works. Use `GET /api/v1/agents` for diagnostics and `GET /api/v1/print-jobs` to reconcile history.

## Pagination

Agents, printers and print-job lists use cursor pagination. Send `limit` (1–100) and then pass the returned opaque `next_cursor` as the next request's `cursor`. Stop when `next_cursor` is `null`; do not parse or construct cursor values.

## Compatibility

The stable path is `/api/v1`. Ignore unknown response fields and treat unknown job statuses as non-terminal. Use the exact enum values and validation limits from OpenAPI. Compatible fields may be added to v1; breaking changes require a new major path.

## More detailed guides

Read [authentication](../authentication/) for tokens and scopes, [agents and printers](../agents-and-printers/) for printer selection, [documents](../documents/) for PDF and RAW input, [print jobs](../print-jobs/) for retries and statuses, and the [API v1 reference](../v1/) for exact operations and schemas.

## Next steps

<div class="docs-card-grid"><a class="docs-card" href="/docs/api/authentication/"><strong>Authenticate with OAuth2 Client Credentials</strong><span>Create a CloudPrint client app, request a short-lived access token and protect credentials with the correct API scopes.</span></a>
<a class="docs-card" href="/docs/api/documents/"><strong>Upload PDF and RAW documents</strong><span>Choose multipart upload, a public HTTPS URL or Base64, and prepare PDF or RAW printer-language data for CloudPrint.</span></a>
<a class="docs-card" href="/docs/api/print-jobs/"><strong>Create and track CloudPrint print jobs</strong><span>Create idempotent print jobs, validate printer options and follow each job safely until it is printed or fails.</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>