The marks API manages your mark sets and applies them to imposition jobs. Every endpoint is under your team,
starting with /a/{team_slug}/marks/api/v1/mark-sets/, and takes the same authentication as the rest of the API: an API key of a team member,
or a signed-in session (see API overview). Lengths are in points (1/72 in). What marks are and how they place is on
How print marks work.
Order data that marks print (order numbers, PO, your own fields, per-copy rows) is written on the imposition API: see Imposition API.
A job's marks from start to finish#
SETS=https://app.example.com/a/acme/marks/api/v1/mark-sets/
JOB=https://app.example.com/a/acme/marks/api/v1/jobs/42/marks/
AUTH="Authorization: Api-Key $API_KEY"
# 1. Make a mark set from a preset (the answer has its id, here 7)
curl -s -X POST "$SETS" -H "$AUTH" -H "Content-Type: application/json" \
-d '{"name": "Slug line", "preset": "slug_line"}'
# 2. Add it to imposition job 42
curl -s -X PUT "$JOB" -H "$AUTH" -H "Content-Type: application/json" \
-d '{"added": [{"set": 7, "pin": null}]}'
# 3. Check the marks on the job's layout before exporting
curl -s "${JOB}check/" -H "$AUTH"
Mark sets and presets#
/a/{team_slug}/marks/api/v1/mark-sets/
marks_mark_sets_list ·
View in API reference
/a/{team_slug}/marks/api/v1/mark-sets/
marks_mark_sets_create ·
View in API reference
/a/{team_slug}/marks/api/v1/mark-sets/{id}/
marks_mark_sets_retrieve ·
View in API reference
/a/{team_slug}/marks/api/v1/mark-sets/{id}/
Save the draft: a changed document makes a new version.
marks_mark_sets_partial_update ·
View in API reference
/a/{team_slug}/marks/api/v1/presets/
marks_presets_list ·
View in API reference
A set is a document of marks (doc): {"schema": 1, "name": …, "units": "mm", "requires": {"profile": null},
"marks": [...]}. Create a set from {name, doc} or from {name, preset}. Lengths in a doc you send may be unit
strings ("8mm", "0.25in"); reads return points. Validation errors name the JSON path, such as
{"doc": {"marks[0].place.anchor": ["…"]}}. Each change saves a version (versions/, versions/{number}/restore/);
jobs can pin one. A set in use can't be deleted: archive it. export/ and import/ move a set between teams as
JSON, with assets referenced by key.
Previews and templates#
/a/{team_slug}/marks/api/v1/preview/
Resolve a document or a set on a sample, a job layout sheet or an artwork: preview JSON.
marks_preview ·
View in API reference
/a/{team_slug}/marks/api/v1/variables/
The variable registry: dimensions, paths, types, labels, samples and team fields.
marks_variables ·
View in API reference
/a/{team_slug}/marks/api/v1/validate/
marks_validate ·
View in API reference
/a/{team_slug}/marks/api/v1/render/
marks_render ·
View in API reference
preview/ places a set (set or an unsaved doc) on a sample sheet, roll or 1-up, or on a job's layout
({"job": 42, "layout": "c-…", "sheet": 0}), and returns every placed mark with its box, text, code and problems.
variables/ lists every field a template can use, with samples. validate/ checks a template; render/ fills one.
A job's marks#
/a/{team_slug}/marks/api/v1/jobs/{id}/marks/
Effective sets with their sources, and the job's added / disabled sets, item toggles, overrides and media settings.
marks_job_marks_retrieve ·
View in API reference
/a/{team_slug}/marks/api/v1/jobs/{id}/marks/
Effective sets with their sources, and the job's added / disabled sets, item toggles, overrides and media settings.
marks_job_marks_update ·
View in API reference
/a/{team_slug}/marks/api/v1/jobs/{id}/marks/resolved/
Preview JSON for the viewer overlay: one sheet, or every sheet in pages of 20.
marks_job_resolved ·
View in API reference
/a/{team_slug}/marks/api/v1/jobs/{id}/marks/check/
Issues over every sheet and piece, grouped with counts and examples; nothing is drawn.
marks_job_check ·
View in API reference
jobs/{id}/marks/ returns the sets that apply (effective, each with its sources: team, cutter, printer or job),
and what the job changed: added ([{set, pin}]), disabled (inherited sets turned off), artwork_disabled
({"<artwork id>": [set ids]}), settings (stretch, reflective) and dismissed_suggestions. PUT replaces the
fields you send; settings merge.
resolved/ places the marks on a layout (layout = a c-… or l-… ref; default the selected or best layout) for one
sheet, or every sheet in pages of 20. check/ returns the problems of every sheet grouped by code, with counts and
examples, without drawing. Both answer 409 while the job has no layout.
customize/ and reset/ make and drop a job-only copy of a set; exports/ lists what each export contained.
/a/{team_slug}/marks/api/v1/artworks/{id}/marks/
Item-mark sets for the 1-up tab with per-item toggles (?copy=n or ?preview=1 resolves them); PUT turns sets off on this item and sets its safe-area inset (used only without prepress data).
marks_artwork_marks_retrieve ·
View in API reference
artworks/{id}/marks/ lists the item-mark sets of one artwork with their toggles; PUT {"disabled": [...]} turns
sets off on that item.
Cutters, printers and defaults#
/a/{team_slug}/marks/api/v1/registration-presets/
marks_registration_presets ·
View in API reference
/a/{team_slug}/marks/api/v1/cutters/{id}/registration/
The cutter's registration rules: a vendor preset plus the team's overrides, with the effective profile and every value's source tag.
marks_cutter_registration_update ·
View in API reference
/a/{team_slug}/marks/api/v1/printers/{id}/mark-profile/
The printer's non-printable edges (pt) and white spot name.
marks_printer_mark_profile_update ·
View in API reference
/a/{team_slug}/marks/api/v1/defaults/
Apply a set by default (team defaults need a team admin).
marks_defaults_create ·
View in API reference
A cutter's registration is a preset (see registration-presets/) plus your overrides. A printer's mark profile
holds its nonprintable edges ({lead, trail, left, right}) and white spot. defaults/ adds a set as the team
default or a cutter's or printer's default (target: team, cutter or printer; new_jobs_only).
Fields, assets and settings#
/a/{team_slug}/marks/api/v1/fields/
marks_fields_list ·
View in API reference
/a/{team_slug}/marks/api/v1/assets/
Upload (multipart): PNG, JPEG, PDF, SVG (converted to PDF) or a TrueType font.
marks_assets_create ·
View in API reference
/a/{team_slug}/marks/api/v1/assets/from-files/
Make an asset from a version picked in Files (`version_id`).
marks_assets_from_files ·
View in API reference
/a/{team_slug}/marks/api/v1/settings/
The team's display unit, marks spot and export checks downgraded to warnings (admins change them).
marks_settings_update ·
View in API reference
Fields declare order-data keys (scope job, item or copy; key, label, type, sample, required);
fields/discovered/ lists keys your system sent that aren't declared. variables/ also lists your team's
file properties as fields with scope file (file.<key>, with their labels): items whose
file is in Files print them (see Order data in marks).
Assets are images, PDFs or fonts (20 MB each) that image and text marks use by key. An asset's content is a version
in Files: file_version (its id; null for an asset uploaded before assets moved to Files), file_id, file_path
and file_version_number say which. An image asset's preview_url is assets/{id}/content/, which redirects to
the image through a download link made for that request, so a page left open keeps showing it (the link it
redirects to is short-lived: don't store it). An upload to assets/ is stored in Files, in your team's Marks folder, and counts toward
storage (507 with code quota_exceeded when storage is full). assets/from-files/ makes an asset from a version
you already have ({"version_id": 42}; key and name default to the file's name), without copying it;
assets/ takes a version_id in place of the file too, with your own key and name. PATCH assets/{id}/
with a file upload or a version_id replaces the content and keeps the key. Deleting an asset leaves its file in
Files; a version an asset uses can't be deleted from Files.
Team settings hold the display_unit, the team's marks spot colour (marks_spot) and gate_downgrades: problem
codes team admins allow to export as warnings.
Production keys#
/a/{team_slug}/marks/api/v1/keys/{key}/
Resolve a scanned sheet code to its job, layout, sheet and cut-file name.
marks_keys_retrieve ·
View in API reference
keys/{key}/ resolves a sheet code (see Cutter registration and job codes) to its job, layout, sheet and cut file
name. The short link /m/{key}/ opens it in the app for team members.
Every operation#
| Method | Path | What it does |
|---|---|---|
| GET | /a/{team_slug}/marks/api/v1/artworks/{id}/marks/ | Item-mark sets for the 1-up tab with per-item toggles (?copy=n or ?preview=1 resolves them); PUT turns sets off on this item and sets its safe-area inset (used only without prepress data). |
| PUT | /a/{team_slug}/marks/api/v1/artworks/{id}/marks/ | Item-mark sets for the 1-up tab with per-item toggles (?copy=n or ?preview=1 resolves them); PUT turns sets off on this item and sets its safe-area inset (used only without prepress data). |
| GET | /a/{team_slug}/marks/api/v1/assets/ | marks_assets_list |
| POST | /a/{team_slug}/marks/api/v1/assets/ | Upload (multipart): PNG, JPEG, PDF, SVG (converted to PDF) or a TrueType font. |
| GET | /a/{team_slug}/marks/api/v1/assets/{id}/ | marks_assets_retrieve |
| PATCH | /a/{team_slug}/marks/api/v1/assets/{id}/ | Rename, replace the file (an upload, stored in Files) or point the asset at another Files version (`version_id`). |
| DELETE | /a/{team_slug}/marks/api/v1/assets/{id}/ | Delete the asset. |
| GET | /a/{team_slug}/marks/api/v1/assets/{id}/content/ | The asset's content: a redirect to a download URL made for this request (short-lived on S3). |
| POST | /a/{team_slug}/marks/api/v1/assets/from-files/ | Make an asset from a version picked in Files (`version_id`). |
| GET | /a/{team_slug}/marks/api/v1/cutters/{id}/registration/ | The cutter's registration rules: a vendor preset plus the team's overrides, with the effective profile and every value's source tag. |
| PUT | /a/{team_slug}/marks/api/v1/cutters/{id}/registration/ | The cutter's registration rules: a vendor preset plus the team's overrides, with the effective profile and every value's source tag. |
| GET | /a/{team_slug}/marks/api/v1/defaults/ | marks_defaults_list |
| POST | /a/{team_slug}/marks/api/v1/defaults/ | Apply a set by default (team defaults need a team admin). |
| PATCH | /a/{team_slug}/marks/api/v1/defaults/{id}/ | marks_defaults_partial_update |
| DELETE | /a/{team_slug}/marks/api/v1/defaults/{id}/ | marks_defaults_destroy |
| GET | /a/{team_slug}/marks/api/v1/fields/ | marks_fields_list |
| POST | /a/{team_slug}/marks/api/v1/fields/ | marks_fields_create |
| GET | /a/{team_slug}/marks/api/v1/fields/{id}/ | marks_fields_retrieve |
| PATCH | /a/{team_slug}/marks/api/v1/fields/{id}/ | marks_fields_partial_update |
| DELETE | /a/{team_slug}/marks/api/v1/fields/{id}/ | marks_fields_destroy |
| GET | /a/{team_slug}/marks/api/v1/fields/discovered/ | Undeclared metadata keys the API sent in the last 90 days. |
| GET | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/ | Effective sets with their sources, and the job's added / disabled sets, item toggles, overrides and media settings. |
| PUT | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/ | Effective sets with their sources, and the job's added / disabled sets, item toggles, overrides and media settings. |
| GET | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/check/ | Issues over every sheet and piece, grouped with counts and examples; nothing is drawn. |
| GET | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/context/ | The data bundle for JS previews (template.js contextFor(bundle, pieceId)). |
| POST | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/customize/ | Customize for this job: fork a set into a job-local copy that replaces it here. |
| GET | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/exports/ | marks_job_exports |
| POST | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/reset/ | Reset to library: delete the job's fork; the library set applies again. |
| GET | /a/{team_slug}/marks/api/v1/jobs/{id}/marks/resolved/ | Preview JSON for the viewer overlay: one sheet, or every sheet in pages of 20. |
| GET | /a/{team_slug}/marks/api/v1/keys/{key}/ | Resolve a scanned sheet code to its job, layout, sheet and cut-file name. |
| GET | /a/{team_slug}/marks/api/v1/mark-sets/ | marks_mark_sets_list |
| POST | /a/{team_slug}/marks/api/v1/mark-sets/ | marks_mark_sets_create |
| GET | /a/{team_slug}/marks/api/v1/mark-sets/{id}/ | marks_mark_sets_retrieve |
| PATCH | /a/{team_slug}/marks/api/v1/mark-sets/{id}/ | Save the draft: a changed document makes a new version. |
| DELETE | /a/{team_slug}/marks/api/v1/mark-sets/{id}/ | Delete an unused set; 409 with its usage otherwise (archive it instead). |
| POST | /a/{team_slug}/marks/api/v1/mark-sets/{id}/archive/ | Archiving a team default removes it from every job, so it needs a team admin. |
| POST | /a/{team_slug}/marks/api/v1/mark-sets/{id}/duplicate/ | marks_mark_sets_duplicate |
| GET | /a/{team_slug}/marks/api/v1/mark-sets/{id}/export/ | marks_mark_sets_export |
| POST | /a/{team_slug}/marks/api/v1/mark-sets/{id}/restore/ | marks_mark_sets_restore |
| GET | /a/{team_slug}/marks/api/v1/mark-sets/{id}/usage/ | marks_mark_sets_usage |
| GET | /a/{team_slug}/marks/api/v1/mark-sets/{id}/versions/ | marks_mark_sets_versions |
| GET | /a/{team_slug}/marks/api/v1/mark-sets/{id}/versions/{number}/ | marks_mark_sets_version |
| POST | /a/{team_slug}/marks/api/v1/mark-sets/{id}/versions/{number}/restore/ | marks_mark_sets_version_restore |
| POST | /a/{team_slug}/marks/api/v1/mark-sets/import/ | Create a library set from a portable export; asset keys the team lacks come back as problems. |
| GET | /a/{team_slug}/marks/api/v1/presets/ | marks_presets_list |
| GET | /a/{team_slug}/marks/api/v1/presets/{id}/ | marks_presets_retrieve |
| POST | /a/{team_slug}/marks/api/v1/preview/ | Resolve a document or a set on a sample, a job layout sheet or an artwork: preview JSON. |
| GET | /a/{team_slug}/marks/api/v1/printers/{id}/mark-profile/ | The printer's non-printable edges (pt) and white spot name. |
| PUT | /a/{team_slug}/marks/api/v1/printers/{id}/mark-profile/ | The printer's non-printable edges (pt) and white spot name. |
| GET | /a/{team_slug}/marks/api/v1/registration-presets/ | marks_registration_presets |
| POST | /a/{team_slug}/marks/api/v1/render/ | marks_render |
| GET | /a/{team_slug}/marks/api/v1/settings/ | The team's display unit, marks spot and export checks downgraded to warnings (admins change them). |
| PUT | /a/{team_slug}/marks/api/v1/settings/ | The team's display unit, marks spot and export checks downgraded to warnings (admins change them). |
| POST | /a/{team_slug}/marks/api/v1/validate/ | marks_validate |
| GET | /a/{team_slug}/marks/api/v1/variables/ | The variable registry: dimensions, paths, types, labels, samples and team fields. |