---
title: "Render a design on a product"
method: POST
path: "/api/mockup/render"
tags: ["Design Pipeline"]
---

# Render a design on a product

`POST /api/mockup/render`

## Request

- Base URL: `https://api.crayonz.ai`
- URL: `https://api.crayonz.ai/api/mockup/render`
- Auth: API key in header `X-API-Key`

Garment-accurate mockup: your print-ready design placed on a real product template in a real colour, with fabric overlay. GET the same path to list garments, colours and printable views.

## Request body

- object
  - `design_url` string, required: Public https URL of a transparent PNG (e.g. file_url from /api/design/custom)
  - `garment` string, required: tshirt, oversized_tshirt, hoodie, zipper_hoodie, polo, acid_wash_tshirt, …
  - `color` string: Colour name or hex from the garment's palette; defaults to black
  - `view` string: front, back, left_sleeve, right_sleeve (per garment)
  - `fill_mode` 'contain' | 'cover': contain fits inside the print area; cover fills and clips

## Response `200`

Success

- object
  - `status` string: "success" or "error"
  - `mockup_url` string: The design composited onto the garment template, in the requested colour and view.
  - `garment` string: The garment slug that was rendered
  - `color` object: { name, hex } — the colour actually used (defaults to black when omitted)
  - `view` string: front, back, left_sleeve or right_sleeve
  - `credits_charged` integer: Always 10 for this route; present for parity with the other endpoints

## Other responses

- `401`: Unauthorized — invalid or missing API key
- `402`: Insufficient credits
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crayonz/apis/crayonz-api.md) · [All operations](https://skmtc.dev/crayonz/apis/crayonz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crayonz/apis/crayonz-api/revisions/1114c84167b2?raw)
