Skip to content

Read one print

GET
/v1/prints/{id}
curl --request GET \
--url https://api.pixonaut.app/v1/prints/example \
--header 'Authorization: Bearer <token>'

Operation ID: prints.get

A studio member without designs:read reads the job ticket without its fulfilmentPayload: that is the design’s consumer bag, which reading the design would need the grant for. A completed print read by a secret key, or by a member holding orders:read or orders:create, carries orderPrintshop: where an order placed for it goes, unless that could not be worked out.

id
required
string

The print, with its job ticket once it has completed

Media typeapplication/json
object
apiKeyId
required
string | null
artifacts
required
attempts
required

Every try at the print’s render, oldest first. A failed print rendered again keeps its failed attempts beside the later ones. Empty for a print rendered before attempts were kept.

Array<object>
object
attempt
required

The attempt’s place among the print’s, from 1.

integer
> 0
endedAt
required

When the attempt ended, in epoch milliseconds; null while it runs.

integer | null
failure
required

Why a failed attempt failed: whose fault it is (design or ours) and its sentence. Null for one that did not fail.

object
detail
required

The sentence the print’s creation was answered with: what to change, for the design’s fault.

string
owner
required

Whose the fault is: design when the design must change before it can be printed, ours when the renderer failed and trying again will probably fail the same way.

string
outcome
required

How the attempt ended: completed or failed; null while it runs.

string | null
startedAt
required

When the attempt started, in epoch milliseconds.

integer
bleedMm
required

The bleed around the trim in millimetres. Null until the print completes, and for a template that names no blank.

number | null
completedAt
required
number | null
createdAt
required
number
currentRevision
required

The design’s revision now. A print whose designRevision is lower is of an older revision, and cannot be ordered.

integer
designId
required
string
designRevision
required

The design’s revision this print rendered. Only a print of the design’s current revision can be ordered; one made before a correction is refused print_superseded.

integer
failure
required

Why a failed print failed. Null for a print that did not fail, and for one that failed before the reason was kept.

object
detail
required

The sentence the print’s creation was answered with: what to change, for the design’s fault.

string
owner
required

Whose the fault is: design when the design must change before it can be printed, ours when the renderer failed and trying again will probably fail the same way.

string
fileForm
required

The form the print’s files are in: flat, one drawing with every glyph a path; layered, each printed layer its own optional content group, every glyph still a path; or layered_live_text, its plain text live as well. A print made before these forms is flat. Another form is fetched with form on the print’s file.

string
fileUrl
required

A link to the print’s file that opens with no key, for an hour or two: to hand to a printshop or open in a browser. Null while it renders, when it failed, and once its files are deleted.

string | null
filesBytes
required

How many bytes the print’s stored files take in the workspace’s storage; null while it renders, once its files are deleted, and for a print made before sizes were kept.

number | null
filesCount
required

How many files the print keeps, null whenever filesBytes is.

integer | null
filesErasedAt
required

When the print’s files were deleted, after its design’s personal data was erased or by a member to free storage; null while they are kept. The print stays as a record.

number | null
heightMm
required

The print’s trimmed height in millimetres. Null until the print completes.

number | null
id
required
string
jobTicket
required
object
artifact
required
object
colorSpace
required
string
cut
object
bleedMm
required
number
cropMarks
required
boolean
cutLine
required
boolean
cutName
required
string | null
markOffsetMm
required
number
mirrored
required
boolean
part
required
string
profile
required
string
registrationMarks
required
string
underbase
required
object
chokeMm
required
number
coverage
required
string
spotName
required
string
varnish
required
object
coverage
required
string
spotName
required
string
effectiveDpi
required
number
file
required
string
format
required
string
iccProfile
required
string
includesBleed
required
boolean
spotColors
required
Array<string>
spotOutput
required
string
trimMarks
required
boolean
artwork
required
Any of:
object
name
string
templateId
required
string
fulfilmentPayload
manifest
required
object
docHash
required
string
fontSetHash
required
string
iccProfile
required
string
renderedAt
required
string
rendererVersion
required
string
templateVersion
string
printArea
required
object
anchor
object
align
required

