---
seo_title: API WebP vers JPEG : Convertir des images | EnConvert
meta_desc: Convertissez WebP en JPEG via une API REST. POST /v1/convert/webp-to-jpeg accepte l'upload multipart .webp et renvoie les octets JPEG ou une URL présignée.
keywords: convertir webp en jpeg api, api webp vers jpeg, convertir webp en jpg api rest, webp vers jpeg python, webp vers jpeg node js, api conversion image webp, transparence webp vers jpeg, convertisseur webp jpeg api
---

# API WebP vers JPEG

L'API WebP vers JPEG convertit une image WebP au format JPEG en une seule requête vers `POST /v1/convert/webp-to-jpeg`. Envoyez un fichier `.webp` en multipart/form-data et recevez les octets JPEG bruts en retour, ou définissez `direct_download=false` pour obtenir des métadonnées JSON avec une URL de téléchargement présignée à la place. Comme JPEG ne prend pas en charge la transparence, les zones transparentes du WebP sont composées sur un fond blanc.

---

## Point de terminaison

```
POST /v1/convert/webp-to-jpeg
```

**Content-Type :** `multipart/form-data`

**Entrée acceptée :** fichiers `.webp`

**Format de sortie :** `.jpeg` (`image/jpeg`)

---

## Authentification

Nécessite soit une clé API privée, soit un jeton JWT issu d'une clé publique.

```
X-API-Key: sk_your_private_key
```

Ou :

```
Authorization: Bearer <jwt_token>
```

---

## Paramètres de la requête

| Paramètre | Type | Requis | Par défaut | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Oui | -- | Le fichier image `.webp` à convertir. |
| `output_filename` | `string` | Non | Nom du fichier d'entrée | Nom de fichier de sortie personnalisé. L'extension `.jpeg` est ajoutée automatiquement. |
| `direct_download` | `boolean` | Non | `true` | Lorsque la valeur est `true`, renvoie les octets bruts de l'image. Lorsqu'elle est `false`, renvoie des métadonnées JSON avec une URL de téléchargement présignée. |

---

## Détails de la conversion

- Utilise **Pillow** pour la conversion directe de format
- Si le WebP possède un canal alpha (RGBA), les zones transparentes sont composées sur un **fond blanc**
- La qualité de sortie est réglée au maximum (100)

<div class="alert alert-info">
<strong>Note sur la transparence :</strong> JPEG ne prend pas en charge la transparence. Toute zone transparente de votre WebP apparaîtra en blanc dans la sortie JPEG.
</div>

---

## Réponse

### Téléchargement direct (`direct_download=true`, par défaut)

```
HTTP 200 OK
Content-Type: image/jpeg
Content-Disposition: inline; filename="image_20260405_123456789.jpeg"
```

Renvoie les octets bruts de l'image.

### Réponse de métadonnées (`direct_download=false`)

```json
{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/webp-to-jpeg/image_20260405_123456789.jpeg",
    "filename": "image_20260405_123456789.jpeg",
    "file_size": 45678,
    "conversion_time_seconds": 0.5
}
```

---

## Exemples de code

### Python

```python
import requests

with open("image.webp", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/webp-to-jpeg",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("image.webp", f)}
    )

with open("image_20260405_123456789.jpeg", "wb") as out:
    out.write(response.content)
```

### Node.js

```javascript
const form = new FormData();
form.append("file", fs.createReadStream("image.webp"));

const response = await fetch("https://api.enconvert.com/v1/convert/webp-to-jpeg", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

fs.writeFileSync("image_20260405_123456789.jpeg", Buffer.from(await response.arrayBuffer()));
```

### PHP

```php
$ch = curl_init("https://api.enconvert.com/v1/convert/webp-to-jpeg");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
    CURLOPT_POSTFIELDS => ["file" => new CURLFile("image.webp")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("image_20260405_123456789.jpeg", $output);
```

### Go

```go
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "image.webp")
file, _ := os.Open("image.webp")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/webp-to-jpeg", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
```

---

## Réponses d'erreur

| Statut | Condition |
|--------|-----------|
| `400 Bad Request` | Le fichier n'est pas un fichier `.webp` |
| `400 Bad Request` | La conversion de l'image a échoué (fichier corrompu ou non pris en charge) |
| `401 Unauthorized` | Clé API / jeton JWT manquant ou invalide |
| `402 Payment Required` | Quota mensuel d'ops épuisé |
| `402 Payment Required` | Limite de stockage atteinte |
| `413 Payload Too Large` | Le fichier dépasse la taille maximale autorisée par le forfait |

---

## Limites

| Limite | Valeur |
|-------|-------|
| Taille maximale de fichier | Selon le forfait (Founding : 5 MB) |
| Qualité de sortie | Maximale (non configurable) |
| Conversions mensuelles | Selon le forfait |

---

## Questions fréquentes

### Comment convertir WebP en JPEG avec une API REST ?

Envoyez une requête `POST` à `/v1/convert/webp-to-jpeg` avec votre fichier `.webp` dans un corps `multipart/form-data`, et authentifiez-vous avec un en-tête `X-API-Key` ou un jeton JWT `Authorization: Bearer`. Par défaut, l'API renvoie le JPEG converti sous forme d'octets bruts.

### Que se passe-t-il avec la transparence lors de la conversion de WebP en JPEG ?

JPEG ne prend pas en charge la transparence : si le WebP possède un canal alpha (RGBA), les zones transparentes sont composées sur un fond blanc dans le JPEG produit.

### Puis-je obtenir une URL de téléchargement au lieu des octets JPEG bruts ?

Oui. Définissez `direct_download=false` et l'API renvoie des métadonnées JSON incluant `presigned_url`, `filename`, `file_size` et `conversion_time_seconds` au lieu des octets bruts.

### Pourquoi l'API WebP vers JPEG renvoie-t-elle 402 Payment Required ?

Une réponse `402 Payment Required` signifie que le quota mensuel d'ops ou la limite de stockage de votre forfait a été atteint.

### Quelle est la taille maximale d'un fichier WebP que je peux envoyer ?

La taille de fichier maximale dépend de votre forfait (5 MB pour le forfait Founding). Les fichiers dépassant la limite de votre forfait sont rejetés avec `413 Payload Too Large`.
