Skip to content

List the tenant's designs, newest first

GET
/v1/designs
curl --request GET \
--url 'https://api.pixonaut.app/v1/designs?page=1&pageSize=50&status=committed&order=asc&standing=true' \
--header 'Authorization: Bearer <token>'

Operation ID: designs.list

status narrows the list to one status, q to designs whose template name, id or your own reference holds it, template to the designs of the template with that base id, externalRef to the designs holding your own reference, matched exactly, standing to the standing designs or to the rest, and receivedFrom and receivedTo to the designs received between them. order=asc lists the oldest first. counts says how many designs each status holds under the other filters. Rows carry no document and no fulfilment payload; read one design for those.

page

The page to read, from 1; the first when left out.

integer
default: 1 >= 1 <= 100000

The page to read, from 1; the first when left out.

pageSize
integer
default: 50 >= 1 <= 200
status

Only designs in this status: committed waits for a decision, approved and rejected are decided.

string
Allowed values: committed approved rejected

Only designs in this status: committed waits for a decision, approved and rejected are decided.

q

Only designs whose template name, id or your own reference holds this text, case aside.

string
<= 200 characters

Only designs whose template name, id or your own reference holds this text, case aside.

receivedFrom

Only designs received (committedAt) at or after this time, in epoch milliseconds.

integer | null
<= 9007199254740991

Only designs received (committedAt) at or after this time, in epoch milliseconds.

receivedTo

Only designs received (committedAt) at or before this time, in epoch milliseconds.

integer | null
<= 9007199254740991

Only designs received (committedAt) at or before this time, in epoch milliseconds.

order

By when the designs were received: desc, newest first, unless asc asks for the oldest first.

string
Allowed values: asc desc

By when the designs were received: desc, newest first, unless asc asks for the oldest first.

template
string
<= 200 characters
externalRef
string
>= 1 characters <= 256 characters
standing

true lists only standing designs, false only the rest; left out, both.

string
Allowed values: true false

true lists only standing designs, false only the rest; left out, both.

pageOf
string
>= 1 characters <= 200 characters

A page of designs

Media typeapplication/json
object
counts
required

How many designs each status holds under the rest of the query: every filter but status, so the counts stay the same whichever status is asked for.

object
approved
required
integer
committed
required
integer
rejected
required
integer
designs
required
Array<object>
object
apiKeyId
required
string | null
approveAfter
required
number | null
approvedAt
required
number | null
approvedVia
required
string | null
changeRequested
required

Whether the customer’s request for changes is open: changeRequest of GET /v1/designs/{id} is not null.

boolean
committedAt
required
number
deletable
required

Whether DELETE /v1/designs/{id} would take the design now: it is not approved, and no print of it exists, of any revision and in any status.

boolean
duplicatedFrom
required
string | null
externalRef
required

Your own reference for the design, as sent on the commit or PUT /v1/designs/{id}/external-ref, or null.

string | null
hasOrder
required

Whether any print of the design has been ordered: hasOrder of GET /v1/designs/{id}.

boolean
hasPrintFile
required

Whether the design has a print file: a completed print of any of its revisions. Unlike hasPrint of GET /v1/designs/{id}, a print of an earlier revision counts.

boolean
id
required
string
origin
required

Where the design came from: the door it was committed through. A duplicate’s is whoever duplicated it.

object
id
required

The designer link’s id, the key’s id, or the connected store’s site address. Null for studio, and for a key set in the deployment’s configuration rather than made in the workspace.

string | null
kind
required

link: a designer link’s page made it. studio: a member made it, in the studio or through an MCP key. secret_key and publishable_key: committed with one of your keys. store: committed by a connected store, with any key its site was given.

string
printSize
required

The size the design prints at, without bleed: the widthMm and heightMm its proof or commit named, or the size fitted for one that named none. A store checks it, with templateVersion, blankId and placementId, against what the product variation sells before accepting the add to cart, since the proof is made in the customer’s browser. Null only for a stored document that holds no usable print size.

object
heightMm
required

The print’s trim height, in millimetres.

number
widthMm
required

The print’s trim width, in millimetres.

number
proofId
required
string | null
proofRevision
required
integer | null
revision
required
integer
standing
required

Whether this is a standing design: the workspace’s own design for a fixed product, made by POST /v1/designs/standing from a template version as its author left it. A standing design is ordered any number of times, each order reusing the print of its current revision. False for a customer’s design.

boolean
status
required
string
templateBaseId
required
string
templateDeleted
required

Whether the design’s template was deleted. The design keeps its template’s name and version; the template itself can no longer be opened.

boolean
templateId
required
string
templateName
required
string | null
templateVersion
required

The version of the template the design was made from: templateId after its @. A design committed from a proof token was made from the proof’s version, whatever the template’s latest is now.

integer | null
page
required
number
pageSize
required
number
total
required
number

Examples

Exampleexample

Example

{
"counts": {
"approved": 1,
"committed": 1,
"rejected": 0
},
"designs": [
{
"apiKeyId": "3b2d9c1e-5a4f-4e7d-8c6b-1a0f9e8d7c6b",
"approveAfter": null,
"approvedAt": 1791770400000,
"approvedVia": "explicit",
"changeRequested": false,
"committedAt": 1791763200000,
"deletable": false,
"duplicatedFrom": null,
"externalRef": "order-1042-line-1",
"hasOrder": true,
"hasPrintFile": true,
"id": "6f1c8a2b-3d4e-4f5a-8b6c-7d8e9f0a1b2c",
"origin": {
"id": "3b2d9c1e-5a4f-4e7d-8c6b-1a0f9e8d7c6b",
"kind": "secret_key"
},
"printSize": {
"heightMm": 360,
"widthMm": 280
},
"proofId": "prf_9c1e2d3f4a5b6c7d8e9f0a1b",
"proofRevision": 2,
"revision": 2,
"standing": false,
"status": "approved",
"templateBaseId": "tshirt-basic",
"templateDeleted": false,
"templateId": "tshirt-basic@2",
"templateName": "Basic T-shirt",
"templateVersion": 2
},
{
"apiKeyId": "3b2d9c1e-5a4f-4e7d-8c6b-1a0f9e8d7c6b",
"approveAfter": null,
"approvedAt": null,
"approvedVia": null,
"changeRequested": true,
"committedAt": 1791849600000,
"deletable": true,
"duplicatedFrom": null,
"externalRef": "cart-7f3e2a-line-2",
"hasOrder": false,
"hasPrintFile": false,
"id": "b7e4d1a0-9c3f-4a62-8d15-2f6e0c9a7b34",
"origin": {
"id": "3b2d9c1e-5a4f-4e7d-8c6b-1a0f9e8d7c6b",
"kind": "secret_key"
},
"printSize": {
"heightMm": 360,
"widthMm": 280
},
"proofId": "prf_1a2b3c4d5e6f7a8b9c0d1e2f",
"proofRevision": 1,
"revision": 1,
"standing": false,
"status": "committed",
"templateBaseId": "tshirt-basic",
"templateDeleted": false,
"templateId": "tshirt-basic@2",
"templateName": "Basic T-shirt",
"templateVersion": 2
}
],
"page": 1,
"pageSize": 20,
"total": 2
}
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: invalid_query

Media typeapplication/json
object
error
required
string

Examples

Exampleinvalid_query

invalid_query

{
"error": "invalid_query"
}
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