How the print aligns to the reference: top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center or bottom-right. Anything else is read as center.

string
offsetMm
required

How far the print is moved from the reference, in millimetres. y grows downward.

object
x
required

Horizontal offset in millimetres; positive moves right.

number
y
required

Vertical offset in millimetres; positive moves down.

number
reference
required

The physical reference the print is positioned against on the product.

string
bleedMm
number
cutShape
required
object
d
required
string
>= 1 characters
type
required
string
heightMm
required
number
linked

The linked group the design is one placement of: one design drives every placement it names. Absent for a design on one placement alone.

object
mirrored
required

Whether this placement’s print is mirrored left to right.

boolean
placements
required

The group’s placements, by id.

Array<string>
referenceWidthMm
required

The width of the group’s widest print area, in mm: what a repeat across the group is sized against, so it prints at one physical scale on every placement.

number
> 0
printMethod
string
printedAs
string
repeat

The repeat the print was drawn as: the design’s mode, size and seed, and the printed size of the tile laid across the print. Absent for a print that does not repeat.

object
mode
required

How the tiles are laid: grid lines them up, brick moves every other row along by half a tile, halfDrop moves every other column down by half a tile, and scatter strews them at random places, turns and sizes, arranged by seed.

string
seed
required

Which arrangement a scatter draws: another seed is another arrangement of the same tile. Read by scatter only.

integer
<= 9007199254740991
size
required

The tile’s width in percent of the print area’s width, above 0 and at most 100; the tile keeps the template’s shape. A tile that would print under 10 mm on a side is drawn at 10 mm.

number
> 0 <= 100
unitHeightMm
required

The tile’s printed height in millimetres.

number
> 0
unitWidthMm
required

The tile’s printed width in millimetres.

number
> 0
safeAreaMm
number
shape
object
cutByPrintShop

True when the print shop cuts the product to this shape: the outline and the cut-outs go into the print file as its cut line. Omitted, the product already has the shape.

boolean
dFrac
required

The shape as SVG path data in fractions of the print area, 0 to 1 across and down (curves, no arcs): its first subpath the outline, every further one a cut-out, filled even-odd, each subpath closed.

string
<= 65536 characters
widthMm
required
number
product
required
object
sku
required
string
tenantId
required
string
jobTicketStale
required
boolean
layeredFallback
required

Why the print has no layered file: it was asked for one, or that form was fetched, and the file could not be made or differed from the flat one. Null otherwise.

string | null
liveTextFallback
required

Why the print has no layered_live_text file: it was asked for one, or that form was fetched, and the file could not be made or its live text differed from the flat one past the tolerance. Null otherwise.

string | null
number
required

The print number its files are named after, such as PR-2026-381042. Null for a print made before numbers were kept that never completed.

string | null
orderPrintshop

Where an order placed for this print goes when it names no printshop: its blank’s printshop, else the printshop its design was committed with, else the tenant’s default. An order of a print on no blank whose design was committed with none may name one (printshopId), which goes before the default; a print on a blank always goes to the blank’s. null when none of them names one, so an order naming none is refused. Absent when the print is not completed, the caller may not read orders, or it could not be worked out.

object
id
required
string
name
required

The merchant’s own label for the connection.

string
status
required

usable, or why an order there is refused: disconnected, unavailable when its integration is no longer registered, or paused when the merchant paused it (an order there is refused 409 printshop_paused).

string
status
required
string
templateName
required

The name of the template the print was made from. Null until the print completes.

string | null
templateVersion
required

The version of that template the print was rendered from. Null until the print completes.

integer | null
tenantId
required
string
textDeviationMm
required

textDeviationPx in millimetres at the print’s resolution. Null with no such file.

number | null
textDeviationPx
required

How far from its outline the live text of the print’s layered_live_text file measured when it was checked, in device pixels at the print’s resolution: 0 when it drew exactly as the flat one. Null with no such file.

number | null
textTolerance
required
One of:
object
unit
required

Device pixels.

string
Allowed values: px
value
required

How many.

