Direct Print API Reference
Full API reference for the DataShift Direct Print API: list your registered print devices and submit PDF print jobs to them with a Bearer token.
Returns active (non-revoked) print devices registered for the tenant, each with its full list of reported printers.
Use the id of the desired device as deviceId when calling POST /print-jobs. Optionally use one of that device's printers[].id as printerId to override which physical printer on the device receives the job — omit it to use the device's preferred printer (the one with isPreferred: true).
Devices are registered from the Datashift portal (Settings → print devices). Each device runs the Datashift print-client software and listens for print jobs. Revoked devices are excluded from this list. A device that hasn't reported its printer list yet (older print-client versions) has an empty printers array.
Requires the devices:read scope.
DirectPrintApiKeyAuthorizationBearer <dsdp_<64-hex-chars>>API key issued from Settings → Direct Print → API Keys. The raw key is shown once at creation.
Active print devices for this tenant
application/json- response
devices*array<>curl -X GET 'https://datashift.com.au/api/direct-print/devices'{ "devices": [ { "id": "dev_abc123", "label": "Warehouse A", "printerName": "Zebra ZT411", "lastUsedAt": "2026-06-25T06:00:00.000Z", "createdAt": "2026-01-10T00:00:00.000Z", "printers": [ { "id": "prn_abc123", "name": "Zebra ZT411", "isPreferred": true, "isOnline": true, "lastSeenAt": "2026-09-08T00:00:00.000Z" }, { "id": "prn_def456", "name": "HP LaserJet Office", "isPreferred": false, "isOnline": true, "lastSeenAt": "2026-09-08T00:00:00.000Z" } ] }, { "id": "dev_def456", "label": "Dispatch Desk", "printerName": null, "lastUsedAt": null, "createdAt": "2026-03-01T00:00:00.000Z", "printers": [] } ]}Queues a PDF print job for delivery to a registered device.
Typical flow: Call GET /devices once during setup, store each device's id in your system keyed by workstation, then pass the relevant deviceId in this request.
Handling DEVICE_NOT_FOUND: If the response is 404 with code: DEVICE_NOT_FOUND, the stored device ID is stale (device was revoked or replaced). Re-fetch GET /devices and prompt the user to select a device before retrying.
Requires the print-jobs:write scope.
DirectPrintApiKeyAuthorizationBearer <dsdp_<64-hex-chars>>API key issued from Settings → Direct Print → API Keys. The raw key is shown once at creation.
application/json- body
deviceId*stringID of the print device to send the job to (from GET /devices)
pdfBase64*stringBase64-encoded PDF document to print. Maximum 9,000,000 base64 characters (~6.75 MB of raw PDF).
length <= 9000000printerId?stringOptional id of a specific printer on the target device; defaults to the device's preferred printer when omitted.
Print job queued successfully
application/json- response
jobId*stringDirect Print job ID
status*"DELIVERED"Always DELIVERED on a 201 — means handed to the delivery queue, not confirmed printed
"DELIVERED"curl -X POST 'https://datashift.com.au/api/direct-print/print-jobs' \ -H 'Content-Type: application/json' \ -d '{ "deviceId": "dev_abc123", "pdfBase64": "JVBERi0xLjQK..."}'{ "jobId": "pj_xyz789", "status": "DELIVERED"}