---
title: "Upload product image"
method: POST
path: "/v1/products/{productId}/image"
tags: ["Products"]
---

# Upload product image

`POST /v1/products/{productId}/image`

## Request

- Base URL: `https://api.yuvexpay.com`
- URL: `https://api.yuvexpay.com/v1/products/{productId}/image`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/yuvexpay/apis/yuvexpay-api/docs/v1/products/:productId/image/post.ts> (a function with typed inputs; its response is checked against the schema)

Upload (or replace) the image for a product. Send a single file as `multipart/form-data`. Accepted formats: PNG, JPEG. Maximum 10 MB.

## Path parameters

- `productId` string, uuid, required

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: Image file (PNG or JPEG, max 10 MB).

## Response `200`

Image uploaded.

- object
  - `product` Product
    - `id` string, uuid
    - `name` string
    - `description` string
    - `amount` number
    - `externalId` string
    - `isActive` boolean
    - `createdAt` string, date-time

## Other responses

- `400`: Validation error.
- `401`: Missing or invalid authentication token.
- `404`: Resource not found.

## Changes

- **2026-05-03** `a382df24e843`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/yuvexpay/apis/yuvexpay-api/changes/v1/products/:productId/image/post.md)

---

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