---
seo_title: API da WebP a JPEG: Converti Immagini WebP in JPEG | EnConvert
meta_desc: Converti WebP in JPEG con una API REST. POST /v1/convert/webp-to-jpeg accetta upload multipart .webp e restituisce byte JPEG o un URL di download presigned.
keywords: convertire webp in jpeg, api webp to jpeg, webp in jpg online, conversione webp jpeg api rest, webp to jpeg python, webp to jpeg node js, api conversione immagini webp, trasparenza webp in jpeg
---

# API da WebP a JPEG

L'API da WebP a JPEG converte un'immagine WebP in formato JPEG con una singola richiesta a `POST /v1/convert/webp-to-jpeg`. Carica un file `.webp` come multipart/form-data e ricevi i byte JPEG grezzi in risposta, oppure imposta `direct_download=false` per ottenere metadati JSON con un URL di download presigned. Poiché JPEG non supporta la trasparenza, le aree trasparenti del WebP vengono composite su uno sfondo bianco.

---

## Endpoint

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

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

**Input accettato:** file `.webp`

**Formato di output:** `.jpeg` (`image/jpeg`)

---

## Autenticazione

Richiede una chiave API privata oppure un token JWT generato da una chiave pubblica.

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

Oppure:

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

---

## Parametri della richiesta

| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|-----------|------|----------|---------|-------------|
| `file` | file | Sì | -- | Il file immagine `.webp` da convertire. |
| `output_filename` | `string` | No | Nome del file di input | Nome file di output personalizzato. L'estensione `.jpeg` viene aggiunta automaticamente. |
| `direct_download` | `boolean` | No | `true` | Se `true`, restituisce i byte grezzi dell'immagine. Se `false`, restituisce metadati JSON con un URL di download presigned. |

---

## Dettagli della conversione

- Usa **Pillow** per la conversione diretta del formato
- Se il WebP ha un canale alfa (RGBA), le aree trasparenti vengono composite su uno **sfondo bianco**
- La qualità di output è impostata al massimo (100)

<div class="alert alert-info">
<strong>Nota sulla trasparenza:</strong> JPEG non supporta la trasparenza. Le eventuali aree trasparenti del tuo WebP appariranno bianche nell'output JPEG.
</div>

---

## Risposta

### Download diretto (`direct_download=true`, predefinito)

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

Restituisce i byte grezzi dell'immagine.

### Risposta con metadati (`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
}
```

---

## Esempi di codice

### 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)
```

---

## Risposte di errore

| Stato | Condizione |
|--------|-----------|
| `400 Bad Request` | Il file non è un file `.webp` |
| `400 Bad Request` | Conversione dell'immagine non riuscita (file corrotto o non supportato) |
| `401 Unauthorized` | Chiave API / token JWT mancante o non valido |
| `402 Payment Required` | Quota mensile di ops esaurita |
| `402 Payment Required` | Limite di storage raggiunto |
| `413 Payload Too Large` | Il file supera la dimensione massima prevista dal piano |

---

## Limiti

| Limite | Valore |
|-------|-------|
| Dimensione massima del file | Dipende dal piano (Founding: 5 MB) |
| Qualità di output | Massima (non configurabile) |
| Conversioni mensili | Dipende dal piano |

---

## Domande frequenti

### Come converto WebP in JPEG con una API REST?

Invia una richiesta `POST` a `/v1/convert/webp-to-jpeg` con il tuo file `.webp` in un body `multipart/form-data` e autenticati con un header `X-API-Key` o un token JWT `Authorization: Bearer`. Per impostazione predefinita l'API restituisce il JPEG convertito come byte grezzi dell'immagine.

### Cosa succede alla trasparenza quando converto WebP in JPEG?

JPEG non supporta la trasparenza, quindi se il WebP ha un canale alfa (RGBA), le aree trasparenti vengono composite su uno sfondo bianco nell'output JPEG.

### Posso ottenere un URL di download invece dei byte JPEG grezzi?

Sì. Imposta `direct_download=false` e l'API restituisce metadati JSON che includono `presigned_url`, `filename`, `file_size` e `conversion_time_seconds` invece dei byte grezzi.

### Perché l'API da WebP a JPEG restituisce 402 Payment Required?

Una risposta `402 Payment Required` significa che è stata esaurita la quota mensile di ops o raggiunto il limite di storage del tuo piano.

### Qual è la dimensione massima del file WebP che posso caricare?

La dimensione massima del file dipende dal piano (5 MB nel piano Founding). I file che superano il limite del tuo piano vengono rifiutati con `413 Payload Too Large`.
