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)#
{
"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#
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#
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#
$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#
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.