number
>= 1 <= 100
widthMm
required

The print’s trimmed width in millimetres. Null until the print completes.

number | null

Examples

Exampleexample

Example

{
"apiKeyId": "3b2d9c1e-5a4f-4e7d-8c6b-1a0f9e8d7c6b",
"artifacts": [
"PR-2026-481920_c4d5e6f7.pdf"
],
"attempts": [
{
"attempt": 1,
"endedAt": 1791886446000,
"failure": null,
"outcome": "completed",
"startedAt": 1791886443100
}
],
"bleedMm": 3,
"completedAt": 1791886446000,
"createdAt": 1791886443000,
"currentRevision": 3,
"designId": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c",
"designRevision": 3,
"failure": null,
"fileForm": "flat",
"fileUrl": "https://api.pixonaut.example/a/eyJhdWQiOiJwcmludC1hcnRpZmFjdCJ9.c2lnbmF0dXJl",
"filesBytes": 4823117,
"filesCount": 1,
"filesErasedAt": null,
"heightMm": 300,
"id": "c4d5e6f7-a8b9-4c0d-9e1f-2a3b4c5d6e7f",
"jobTicket": {
"artifact": {
"colorSpace": "DeviceCMYK",
"effectiveDpi": 300,
"file": "PR-2026-481920_c4d5e6f7.pdf",
"format": "pdf",
"iccProfile": "ISOcoated_v2_eci.icc",
"includesBleed": true,
"spotColors": [],
"spotOutput": "process",
"trimMarks": false
},
"artwork": {
"name": "Class of 2026",
"templateId": "tshirt-basic@2"
},
"fulfilmentPayload": {
"variantSku": "TEE-BLACK-M"
},
"manifest": {
"docHash": "sha256:9f2c4e7a1b8d3f6052c7e9a4b1d8f3066a5e2c9b7d4f1830e6a2b5c8d9f10a37",
"fontSetHash": "sha256:3c8e1a5f7b2d9046e1f8a3c6b9d25704a8e3f1c6b0d97245e8a1c3f6b9d2e508",
"iccProfile": "ISOcoated_v2_eci.icc",
"renderedAt": "2026-10-13T10:14:05Z",
"rendererVersion": "0.14.2",
"templateVersion": "tshirt-basic@2"
},
"printArea": {
"bleedMm": 3,
"cutShape": {
"d": "M0 0 H250 V300 H0 Z",
"type": "path"
},
"heightMm": 300,
"printMethod": "dtg",
"widthMm": 250
},
"product": {
"sku": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c",
"tenantId": "acme"
}
},
"jobTicketStale": false,
"layeredFallback": null,
"liveTextFallback": null,
"number": "PR-2026-481920",
"orderPrintshop": {
"id": "0b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
"name": "Nordic Print Works",
"status": "usable"
},
"status": "completed",
"templateName": "Class of 2026",
"templateVersion": 2,
"tenantId": "acme",
"textDeviationMm": null,
"textDeviationPx": null,
"textTolerance": {
"unit": "px",
"value": 1
},
"widthMm": 250
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: unauthorized

Media typeapplication/json
object
error
required
string

Examples

Exampleunauthorized

unauthorized

{
"error": "unauthorized"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: origin_forbidden, forbidden, feature_disabled, workspace_suspended

Media typeapplication/json
object
error
required
string
feature

The feature the tenant does not have. Always sent with feature_disabled.

string

Examples

feature_disabled

{
"error": "feature_disabled",
"feature": "api"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: not_found

Media typeapplication/json
object
error
required
string

Examples

Examplenot_found

not_found

{
"error": "not_found"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Refused: db_error. A request that failed unexpectedly answers as text instead.

object
error
required
string

Examples

Exampledb_error

db_error

{
"error": "db_error"
}
X-Request-Id
required
string

Every response names the request it answers in X-Request-Id: the id the request was sent with in that header, when it is well formed, else one the API gave it. Quote it when reporting a refusal or a failure: the API’s log lines for that request carry it.

Questions? Write to [email protected].

Status · Terms of service · Privacy policy · Subprocessors