---
search:
  tags:
    - Produits
    - POST
seo:
  description: >-
    Téléverse une image produit (champ multipart file) et définit imageUrl.
    Remplace l’image précédente. Nécessite une clé Write. 10 Mio max. (10 485
    760 octets).…
sidebar:
  label: Téléverser l’image du produit
  badge: POST
title: Téléverser l’image du produit
type: openapi-operation
---
Téléverse une image produit (champ multipart `file`) et définit `imageUrl`. Remplace l’image précédente. Nécessite une clé Write. 10 Mio max. (10 485 760 octets). Le type est lu dans l’en-tête `Content-Type` de la partie : jpeg, png, webp ou gif.

`POST /products/{productId}/image`

**Request body** (`multipart/form-data`, required)

- `file` (any, required) — Fichier image (jpeg, png, webp ou gif), 10 Mio max.

Request body example:

```json
{
  "file": null
}
```

**Responses**

- `200` — Téléversé
- `400` — Paramètres ou corps invalides.
- `403` — Clé API absente, inconnue ou inactive, ou clé Read sur une opération d’écriture.
- `404` — Aucun élément avec cet id.
- `413` — Fichier trop volumineux

Response example, 200:

```json
{
  "data": {
    "url": "https://firebasestorage.googleapis.com/v0/b/example/o/instance%2Forg%2Fproducts%2Fprod%2Fphoto.jpg?alt=media&token=abc",
    "imageUrl": "https://firebasestorage.googleapis.com/v0/b/example/o/instance%2Forg%2Fproducts%2Fprod%2Fphoto.jpg?alt=media&token=abc"
  }
}
```

Response example, 400:

```json
{
  "statusCode": 400,
  "message": "Validation failed for Field: name, Error: Required",
  "timestamp": "2024-04-20T12:00:00.000Z",
  "path": "/api/v1/suppliers"
}
```

Response example, 403:

```json
{
  "statusCode": 403,
  "message": "Unknown Error",
  "timestamp": "2024-04-20T12:00:00.000Z",
  "path": "/api/v1/products"
}
```
