---
title: "List available printers"
description: "List printers visible through connected CloudPrint agents and select a stable printer ID for a workflow."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">CloudPrint Documentation</a><span aria-hidden="true">/</span><span>API reference</span></nav>

# List available printers

<p class="docs-lead">List printers visible through connected CloudPrint agents and select a stable printer ID for a workflow.</p>

<div class="api-endpoint-summary"><span class="api-method api-method-get">GET</span><code>/api/v1/printers</code><span><strong>API version:</strong> v1</span><span><strong>operationId:</strong> <code>listPrinters</code></span><a href="/docs/api/v1/printers/list/index.md">View as Markdown</a></div>

## What this endpoint does

List printers visible through connected CloudPrint agents and select a stable printer ID for a workflow.

## Authentication

Send a short-lived access token in `Authorization: Bearer <access_token>`.

**Required scopes:** `printers:read`

## Request

**Production base URL:** `https://public-api.cloudprint.me/api/v1/printers`

### Parameters

| Name | Location | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- | --- |
| `limit` | query | `integer` | no | Maximum number of printers to return. | min: 1; max: 100; default: `100` |
| `cursor` | query | `string \| null` | no | Cursor from the previous response next_cursor field. | — |

### Request body

This endpoint has no request body.

### Example requests

#### cURL

```bash
curl -sS 'https://public-api.cloudprint.me/api/v1/printers?limit=100' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

## Response

**HTTP status:** `200` — Account printers

### Response fields

| Name | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `printers` | `array` | yes | Printers discovered through agents connected to the current account. | — |
| `next_cursor` | `string \| null` | yes | Opaque cursor for the next result page; send it back unchanged. | — |

### Example response

```json
{
  "printers": [
    {
      "printer_id": "11111111-1111-4111-8111-111111111111",
      "agent_id": "11111111-1111-4111-8111-111111111111",
      "local_identifier": "zebra-zd421-usb-001",
      "name": "Warehouse Label Printer",
      "status": "online",
      "last_seen_at": null,
      "agent_name": "Warehouse PC agent",
      "agent_hostname": "warehouse-pc",
      "agent_status": "online",
      "agent_last_seen_at": null,
      "capabilities": {
        "backend": "windows_native",
        "language_profiles": [
          null
        ],
        "supports_custom_media": false,
        "supports_orientation": false,
        "supports_copies": false,
        "supports_duplex": false,
        "supports_color": false,
        "supports_scaling": false,
        "supports_offsets": false,
        "supports_printable_area": false,
        "supported_dpi": [
          null
        ],
        "supported_media_sizes": [
          null
        ],
        "supported_feed_types": [
          "gap"
        ],
        "darkness_min": 0,
        "darkness_max": 30,
        "speed_min": 1,
        "speed_max": 14
      },
      "endpoint": {
        "system_print_available": false,
        "raw_passthrough_available": false,
        "configuration_issue": null,
        "os": "linux",
        "driver_name": "CUPS",
        "port_name": "ipp://printer.local/ipp/print",
        "print_processor": "cups",
        "data_type": "RAW",
        "connection_type": "cups",
        "default_media_profile_id": null,
        "default_media_profile": null
      }
    }
  ],
  "next_cursor": null
}
```

## Errors

| HTTP status | Description |
| --- | --- |
| `401` | OAuth bearer token is missing or invalid |
| `403` | OAuth bearer token does not include printers:read |
| `422` | Pagination parameters are invalid |
| `429` | Rate limit exceeded |
| `500` | Unexpected error |

## Integration guidance

- Persist `printer_id`; a local queue name is display text and can change.
- Check status, capabilities and endpoint data before offering RAW, duplex, color, media-size or DPI options.

## Related documentation

<div class="docs-card-grid"><a class="docs-card" href="/docs/api/agents-and-printers/"><strong>Connect an agent and select a printer</strong><span>Install the CloudPrint agent, discover local printer queues and choose a stable printer ID based on its advertised capabilities.</span></a>
<a class="docs-card" href="/docs/api/v1/documents/upload/"><strong>Upload a document for printing</strong><span>Upload a print-ready PDF or explicit RAW printer-language payload before creating a CloudPrint print job.</span></a>
<a class="docs-card" href="/docs/api/v1/print-jobs/create/"><strong>Create a print job</strong><span>Send an uploaded CloudPrint document to a selected printer with idempotency and explicit print options.</span></a></div>

<nav class="docs-resource-links" aria-label="Next steps"><a href="/docs/api/v1/explorer/">OpenAPI</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/payments-and-refunds/">Payment and refunds</a><a href="/docs/legal/data-processing/">DPA</a></nav>