Download Order Labels
GET/api/pinnacle/instances/:instance/orders/:order/labels
Downloads the order's piece labels from Pinnacle as a file attachment named pinnacle-labels-{tracking_number}.{pdf|zpl}. Each request fetches the labels live from Pinnacle (requests are throttled), so it always returns Pinnacle's current copy.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Query: format (optional, pdf or zpl, case-insensitive, default pdf). The response is a file, not JSON: application/pdf for PDF labels, text/plain; charset=UTF-8 for ZPL (raw printer commands for thermal label printers). Any other format returns 422.
Errors (JSON { message, code }):
- 422
not_registered— the order was never registered with Pinnacle (no tracking number, or a placeholder created while shipping-provider dispatch was disabled). - 422
cancelled— Pinnacle cancelled or closed the order, so its documents are no longer available. - 404
not_available— Pinnacle has no labels for the order (or returned an empty document). - 422
api_error— Pinnacle refused or failed the request; the message carries Pinnacle's reason. - 404 when the order does not belong to the instance.
Check can_download_documents / documents_unavailable_reason on the order (GET …/orders/{order}) to know in advance whether the download is possible.
Authentication: requires a Bearer token (Personal Access Token).
Requires the integrations.show permission; without it the request is refused with 403.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not Found
Response Headers
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.