---
seo_title: HEIC zu WebP API: HEIC-Bilder in WebP umwandeln | EnConvert
meta_desc: Wandle HEIC per POST /v1/convert/heic-to-webp in WebP um. Alphakanal bleibt erhalten, maximale Qualität, rohe WebP-Daten oder eine presigned Download-URL.
keywords: heic in webp umwandeln api, heic zu webp konverter, heic webp konvertieren online, heif zu webp api, heic webp rest api, heic in webp programmatisch konvertieren, heic webp mit alphakanal
---

# HEIC zu WebP API

Konvertiere HEIC mit dem Endpoint `POST /v1/convert/heic-to-webp` in WebP. Dieser wandelt ein HEIC-/HEIF-Bild in eine hochwertige WebP-Datei um. Falls das HEIC einen Alphakanal besitzt, bleibt dieser im WebP-Output erhalten. Antworten liefern standardmäßig rohe WebP-Daten, oder JSON-Metadaten mit einer presigned Download-URL, wenn `direct_download=false` gesetzt ist.

---

## Endpoint

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

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

**Akzeptierte Eingabe:** `.heic or .heif`-Dateien

**Ausgabeformat:** `.webp` (`image/webp`)

---

## Authentifizierung

Erfordert entweder einen privaten API-Schlüssel oder ein JWT-Token von einem öffentlichen Schlüssel.

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

Oder:

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

---

## Request-Parameter

| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|-----------|------|----------|---------|-------------|
| `file` | file | Ja | -- | Die zu konvertierende `.heic or .heif`-Bilddatei. |
| `output_filename` | `string` | Nein | Eingabedateiname | Benutzerdefinierter Ausgabedateiname. Die Endung `.webp` wird automatisch hinzugefügt. |
| `direct_download` | `boolean` | Nein | `true` | Bei `true` werden rohe Bilddaten zurückgegeben. Bei `false` werden JSON-Metadaten mit einer presigned Download-URL zurückgegeben. |

---

## Details zur Konvertierung

- Verwendet **pillow-heif** zum Dekodieren des HEIC und **Pillow** für die WebP-Kodierung
- Falls das HEIC einen Alphakanal besitzt, bleibt dieser im WebP-Output erhalten
- Die Ausgabequalität ist auf Maximum (100) festgelegt
- WebP erzielt bei gleicher Qualität in der Regel kleinere Dateigrößen als JPEG


---

## Antwort

### Direkter Download (`direct_download=true`, Standard)

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

Gibt rohe Bilddaten zurück.

### Metadaten-Antwort (`direct_download=false`)

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

---

## Codebeispiele

### Python

```python
import requests

with open("photo.heic", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/heic-to-webp",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("photo.heic", 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.heic"));

const response = await fetch("https://api.enconvert.com/v1/convert/heic-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/heic-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.heic")]
]);
$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.heic")
file, _ := os.Open("photo.heic")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/heic-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)
```

---

## Fehlerantworten

| Status | Bedingung |
|--------|-----------|
| `400 Bad Request` | Datei ist keine `.heic or .heif`-Datei |
| `400 Bad Request` | Bildkonvertierung fehlgeschlagen (beschädigte oder nicht unterstützte Datei) |
| `401 Unauthorized` | Fehlender oder ungültiger API-Schlüssel / JWT-Token |
| `402 Payment Required` | Monatliches Ops-Kontingent aufgebraucht |
| `402 Payment Required` | Speicherlimit erreicht |
| `413 Payload Too Large` | Datei überschreitet die maximale Dateigröße des Plans |

---

## Limits

| Limit | Wert |
|-------|-------|
| Maximale Dateigröße | Abhängig vom Plan (Founding: 5 MB) |
| Ausgabequalität | Maximum (nicht konfigurierbar) |
| Monatliche Konvertierungen | Abhängig vom Plan |

---

## Häufig gestellte Fragen

### Wie konvertiere ich ein HEIC-Bild mit einer REST API in WebP?

Sende eine `multipart/form-data`-POST-Anfrage an `/v1/convert/heic-to-webp` mit der `.heic`- oder `.heif`-Datei im Feld `file`, authentifiziert über `X-API-Key` oder ein Bearer-JWT. Die Antwort liefert standardmäßig rohe WebP-Daten, oder setze `direct_download=false`, um JSON mit einer presigned Download-URL zu erhalten.

### Bleibt der Alphakanal bei der Konvertierung von HEIC zu WebP erhalten?

Ja. Falls das HEIC einen Alphakanal besitzt, bleibt dieser im WebP-Output erhalten. Zum Dekodieren wird pillow-heif verwendet, zum Kodieren Pillow.

### Ist WebP bei gleichem Bild kleiner als JPEG?

WebP erzielt bei gleicher Qualität in der Regel kleinere Dateigrößen als JPEG. Dieser Endpoint kodiert mit maximaler Qualität (100), die nicht konfigurierbar ist.

### Warum gibt der HEIC-zu-WebP-Endpoint einen 402-Fehler zurück?

`402 Payment Required` bedeutet, dass das monatliche Ops-Kontingent oder das Speicherlimit deines Plans erreicht wurde. Dateien, die die maximale Größe deines Plans überschreiten, liefern stattdessen `413 Payload Too Large`.
