---
title: "Upload the preview of one of the client's designs"
method: POST
path: "/v3/client-book/client/{id}/design/{designId}/preview"
tags: ["Client Book"]
---

# Upload the preview of one of the client's designs

`POST /v3/client-book/client/{id}/design/{designId}/preview`

## Request

- Base URL: `https://api.rhinoartisan.com`
- URL: `https://api.rhinoartisan.com/v3/client-book/client/{id}/design/{designId}/preview`
- Auth: API key in header `apikey`
- TypeScript: <https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/docs/v3/client-book/client/:id/design/:designId/preview/post.ts> (a function with typed inputs; its response is checked against the schema)

Stores the image captured from the viewer as the design's preview (`kind`: main, top or side) and returns the design. Same as the Drive endpoint, for showroom members.

## Path parameters

- `id` integer, required
- `designId` integer, required

## Request body `multipart/form-data`

- object
  - `preview` string, binary
  - `kind` 'main' | 'top' | 'side'

## Response `200`

Preview stored

## Other responses

- `400`: MISSING_PREVIEW | INVALID_KIND
- `404`: CLIENT_NOT_FOUND | DESIGN_NOT_FOUND

## Changes

- **2026-10-02** `82c79770c36b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/changes/v3/client-book/client/:id/design/:designId/preview/post.md)

---

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