> [Site index](https://perfectvector.com/llms.txt) — available pages and descriptions.

# Bilder per API mit fortsetzbarer Queue vektorisieren

> Vektorisiere Bilder stapelweise per API. Speichere Auftrags-IDs in einer dauerhaften Warteschlange, behandle Fehler und setze einen Lauf ohne erneute Uploads fertiger Aufträge fort.

Source: https://perfectvector.com/de/blog/batch-vectorize-images-api

Language: de
Author: Jay
Published: 2026-11-10T08:00:00+09:00

Lege zur Stapelverarbeitung per API für jede Quelldatei einen Eintrag in einer Warteschlange an. Speichere den Fortschritt, bevor du mit der nächsten Datei beginnst. Bei PerfectVector API v1 verwaltet dein Worker den Stapel. Die API nimmt pro Anfrage ein Bild entgegen und erlaubt standardmäßig eine laufende Live-Konvertierung pro Konto. [Limits der PerfectVector API](https://perfectvector.com/docs/api/limits)

## Einen Eintrag pro Bild anlegen

Beginne mit einer unveränderten Kopie jeder Vorlage und einem separaten Ausgabeordner. Die Beispiele gehen von einem Worker, einer lokalen SQLite-Datenbank und einem Ordner mit PNG-, JPEG- oder WebP-Dateien mit je einem Einzelbild aus. Prüfe die [Dateigrenzen der API](https://perfectvector.com/docs/api/limits), bevor du Dateien einreihst. Vergib eindeutige Ausgabepfade, damit sich die Ergebnisse zweier Quellen namens `logo.png` nicht überschreiben.

Speichere die folgenden Felder zusammen vor dem ersten Upload.

| Feld              | Was du festhältst                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Quelle            | Einen stabilen Pfad oder eine feste Objektversion und eine Prüfsumme der Originaldaten.                                        |
| Anfrageschlüssel  | Einen Idempotenzschlüssel, der Wiederholungen desselben Vorgangs kennzeichnet. Notiere den Zeitpunkt des ersten POST-Versuchs. |
| Konvertierungs-ID | Die `vec_…`-ID der API, sobald du sie erhältst.                                                                                |
| Ausgabe           | Ein eindeutiges lokales Ziel und den letzten bestätigten Zustand des Eintrags.                                                 |
| Fehlerdetails     | Den API-Problemcode, die Anfrage-ID oder den Konvertierungsfehler, falls vorhanden.                                            |

Schreibe den Eintrag dauerhaft in die Datenbank, bevor du den POST sendest. Falls die API den Upload annimmt, aber die Verbindung vor Erhalt der ID abbricht, kannst du den gespeicherten Schlüssel erneut verwenden. PerfectVector erkennt ihn 24 Stunden ab der ersten Anfrage im selben Konto und Modus. Sende bei der Wiederholung dieselben Bilddaten und Optionen. [Idempotenz bei PerfectVector](https://perfectvector.com/docs/api/idempotency)

**Schematischer Ablauf**

![Ein gekennzeichneter Stapel Rasterbilder führt zu einem gespeicherten Konvertierungsdatensatz und dann zu einem SVG. Ein Pfeil zeigt vom Neustart zurück zum Datensatz.](https://perfectvector.com/blog/batch-vectorize-images-api/workflow.webp)

*Speichere die Konvertierungs-ID vor dem Download. Setze den Auftrag nach einer Unterbrechung mit dieser ID fort.*

## Aufträge einzeln senden, abfragen und speichern

Sende einen Multipart-POST an `/v1/vectorizations` mit dem Bild im Feld `image` und dem Header `Idempotency-Key` aus dem Eintrag. Mit `Prefer: respond-async` bleibt die Anfrage kurz. Speichere die ID einer erfolgreichen Antwort, bevor du den Status abfragst. Eine Antwort mit `202` bedeutet, dass die Konvertierung noch läuft. Eine Antwort mit `201` kann einen Erfolg oder einen Fehlschlag beschreiben. Prüfe den Status im JSON. [Wartezeiten und asynchrone Antworten bei PerfectVector](https://perfectvector.com/docs/api/waiting-and-async)

So entscheidet der Worker über den nächsten Schritt. Einen Zustand wie `saved` definierst du für deine eigene Warteschlange. Die API gibt Statuswerte wie `processing` und `succeeded` zurück.

| Gespeicherter Eintrag                  | Nächster Schritt des Workers                                                                                                                                                                                               |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Neu, mit gespeichertem Schlüssel       | Originaldaten hochladen und die zurückgegebene Konvertierungs-ID speichern.                                                                                                                                                |
| Unklarer Upload, ID unbekannt          | Innerhalb der Frist denselben Upload mit dem gespeicherten Schlüssel wiederholen. Ist die Frist abgelaufen, den Eintrag zur Prüfung markieren, bevor du eine neue, möglicherweise kostenpflichtige Konvertierung startest. |
| Konvertierungs-ID gespeichert          | Status der vorhandenen ID abfragen. Etwa zwei Sekunden zwischen Abfragen warten und Wartezeiten bei Ratenlimits beachten.                                                                                                  |
| Konvertierung erfolgreich, Datei fehlt | Ergebnis herunterladen, auf `image/svg+xml` prüfen, in eine temporäre Datei schreiben und diese an den Zielpfad umbenennen. Erst danach den Eintrag als gespeichert markieren.                                             |
| Gespeichert                            | POST überspringen. Fehlt die Ausgabe, versuche das vorhandene Ergebnis abzurufen, solange sein Link noch funktioniert.                                                                                                     |
| Abgelehnt oder fehlgeschlagen          | Das HTTP-Problem oder den endgültigen Konvertierungsfehler protokollieren. Fehlerhafte Eingaben korrigieren, bevor du sie als neuen Auftrag einreichst.                                                                    |

Wenn ein POST `429` oder `503` liefert, halte `Retry-After` ein und sende innerhalb der 24 Stunden dasselbe Bild mit denselben Optionen und dem ursprünglichen Schlüssel erneut. Bei `too_many_in_flight` warte zusätzlich auf den Abschluss der laufenden Live-Konvertierung. Wenn du eine Konvertierungs-ID hast, prüfe sie vor einem erneuten Upload. Nach einem bestätigten endgültigen Status `failed` mit `timeout` oder `provider_unavailable` brauchst du für einen neuen Versuch einen neuen Schlüssel. Warte bei einem nicht verfügbaren Anbieter, bis der Dienst wieder bereitsteht. Bei einer Zeitüberschreitung des Clients ist der Stand des ursprünglichen Auftrags unklar. Verwende seine ID oder wiederhole die Anfrage innerhalb der Frist mit dem ursprünglichen Schlüssel. [Fehler der PerfectVector API](https://perfectvector.com/docs/api/errors)

Nach einem Neustart kann der Worker den Status erneut abfragen oder ein Ergebnis herunterladen, ohne eine neue Konvertierung anzustoßen. Lade jedes erfolgreiche SVG herunter und speichere es, bevor du in der Warteschlange weitergehst. Das API-Ergebnis ist ab Abschluss 24 Stunden verfügbar. [Ergebnisse und Downloads bei PerfectVector](https://perfectvector.com/docs/api/results)

Setze den Worker anhand dieses Pseudocodes mit deiner Datenbank und deinem HTTP-Client um. Für den folgenden Test soll der Worker jede Anfrage protokollieren und unmittelbar nach dem dauerhaften Speichern der zweiten Konvertierungs-ID pausieren können.

```text
for each queue row in a stable order:
    if the row is rejected or its saved SVG is still on disk:
        continue
    if the row has no conversion ID:
        verify source bytes match the stored digest
        if an earlier POST is uncertain and the replay window expired:
            flag the row for review and continue
        POST with the stored key and original bytes and options
        if the response is a permanent input rejection:
            commit the error and continue
        if the POST times out or the service requests a retry:
            keep the same key, record the retry time and stop this run
        commit the returned conversion ID
        pause here when testing recovery after a commit
    GET status by conversion ID, waiting between pending responses
    if conversion failed:
        commit its error and continue
    download the existing result and check the SVG media type
    write to a temporary file and rename it to the output path
    commit the saved state
```

## Neustart mit drei Dateien testen

Nimm zwei kleine PNG-Logos und ein beschädigtes PNG. Lass die beschädigte Datei bewusst im Test, um zu sehen, ob die Warteschlange nach der Ablehnung weiterläuft. Mit einem Testschlüssel sollten die beiden gültigen Dateien Beispiel-SVGs liefern. Der beschädigte Upload sollte bei der Validierung scheitern und nicht im Ausgabeordner landen. Der Testmodus liefert für beide gültigen Dateien dasselbe Beispiel-SVG. [PerfectVector-Testmodus](https://perfectvector.com/docs/api/test-mode)

1. Warte, bis die erste Datei `saved` erreicht. Pausiere den Worker, nachdem die ID der zweiten gültigen Datei geschrieben, ihre Ausgabe aber noch nicht gespeichert wurde.
2. Starte den Worker neu. Prüfe, ob er die erste Datei überspringt und die zweite mit ihrer vorhandenen Konvertierungs-ID herunterlädt.
3. Prüfe, ob die beschädigte Datei mit ihrem Problemcode im Fehlerbericht steht und kein SVG dafür geschrieben wurde.
4. Starte den Worker ein weiteres Mal. Prüfe, ob beide Dateien weiterhin vorhanden sind und kein erfolgreicher Upload erneut gesendet wird.

Wir führten den Neustarttest mit einem API-Testschlüssel aus. Der Worker speicherte zwei Beispiel-SVGs, protokollierte eine beschädigte Eingabe als abgelehnt und setzte den zweiten erfolgreichen Auftrag anhand seiner vorhandenen ID fort. Der abschließende Durchlauf stellte keine Anfragen. Verwende eine lokale Testantwort für den ausstehenden Zustand, da Testkonvertierungen sofort fertig sind.

## Häufige Fragen

### Kann ich alle Dateien in einem API-Aufruf senden?

PerfectVector API v1 akzeptiert ein Bild pro POST. Sende einen Stapel als Reihe einzelner Anfragen. Halte bei Live-Aufträgen das Limit des Kontos ein und warte auf den Abschluss der aktuellen Konvertierung, bevor du die nächste einreichst. [Limits der PerfectVector API](https://perfectvector.com/docs/api/limits)

### Was ist, wenn das SVG bereits abgelaufen ist?

Verwende dein gespeichertes SVG, wenn du es schon heruntergeladen hast. Prüfe andernfalls den Konvertierungsstatus und entscheide, ob ein neuer Auftrag nötig ist. Eine neue Live-Konvertierung kann bei Erfolg einen weiteren Credit kosten. [Ergebnisse und Downloads bei PerfectVector](https://perfectvector.com/docs/api/results)

## Quellen

1. [PerfectVector – Limits](https://perfectvector.com/docs/api/limits) – Dateiprüfungen und standardmäßiges Parallelitätslimit pro Konto.
2. [PerfectVector – Idempotenz](https://perfectvector.com/docs/api/idempotency) – Gültigkeitsbereich des Schlüssels, Wiederholungsfrist und übereinstimmende Eingaben.
3. [PerfectVector – Wartezeiten und asynchrone Antworten](https://perfectvector.com/docs/api/waiting-and-async) – Asynchrone Aufträge und Statusabfragen.
4. [PerfectVector – Ergebnisse](https://perfectvector.com/docs/api/results) – Download, Fehler und Verfall von Ergebnissen.
5. [PerfectVector – Testmodus](https://perfectvector.com/docs/api/test-mode) – Upload-Prüfungen und Ergebnisse mit einem Testschlüssel.
6. [PerfectVector – Fehler](https://perfectvector.com/docs/api/errors) – Wartezeiten aus Retry-After, endgültige Fehler und neue Schlüssel.

***

[Erstelle über die API-Seite von PerfectVector einen Testschlüssel](https://perfectvector.com/de/api) und teste den Ablauf mit drei eigenen Dateien. Prüfe, ob zu jedem erfolgreichen Eintrag ein SVG gespeichert wurde und ob beim Neustart kein fertiger Auftrag erneut eingereicht wird.

## Explore

- [Read the HTML article](https://perfectvector.com/de/blog/batch-vectorize-images-api)
- [PNG2SVG-Stapelkonvertierung: Heruntergeladene ZIP prüfen](https://perfectvector.com/de/blog/png2svg-batch-convert.md)
- [Bilderordner in Claude Code als SVG-Stapel planen](https://perfectvector.com/de/blog/batch-vectorize-images-claude-code-mcp.md)
- [Product facts](https://perfectvector.com/product-facts.md)
- [FAQ](https://perfectvector.com/faq.md)
- [Pricing and credits](https://perfectvector.com/pricing.md)
