Skip to main content

Get job

GET/v20/jobs/{jobId}

Returns a job by ID. The job must belong to the authenticated account and must have been created via the V20 API (source: "apiV20"). Jobs created through other sources (V1, email) return 404.

The response uses JSON:API format with application/vnd.api+json content type. Related events are automatically included.

Authentication​

Requires HTTP Basic authentication with your API Credential ID and Token.

Content Type​

application/vnd.api+json

Path Parameters​

ParameterTypeRequiredDescription
jobIdstring (UUID)YesThe job ID

Response​

200 — Job details (JSON:API)​

{
"data": {
"type": "jobs",
"id": "9af67ab2-ceb6-4dae-9ef3-fe145ae65cd1",
"attributes": {
"state": "queued",
"environment": "production",
"externalId": "order-1024",
"source": "apiV20",
"createdAt": "2026-03-22T12:00:00Z",
"updatedAt": "2026-03-22T12:00:05Z",
"expiresAt": "2026-03-22T12:05:00Z",
"metadata": {
"orderData": {
"customer": { "name": "John Smith" },
"line_items": [
{ "name": "Pepperoni Pizza", "quantity": 1, "price": 18.00 }
],
"totals": { "subtotal": 18.00, "tax": 1.49, "total": 19.49, "quantity": 1 }
}
}
},
"relationships": {
"account": {
"data": { "type": "accounts", "id": "c75c40ff-3263-4171-afe4-1e138f8ea616" }
},
"printer": {
"data": { "type": "printers", "id": "f9d43179-9c10-4502-8f62-892740a65318" }
},
"events": {
"data": [
{ "type": "events", "id": "evt-001" },
{ "type": "events", "id": "evt-002" }
]
}
}
},
"included": [
{
"type": "events",
"id": "evt-001",
"attributes": {
"action": "job.created",
"type": "info",
"eventableId": "9af67ab2-ceb6-4dae-9ef3-fe145ae65cd1",
"eventableType": "Job",
"metadata": { "source": "apiV20" },
"createdAt": "2026-03-22T12:00:00Z"
}
},
{
"type": "events",
"id": "evt-002",
"attributes": {
"action": "job.queued",
"type": "info",
"eventableId": "9af67ab2-ceb6-4dae-9ef3-fe145ae65cd1",
"eventableType": "Job",
"metadata": null,
"createdAt": "2026-03-22T12:00:01Z"
}
}
]
}

Attributes​

FieldTypeDescription
statestringJob state (queued, processing, processed, downloaded, printed, expired, error)
environmentstringproduction or development
externalIdstringYour external order/reference ID
sourcestringAlways apiV20 for jobs returned by this endpoint
createdAtstring (date-time)Job creation timestamp
updatedAtstring (date-time)Last update timestamp
expiresAtstring (date-time)Job expiration timestamp
metadataobject | nullOrder data and job metadata (excluding internal fields body, fulfillAt, doublePrint)

Relationships​

RelationshipTypeDescription
accountaccountsThe account that owns this job
printerprintersThe printer this job was sent to
eventsevents[]All lifecycle events for this job (sorted by creation time)

Included Resources​

All associated events are automatically included. Each event contains:

FieldTypeDescription
actionstringEvent action (e.g., job.created, job.queued, job.printed)
typestringEvent type
eventableIdstring (UUID)The job ID this event belongs to
eventableTypestringAlways Job
metadataobject | nullAdditional event metadata
createdAtstring (date-time)When the event occurred

400 — Missing path parameter​

{
"errors": [
{ "status": "400", "title": "Bad Request", "detail": "jobId path parameter is required" }
]
}

403 — Account not found or disabled​

{
"errors": [
{ "status": "403", "title": "Forbidden", "detail": "Account not found" }
]
}

404 — Job not found​

Returned when the job does not exist, belongs to a different account, or was not created via the V20 API.

{
"errors": [
{ "status": "404", "title": "Not Found", "detail": "Job not found" }
]
}

401 — Not authorized​

Returned when the API credential is invalid, disabled, or missing.