Create a session
Your backend uses a scoped organization key to open a short-lived workspace for one customer.
Built to fit your product
Your app owns the customer relationship. Tracecove Mark handles personalization, proof approval, and a consistent order model.
Your backend uses a scoped organization key to open a short-lived workspace for one customer.
Customers add text or artwork, choose one design or different designs for each item, and approve their proof.
Read your organization’s orders and commerce state through the API. Test checkout and fulfillment before your pilot.
Server-side quick start
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
| Resource | Purpose | Endpoint |
|---|---|---|
| Catalog | Products, variants, print areas, and minimum quantities | Public test catalog ↗ |
| Hosted sessions | Scoped, expiring customer workspaces | POST /api/v1/customization-sessions |
| Designs & batches | Text, PNG/JPEG/static SVG, layered compositions, typed templates and independent item designs with quantities | POST /api/v1/designs · /batches |
| Proofs | Immutable raster review, frozen per-item SVG layouts, and explicit approval receipts | POST /api/v1/proofs |
| Quotes & orders | Estimates and idempotent, approved orders | POST /api/v1/quotes · /orders |
| Order commerce | Delivery, payment, fulfillment, and exceptions | GET /api/v1/orders/:id/commerce |
Send a unique Idempotency-Key when creating an order. Reuse it only when retrying the same request.
Approve the exact sha256 returned with a proof. Changes require a new proof and approval.
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.