Cloud Printing
Print Jobs
Print jobs represent documents queued for printing. When you create a print job, the system automatically routes it to the best available printer based on document requirements and queue length.
Endpoints
Required Scopes
print_jobs:read- For listing and retrieving jobsprint_jobs:write- For creating and updating jobs
Create Print Job
Creates a new print job. The system will route the job to the most suitable printer based on capabilities and queue length.
Request Body
Parameters
Document Data Formats
The data field accepts two formats:
URL:
Base64 with data URI:
Resource Types
Link print jobs to PackageX resources for tracking:
Configuration Options
Paper size is not always auto-detected. The API infers the paper size from the document's dimensions for common standard and label sizes, but it cannot resolve every size - transposed duplicates (e.g.
6x4vs4x6) and the decimal/large label sizes are not inferred. If the size cannot be determined andconfiguration.paper_sizeis not supplied, the request is rejected with aprint_job.paper_size_requirederror. Passconfiguration.paper_sizeexplicitly whenever the document size may be ambiguous (e.g. PDFs generated from external sources). See Models for the full list of supported values.
Auto-Selection Logic
When print_station_id is not provided, the system automatically selects the best printer:
- Filter by Capability - Only printers supporting the required paper size and orientation
- Check User Access - Only stations the user can access
- Match Location - Only stations at the specified location
- Optimize Queue - Select the printer with the fewest queued jobs
Auto-selection does not apply when
paper_sizeispage_size_custom. In that case you must specify bothprint_station_idandprinter_name; the system skips all capability matching and routes the job directly to that printer.
If
paper_sizeis omitted, the system tries to infer it from the document. When it cannot determine a size, the request fails with400- codeprint_job.paper_size_requiredand messageCould not determine the paper size. Please specify configuration.paper_size.Passpaper_sizeexplicitly to avoid this.
Label sizes are not auto-detected. The 34 label paper sizes (e.g.
page_size_label_4x6,page_size_label_2_25x4) are never inferred from the document - you must always passconfiguration.paper_sizeexplicitly when printing to a label printer. Omitting it will result in a400print_job.paper_size_requirederror if the system cannot determine the size from the document dimensions alone. See Paper Size Values for the full list.
Custom Paper Size Example
Use page_size_custom to delegate sizing to the printer (for example, a label printer with a fixed roll size). Both print_station_id and printer_name are required:
If either print_station_id or printer_name is missing, the request fails with 400 - print_station_id and printer_name are required for custom paper size.
custom_dimensions (inches) is optional - when omitted the printer uses its configured size. It is only honored with page_size_custom; sending it with any other paper size is ignored.
Minimal Request Example
Response
Update Print Job Status
Updates the status of a print job. This endpoint is typically used by the print station application to report job progress.
Status Transitions
Request Examples
Mark as Processing:
Mark as Completed:
Mark as Failed:
The reason field is required when status is failed and must be 3-1023 characters.
Mark as Unreported:
Use unreported when the station cannot determine the job's outcome. The reason is optional (3-1023 characters); when omitted it defaults to "Printer did not report the job outcome".
Cancel Job:
Response
List Print Jobs
Returns a paginated list of print jobs.
Query Parameters
Example Request
Response
Retrieve Print Job
Retrieves a single print job by ID.
Example Request
Response
Error Codes
Webhooks
Print job status changes trigger webhook events: