Skip to content

Proof a correction of a design without making it

POST
/v1/designs/{id}/correction-proofs
curl --request POST \
--url https://api.pixonaut.app/v1/designs/example/correction-proofs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "expectedRevision": 2, "values": { "namn": { "content": "Merry Christmas, Anna" } } }'

Operation ID: designs.correctionProofs.create

Applies values on top of the design as it is at expectedRevision, under the rules its template version sets and at the size it was committed at, and renders the result, exactly as PATCH /v1/designs/{id} would. Empty values proof the design as it is. Writes nothing to the design. Made in the customer session x-pixonaut-session names, if any, whose wipe deletes it until it is redeemed. The answer’s proofToken is redeemed by PATCH /v1/designs/{id} with {proofToken}, which makes this document the design’s next revision as long as the design is still at expectedRevision. Refused for a design that takes no correction. Through a correction link handed out with adjustLayout, the proof is a layout adjustment of a standing design, ordered or not: values may only move and scale its layers (<layerId>.transform, xMm, yMm and scale), each within the plate, and its token is taken by POST /v1/designs/standing, never by PATCH.

id
required
string
Media typeapplication/json
object
expectedRevision
required

The design’s revision as the caller read it. When the design has been corrected since, the correction is refused revision_changed.

integer
> 0
values
required

What to change, in the shape a commit’s values take: an object keyed by the layerId of a field of the design’s correctionForm, each holding an object of that field’s prop and its new value, such as {"<layerId>": {"<prop>": "new wording"}}. Applied on top of the design as it is, so anything not named stays as it was.

object
key
additional properties

Examples

Exampleexample

Example

{
"expectedRevision": 2,
"values": {
"namn": {
"content": "Merry Christmas, Anna"
}
}
}

The correction’s proof

Media typeapplication/json
object
docHash
required
string
expiresAt
required

When the proof and its token expire, in milliseconds since the Unix epoch.

integer
lowResolution
required

The pictures that print below printFloorDpi at the design’s print size. A warning: nothing is refused for it.

Array<object>
object
actualPx
required

The picture’s pixels along the edge that decides.

number
assetId
required
string
effectiveDpi
required

Pixels per inch along that edge, as printed.

number
layerId
required

The layer the picture fills, or the artwork’s own key for its image background.

string
minPx
required

The pixels that edge needs at the floor.

number
printFloorDpi
required

The minimum print resolution the design’s pictures were judged against: the template’s own, else the tenant’s.

number
proofToken
required

Redeemed by PATCH /v1/designs/{id} with a secret key or a connected store’s integration key, to make this the design’s next revision.

string
proofUrl
required

The proof’s image, for the customer to see.

string
revision
required

The revision the proof was made from.

integer

Examples

Exampleexample

Example

{
"docHash": "9f2b7c41d0e3a58c",
"expiresAt": 1760606400000,
"lowResolution": [],
"printFloorDpi": 150,
"proofToken": "EXAMPLE_proof_token_not_a_real_one",
"proofUrl": "https://api.pixonaut.example/p/EXAMPLE_proof_token_not_a_real_one",
"revision": 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: bad_request

Media typeapplication/json
object
error
required
string

Examples

Examplebad_request

bad_request

{
"error": "bad_request"
}
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: not_editable, revision_changed, not_standing

Media typeapplication/json
object
error
required
string
reason

ordered: a print of the design has an order, so it is what was made; duplicate it instead. erased: the design’s personal data was erased, and it takes nothing more. cut_from_layout: the design is one placement’s print cut from a panel layout’s canvas; commit a new design through the layout (POST /v1/designs/layout) instead. linked: the design is one placement’s print of a linked group, which one design drives; commit the group’s placements again instead. Always sent with not_editable.

string
revision

Always sent with revision_changed.

integer

Examples

not_editable

{
"error": "not_editable",
"reason": "erased"
}
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: asset_map_too_large, constraint_violation, design_doc_unreadable, payload_too_large

Media typeapplication/json
object
bytes

Always sent with asset_map_too_large, and may be sent with payload_too_large.

number
error
required
string
maxBytes

Always sent with asset_map_too_large, payload_too_large.

number
violations

Always sent with constraint_violation.

Array<object>
object
characters

On a text_draws_fallback_glyphs or text_draws_missing_glyphs warning: the characters the text’s font cannot draw, each once, in the order the text first holds them. Absent on every other violation.

Array<string>
given
required
language

The language whose overrides break the rule, when only the template as it reads in that language does. Absent, the original.

string
layerId
required
string
prop
required
string
rule
required
string
severity
required

error refuses a publish; warning is worth the author’s attention and never does.

string

Examples

asset_map_too_large

{
"bytes": 0,
"error": "asset_map_too_large",
"maxBytes": 0
}
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: rate_limited

Media typeapplication/json
object
error
required
string

Examples

Examplerate_limited

rate_limited

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

The caller left before the render started

Media typeapplication/json
object
error
required
string

Examples

Exampleclient_closed_request

client_closed_request

{
"error": "client_closed_request"
}
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, render_failed. A request that failed unexpectedly answers as text instead.

object
error
required
string

Examples

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.

Refused: assets_unavailable, lock_timeout

Media typeapplication/json
object
error
required
string

Examples

assets_unavailable

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