---
seo_title: API JPEG vers WebP : Optimiser des images avec WebP | EnConvert
meta_desc: Convertissez du JPEG en WebP via POST /v1/convert/jpeg-to-webp. Fichiers WebP 25-35% plus légers que le JPEG à qualité équivalente, en bytes ou URL présignée.
keywords: api jpeg vers webp, convertir jpg en webp api, optimiser des images avec webp, api de conversion webp, réduire la taille d'une image api, convertir jpeg en webp programmatiquement, api webp pour le web
---

# API JPEG vers WebP

Convertissez des images JPEG en WebP de façon programmatique avec `POST /v1/convert/jpeg-to-webp`. L'endpoint accepte un envoi `.jpeg` ou `.jpg` et produit un WebP haute qualité, plus léger que le JPEG équivalent : une étape d'optimisation d'image simple pour vos pipelines de diffusion web. Les réponses renvoient soit les octets bruts de l'image pour un téléchargement direct, soit des métadonnées JSON avec une URL de téléchargement présignée.

---

## Endpoint

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

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

**Entrée acceptée :** fichiers `.jpeg or .jpg`

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

---

## 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 | Obligatoire | Valeur par défaut | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Oui | -- | Le fichier image `.jpeg or .jpg` à convertir. |
| `output_filename` | `string` | Non | Nom du fichier d'entrée | Nom de fichier de sortie personnalisé. L'extension `.webp` est ajoutée automatiquement. |
| `direct_download` | `boolean` | Non | `true` | Si `true`, renvoie les octets bruts de l'image. Si `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 une conversion directe de format
- Les données de couleur RGB du JPEG sont conservées dans le WebP obtenu
- La qualité de sortie est fixée au maximum (100)
- Le WebP produit généralement des fichiers 25-35 % plus légers que le JPEG à qualité visuelle équivalente


---

## Réponse

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

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

Renvoie les octets bruts de l'image.

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

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

---

## Exemples de code

### Python

```python
import requests

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

with open("photo_20260405_123456789.webp", "wb") as out:
    out.write(response.content)
```

### Node.js

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

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

fs.writeFileSync("photo_20260405_123456789.webp", Buffer.from(await response.arrayBuffer()));
```

### PHP

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

### Go

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

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/jpeg-to-webp", 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 `.jpeg or .jpg` |
| `400 Bad Request` | Échec de la conversion de l'image (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 plan |

---

## Limites

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

---

## Questions fréquentes

### Comment convertir un JPG en WebP avec une API REST ?

Envoyez une requête POST `multipart/form-data` à `/v1/convert/jpeg-to-webp` avec votre fichier `.jpeg` ou `.jpg` dans le champ `file`, authentifiée via `X-API-Key` ou un jeton JWT `Bearer`. Par défaut, l'API répond avec les octets bruts du WebP.

### Le WebP est-il beaucoup plus léger que le JPEG ?

Le WebP produit généralement des fichiers 25-35 % plus légers que le JPEG à qualité visuelle équivalente. Cet endpoint convertit avec Pillow à qualité maximale (100), en conservant les données de couleur RGB du JPEG.

### Puis-je obtenir une URL de téléchargement plutôt que les octets bruts de l'image ?

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

### Puis-je définir la qualité de sortie ou le nom de fichier du WebP ?

La qualité de sortie est fixée au maximum (100) et n'est pas configurable. Vous pouvez définir un nom de fichier de sortie personnalisé avec le paramètre `output_filename` ; l'extension `.webp` est ajoutée automatiquement.
