Built to fit your product

A few lines.
A world of possibilities.

Your app owns the customer relationship. Tracecove Mark handles personalization, proof approval, and a consistent order model.

01

Create a session

Your backend uses a scoped organization key to open a short-lived workspace for one customer.

02

Send them to the studio

Customers add text or artwork, choose one design or different designs for each item, and approve their proof.

03

Follow the order

Read your organization’s orders and commerce state through the API. Test checkout and fulfillment before your pilot.

Server-side quick start

Your application.
Their creative moment.

Use an organization key with sessions:write. The hosted studio exchanges the short-lived token for a secure session; your key stays on your server.

Start in test mode. No payment is collected and no physical goods are produced by the sandbox.

Try the studio →
// Run this on your server. Never expose MARK_API_KEY to a browser.
const response = await fetch(process.env.MARK_BASE_URL +
  "/api/v1/customization-sessions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + process.env.MARK_API_KEY,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    customerReference: "customer-order-2026",
    productIds: ["prod_mug_ceramic"],
    expiresInSeconds: 1800
  })
});
if (!response.ok) throw new Error("Studio session could not be created");
const { data } = await response.json();
// Redirect your authenticated customer to data.url.

The building blocks

A clear contract, end to end.

ResourcePurposeEndpoint
CatalogProducts, variants, print areas, and minimum quantitiesPublic test catalog ↗
Hosted sessionsScoped, expiring customer workspacesPOST /api/v1/customization-sessions
Designs & batchesText, PNG/JPEG/static SVG, layered compositions, typed templates and independent item designs with quantitiesPOST /api/v1/designs · /batches
ProofsImmutable raster review, frozen per-item SVG layouts, and explicit approval receiptsPOST /api/v1/proofs
Quotes & ordersEstimates and idempotent, approved ordersPOST /api/v1/quotes · /orders
Order commerceDelivery, payment, fulfillment, and exceptionsGET /api/v1/orders/:id/commerce

Retries are expected.

Send a unique Idempotency-Key when creating an order. Reuse it only when retrying the same request.

Approval means a specific proof.

Approve the exact sha256 returned with a proof. Changes require a new proof and approval.

Your data model. Your templates.

Your app supplies its own fields and templates using generic text, image, QR, and rectangle elements. Mark handles artwork and printing records. Text, QR geometry and accepted SVG artwork stay vector; PNG/JPEG uploads stay raster. Print-file qualification remains part of supplier acceptance.