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.