Bildvektorisierungs-API

Vectorizer.AI bietet eine hochentwickelte Bitmap-Nachzeichnungs-API. Die API zeichnet Pixel vollautomatisch und mit branchenführender Originaltreue in Vektoren nach.

API-Schlüssel abrufen

Schnellstart

Sie LADEN ein Bitmap-Bild HOCH und erhalten als Ergebnis eine Vektorgrafik:

$ curl https://de.vectorizer.ai/api/v1/vectorize \
 -u xyz123:[secret] \
 -F image=@example.jpeg \
 -o result.svg
// Requires: org.apache.httpcomponents.client5:httpclient5-fluent

Request request = Request.post("https://de.vectorizer.ai/api/v1/vectorize")
   .addHeader("Authorization", "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd")
   .body(
      MultipartEntityBuilder.create()
         .addBinaryBody("image", new File("example.jpeg")) // TODO: Replace with your image
         // TODO: Add more upload parameters here
         .build()
      );
ClassicHttpResponse response = (ClassicHttpResponse) request.execute().returnResponse();

if (response.getCode() == 200) {
   // Write result to disk, TODO: or wherever you'd like
   try (FileOutputStream out = new FileOutputStream("result.svg")) {
      response.getEntity().writeTo(out);
   }
} else {
   System.out.println("Request Failed: Status: " + response.getCode() + ", Reason: " + response.getReasonPhrase());
}
using (var client = new HttpClient())
using (var form = new MultipartFormDataContent())
{
   client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "INSERT_API_KEY_HERE");
   form.Add(new ByteArrayContent(File.ReadAllBytes("example.jpeg")), "image", "example.jpeg"); // TODO: Replace with your image
   // TODO: Add more upload parameters here

   var response = client.PostAsync("https://de.vectorizer.ai/api/v1/vectorize", form).Result;

   if (response.IsSuccessStatusCode)
   {
      // Write result to disk, TODO: or wherever you'd like
      FileStream outStream = new FileStream("result.svg", FileMode.Create, FileAccess.Write, FileShare.None);
      response.Content.CopyToAsync(outStream).ContinueWith((copyTask) => { outStream.Close(); });
   }
   else
   {
       Console.WriteLine("Request Failed: Status: " + response.StatusCode + ", Reason: " + response.ReasonPhrase);
   }
}
// Requires "request" to be installed (see https://www.npmjs.com/package/request)
var request = require('request');
var fs = require('fs');

request.post({
  url: 'https://de.vectorizer.ai/api/v1/vectorize',
  formData: {
    image: fs.createReadStream('example.jpeg'), // TODO: Replace with your image
    // TODO: Add more upload options here
  },
  auth: {user: 'xyz123', pass: '[secret]'},
  followAllRedirects: true,
  encoding: null
}, function(error, response, body) {
  if (error) {
    console.error('Request failed:', error);
  } else if (!response || response.statusCode != 200) {
    console.error('Error:', response && response.statusCode, body.toString('utf8'));
  } else {
    // Save result
    fs.writeFileSync("result.svg", body);
  }
});
$ch = curl_init('https://de.vectorizer.ai/api/v1/vectorize');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
    array('Authorization: Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd'));
curl_setopt($ch, CURLOPT_POSTFIELDS,
    array(
      'image' => curl_file_create('example.jpeg'),
      // TODO: Add more upload options here
    ));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$data = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
  // Save result
  file_put_contents("result.svg", $data);
} else {
  echo "Error: " . $data;
}
curl_close($ch);
# Either use the sample code below, or this SDK: https://pypi.org/project/vectorizer-ai/
# Requires "requests" to be installed (see https://pypi.org/project/requests/)
import requests

response = requests.post(
    'https://de.vectorizer.ai/api/v1/vectorize',
    files={'image': open('example.jpeg', 'rb')},
    data={
        # TODO: Add more upload options here
    },
    auth=('xyz123', '[secret]')
)
if response.status_code == requests.codes.ok:
    # Save result
    with open('result.svg', 'wb') as out:
        out.write(response.content)
else:
    print("Error:", response.status_code, response.text)
# Requires: gem install httpclient
require 'httpclient'

client = HTTPClient.new default_header: {
  "Authorization" => "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd"
}

response = client.post("https://de.vectorizer.ai/api/v1/vectorize", {
  "image" => File.open("example.jpeg", "rb"), # TODO: Replace with your image
  # TODO: Add more upload parameters here
})

if response.status == 200 then
  # Write result to disk, TODO: or wherever you'd like
  File.open("result.svg", 'w') { |file| file.write(response.body) }
else
  puts "Error: Code: " + response.status.to_s + ", Reason: " + response.reason
end
$ curl https://de.vectorizer.ai/api/v1/vectorize \
 -u xyz123:[secret] \
 -F 'image.url=https://example.com/example.jpeg' \
 -o result.svg
// Requires: org.apache.httpcomponents.client5:httpclient5-fluent

Request request = Request.post("https://de.vectorizer.ai/api/v1/vectorize")
   .addHeader("Authorization", "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd")
   .body(
      MultipartEntityBuilder.create()
         .addTextBody("image.url", "https://example.com/example.jpeg") // TODO: Replace with your image URL
         // TODO: Add more upload parameters here
         .build()
      );
ClassicHttpResponse response = (ClassicHttpResponse) request.execute().returnResponse();

if (response.getCode() == 200) {
   // Write result to disk, TODO: or wherever you'd like
   try (FileOutputStream out = new FileOutputStream("result.svg")) {
      response.getEntity().writeTo(out);
   }
} else {
   System.out.println("Request Failed: Status: " + response.getCode() + ", Reason: " + response.getReasonPhrase());
}
using (var client = new HttpClient())
using (var form = new MultipartFormDataContent())
{
   client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "INSERT_API_KEY_HERE");
   form.Add(new StringContent("https://example.com/example.jpeg"), "image.url"); // TODO: Replace with your image URL
   // TODO: Add more upload parameters here

   var response = client.PostAsync("https://de.vectorizer.ai/api/v1/vectorize", form).Result;

   if (response.IsSuccessStatusCode)
   {
      // Write result to disk, TODO: or wherever you'd like
      FileStream outStream = new FileStream("result.svg", FileMode.Create, FileAccess.Write, FileShare.None);
      response.Content.CopyToAsync(outStream).ContinueWith((copyTask) => { outStream.Close(); });
   }
   else
   {
       Console.WriteLine("Request Failed: Status: " + response.StatusCode + ", Reason: " + response.ReasonPhrase);
   }
}
// Requires "request" to be installed (see https://www.npmjs.com/package/request)
var request = require('request');
var fs = require('fs');

request.post({
  url: 'https://de.vectorizer.ai/api/v1/vectorize',
  formData: {
    'image.url': 'https://example.com/example.jpeg', // TODO: Replace with your image
    // TODO: Add more upload options here
  },
  auth: {user: 'xyz123', pass: '[secret]'},
  followAllRedirects: true,
  encoding: null
}, function(error, response, body) {
  if (error) {
    console.error('Request failed:', error);
  } else if (!response || response.statusCode != 200) {
    console.error('Error:', response && response.statusCode, body.toString('utf8'));
  } else {
    // Save result
    fs.writeFileSync("result.svg", body);
  }
});
$ch = curl_init('https://de.vectorizer.ai/api/v1/vectorize');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
    array('Authorization: Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd'));
curl_setopt($ch, CURLOPT_POSTFIELDS,
    array(
      'image.url' => 'https://example.com/example.jpeg',
      // TODO: Add more upload options here
    ));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$data = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
  // Save result
  file_put_contents("result.svg", $data);
} else {
  echo "Error: " . $data;
}
curl_close($ch);
# Either use the sample code below, or this SDK: https://pypi.org/project/vectorizer-ai/
# Requires "requests" to be installed (see https://pypi.org/project/requests/)
import requests

response = requests.post(
    'https://de.vectorizer.ai/api/v1/vectorize',
    data={
        'image.url': 'https://example.com/example.jpeg',
        # TODO: Add more upload options here
    },
    auth=('xyz123', '[secret]')
)
if response.status_code == requests.codes.ok:
    # Save result
    with open('result.svg', 'wb') as out:
        out.write(response.content)
else:
    print("Error:", response.status_code, response.text)
# Requires: gem install httpclient
require 'httpclient'

client = HTTPClient.new default_header: {
  "Authorization" => "Basic dmt5YzY3a3FhMjd5aWRkOltzZWNyZXRd"
}

response = client.post("https://de.vectorizer.ai/api/v1/vectorize", {
  "image.url" => "https://example.com/example.jpeg", # TODO: Replace with your image URL
  # TODO: Add more upload parameters here
})

if response.status == 200 then
  # Write result to disk, TODO: or wherever you'd like
  File.open("result.svg", 'w') { |file| file.write(response.body) }
else
  puts "Error: Code: " + response.status.to_s + ", Reason: " + response.reason
end

API-Chatbot

Wir haben einen speziellen ChatGPT entwickelt, der Sie bei Ihrer API-Integration unterstützen kann. Er kann Fragen zur API-Dokumentation beantworten und Beispielcode in Ihrer bevorzugten Sprache bereitstellen, der speziell für Ihre Anwendungsfälle angepasst ist.

Chatten Sie mit dem API-Chatbot von Vectorizer.AI

Der Chatbot befindet sich in der Beta-Phase und macht Fehler. Doppelklicken Sie auf die Antworten und bitten Sie ihn, den Code zu überarbeiten, um Fehler und Auslassungen zu korrigieren.

Verwendung dieser API

Die API wurde so konzipiert, dass sie viele verschiedene Anwendungsfälle unterstützt. Hier sind einige häufig verwendete:

Einzelbild Sie senden eine Bitmap, erhalten ein Vektorergebnis und fertig

Verwenden Sie den Endpunkt Vektorisieren und die obigen Code-Beispiele.

Zuerst eine Vorschau Zeigen Sie Ihrem potenziellen Kunden eine Vorschau, bevor er sich zum Kauf verpflichtet

Wenn Sie sehr viele API-Aufrufe benötigen, um einen Verkauf zu tätigen, können Sie die kostengünstigeren Vorschauen nutzen, bevor Sie tatsächlich einen Auftrag erhalten.

  1. Verwenden Sie den Endpunkt Vektorisieren mit mode=preview und policy.retention_days > 0, um die Vorschau zu erhalten. Achten Sie darauf, das in der Antwortkopfzeile X-Image-Token zurückgegebene Bild-Token zu behalten.

  2. Verwenden Sie nach der Konvertierung den Endpunkt Download mit dem Bild-Token, um das vollständige Ergebnis herunterzuladen.

  3. Optional: Wenn Sie zusätzliche Ergebnisformate benötigen (z. B. PNG, PDF usw.), achten Sie darauf, den in der Download-Antwortkopfzeile X-Receipt zurückgegebenen Beleg zu behalten. Verwenden Sie dann den Endpunkt Download mit dem Bild-Token und dem Beleg zum Herunterladen der restlichen Formate.

Multi-Format Sie benötigen z. B. sowohl PNG- als auch SVG-Ergebnisse

  1. Verwenden Sie den Endpunkt Vektorisieren mit policy.retention_days > 0, um das erste Ergebnis zu erhalten. Achten Sie darauf, das in der Antwortkopfzeile X-Image-Token zurückgegebene Bild-Token zu behalten.

  2. Verwenden Sie den Endpunkt Download mit dem Bild-Token zum Herunterladen der anderen Formate.

Multi-Option Sie müssen jedes Bild mit mehreren Verarbeitungsoptionen verarbeiten

  1. Verwenden Sie den Endpunkt Vektorisieren mit policy.retention_days > 0, um das erste Ergebnis zu erhalten. Achten Sie darauf, das in der Antwortkopfzeile X-Image-Token zurückgegebene Bild-Token zu behalten.

  2. Verwenden Sie den Endpunkt Vektorisieren mit dem Bild-Token, um die von Ihnen benötigten restlichen Verarbeitungsoptionen zu durchlaufen.

  3. Sie können aber auch jedes Bild einzeln verarbeiten und brauchen dabei nicht auf das Bild-Token zu achten. Das Bild-Token spart ein wenig Bandbreite und Latenz ein.

Preise

AktionPunkteBeschreibung
Tests0.000

Seine Integration in die API und Tests der API sind kostenlos.

Verwenden Sie mode=test und mode=test_preview für die Entwicklung.

Die Qualität des Ergebnisses können Sie mithilfe der interaktiven Web-App auf der Homepage der Website beurteilen.

Vorschau0.200

Wir bieten Vorschauergebnisse, die Sie Ihren Endbenutzern zeigen können, bevor diese einen Kauf tätigen.

Vorschauen sind PNG-Bilder, die viermal größer als Ihre Eingabe sind. Sie sind mit einem dezenten Wasserzeichen versehen.

Verwenden Sie mode=preview, um ein Vorschauergebnis zu erhalten.

Vektorisieren1.000 Vektorisieren Sie ein Bitmap-Bild in ein Vektorbild.
Upgrade-Vorschau0.900 Laden Sie das Produktionsergebnis nach einer Vorschau des API-Aufrufs herunter. Preisermäßigung im Vergleich zur Vektorisierung ganz von Anfang an.
Download-Format0.100 Laden Sie ein anderes Format des Ergebnisses herunter (z. B. SVG, PNG, PDF usw.). Preisermäßigung im Vergleich zur Vektorisierung ganz von Anfang an.
Speichertag0.010 Preis pro Tag für das Speichern des Ergebnisses über den ersten Tag hinaus (der erste Tag ist kostenlos).

Beziehen Sie sich bitte auf die Preisgebungsseite, auf der Sie die Abonnementpläne einsehen können.

Authentifizierung und Sicherheit

Die API verwendet eine standardmäßige HTTP Basic Access Authentication. Alle Anfragen an die API müssen über HTTPS erfolgen und Ihre API-Zugangsdaten enthalten, wobei die API-ID als Benutzername und der geheime API-Schlüssel als Kennwort fungieren.

Ihre HTTP-Client-Bibliothek muss die Servernamensanzeige (Server Name Indication (SNI)) unterstützen, damit Anfragen erfolgreich gestellt werden können. Wenn seltsame Handshake-Fehler auftreten, ist dies wahrscheinlich die Ursache.

Geschwindigkeitsbegrenzung

Die Verwendung der API unterliegt einer Geschwindigkeitsbegrenzung mit großzügigen Limits und keiner festen Obergrenze.

Während des normalen vom Endbenutzer gesteuerten Betriebs sind Geschwindigkeitsbegrenzungen sehr unwahrscheinlich, da die Nutzung graduell ab- und zunimmt, sodass der Dienst reibungslos ausgeführt werden kann.

Bei Stapelaufträgen empfehlen wir jedoch, mit höchstens 5 Threads zu beginnen und dann alle 5 Minuten 1 neuen Thread hinzuzufügen, bis der gewünschte Parallelitätsgrad erreicht ist. Lassen Sie uns bitte vor Beginn wissen, wenn Sie mehr als 100 gleichzeitige Threads benötigen.

Am einfachsten erreicht man diese allmähliche Steigerung des Parallelitätsgrades, indem man die Anzahl der Threads, die man letztendlich verwenden möchte, sofort startet, dann jedoch ein Zählsemaphor verwendet, das mit 5 Zugriffsrechten beginnt. Dann können Sie einen separaten Thread haben, der die Anzahl der Zugriffsrechte alle 5 Minuten um 1 erhöht.

Wenn zu viele Anfragen eingereicht werden, erhalten Sie in zunehmendem Maße die Antwort 429 Too Many Requests. In diesem Fall sollten Sie den Vorgang linear zurückfahren: nach der ersten dieser Antworten warten Sie 5 Sekunden, bis Sie die nächste Anfrage einreichen. Bei der zweiten aufeinanderfolgenden 429-Antwort warten Sie 2*5=10 Sekunden, bis Sie die nächste Anfrage einreichen. Bei der dritten Antwort warten Sie 3*5=15 Sekunden usw.

Sie können den Rückfahrzähler nach einer erfolgreichen Anfrage zurücksetzen und sollten das Rückfahren pro Thread vornehmen (d. h. die Threads sollten unabhängig voneinander ausgeführt werden).

Timeouts

Die API-Anfragen werden normalerweise innerhalb von Sekunden abgeschlossen, aber wenn transiente Belastungsspitzen auftreten, kann es zu längeren Verarbeitungszeiten kommen.

Um sicherzustellen, dass Ihre Client-Bibliothek API-Anfragen nicht vorzeitig beendet, sollte sie mit einem Leerlauftimeout von mindestens 180 Sekunden konfiguriert werden.

Fehler-JSON

Wir verwenden herkömmliche HTTP-Status, um den Erfolg oder Fehlschlag einer API-Anfrage anzuzeigen, und stellen wichtige Fehlerinformationen im zurückgegebenen Fehler-JSON-Objekt bereit.

Wir versuchen, bei einer problematischen Anfrage immer ein Fehler-JSON-Objekt zurückzugeben. Es ist jedoch theoretisch möglich, dass interne Serverfehler auftreten, die zu Nicht-JSON-Fehlerantworten führen.

Attribute

statusDer HTTP-Status der Antwort, der hier zur Unterstützung des Debugging wiederholt wird.
codeVectorizer.AI – interner Fehlercode.
messageVisuell lesbare Fehlermeldung, die für das Debugging hilfreich sein soll.

Wenn der HTTP-Status für Ihre Anfrage 200 ist, wird kein Fehler-JSON-Objekt zurückgegeben, und Sie können mit großer Sicherheit davon ausgehen, dass die Anfrage generell erfolgreich war.

Manche HTTP-Client-Bibliotheken führen für HTTP-Status im Bereich 400-599 zu Ausnahmen. Diese Ausnahmen müssen erfasst und entsprechend behandelt werden.

HTTP StatusBedeutung
200-299

Erfolg

400-499

Es gibt ein Problem bei den in der Anfrage angegebenen Informationen (es fehlt z. B. ein Parameter). Prüfen Sie bitte die Fehlermeldung, um eine Methode zu finden, den Fehler zu beheben.

500-599

Bei Vectorizer.AI ist ein interner Fehler aufgetreten. Warten Sie einen Moment und versuchen Sie es erneut. Wenn das Problem immer noch auftritt, schicken Sie uns eine E-Mail.

Beispiel für eine Fehlerantwort

{
  "error" : {
    "status" : 400,
    "code" : 1006,
    "message" : "Failed to read the supplied image. "
  }
}

Kürzlich aufgetretene API-Fehler sind auf Ihrer Kontoseite aufgeführt, sodass Sie sie leichter beheben können.

Außerdem gibt es eine Liste aller von der API zurückgegebenen Fehlerantworten.

Antwort-Kopfzeilen

Hier sind die von uns verwendeten vordefinierten Antwortkopfzeilen:

KopfzeileBeschreibung
X-Image-Token

Wird zurückgegeben, wenn Ihre Vektorisierungsanfrage policy.retention_days > 0 hat. Kann für Folgendes verwendet werden:

  1. Herunterladen des Produktionsergebnisses nach einer Vorschau eines API-Aufrufs mit Preisermäßigung im Vergleich zur Vektorisierung ganz von Anfang an.

  2. Herunterladen zusätzlicher Formate (z. B. SVG, PNG, PDF usw.) des Ergebnisses zu einem ermäßigten Preis im Vergleich zur Vektorisierung ganz von Anfang an.

  3. Erneute Vektorisierung desselben Bildes mit verschiedenen Verarbeitungsoptionen.

X-Receipt

Wird zurückgegeben, wenn Sie ein Produktionsergebnis mithilfe eines Vorschau-Bild-Tokens herunterladen. Kann zum Herunterladen zusätzlicher Formate (z. B. SVG, PNG, PDF usw.) des Ergebnisses zum Download-Formatpreis anstelle des Upgrade-Vorschaupreises verwendet werden.

X-Credits-Calculated

Wird mit Testanfragen zurückgegeben, um die Kosten zu zeigen, die angefallen wären, wenn es sich um eine normale Anfrage gehandelt hätte.

X-Credits-Charged

Wird mit allen Anfragen zurückgegeben, um die angefallenen Kosten zu zeigen. Immer 0 für Testanfragen.

Vektorisieren POST
https://api.vectorizer.ai/api/v1/vectorize

Zum Vektorisieren eines Bildes führen Sie einen standardmäßigen HTTP POST-Dateiupload durch. Denken Sie daran, dass der Inhaltstyp als multipart/form-data vorliegen muss, wenn binäre Dateien hochgeladen werden.

Die nachstehende Tabelle enthält alle API-Parameter, die Sie auch gleich ausprobieren können. Jeder Parameter wird kurz beschrieben, aber sehen Sie sich auf jeden Fall die ausführliche Dokumentation zu den Ausgabeoptionen an.

Herunterladen POST
https://api.vectorizer.ai/api/v1/download

Dieser Endpunkt ermöglicht Ihnen Folgendes:

  1. Herunterladen des vollständigen Produktionsergebnisses nach einem Vorschau-API-Aufruf.

    Wir nehmen die Kopfzeile X-Receipt in die Antwort auf, damit Sie anschließend zusätzliche Ausgabeformate zum reduzierten Download-Formatpreis herunterladen können.

  2. Herunterladen mehrerer Ausgabeformate für dasselbe Bild und Nutzung mehrerer Verarbeitungsoptionen zum reduzierten Download-Formatpreis, ohne dass sie alle ganz von Anfang an vektorisiert werden müssen.

Löschen POST
https://api.vectorizer.ai/api/v1/delete

Bilder, die mit policy.retention_days > 0 vektorisiert wurden, werden für den angeforderten Zeitraum gespeichert und kurz danach automatisch gelöscht.

Normalerweise muss dieser Endpunkt nicht aufgerufen werden. Er wird bereitgestellt, damit Sie Bilder löschen können, bevor der Speicherzeitraum abläuft. Das frühzeitige Löschen eines Bildes bedeutet nicht, dass Sie für die restlichen Speichertage eine Rückerstattung erhalten.

Antwortattribute

success

true Das Bild-Token wurde tatsächlich gelöscht.

Beispiel einer Antwort

{
  "success" : true
}

Kontostatus GET
https://api.vectorizer.ai/api/v1/account

Rufen Sie allgemeine Informationen über Ihr Konto auf, beispielsweise Abonnementstatus und Anzahl der verbliebenen Punkte.

Parameter

Keine

Antwortattribute

subscriptionPlan

Der Plan, den Sie derzeit abonniert haben, bzw. „Keine“.

subscriptionState

Der Status Ihres aktuellen Abonnements („aktiv“ oder „überfällig“) oder „abgelaufen“, wenn kein Abonnement vorliegt.

credits

Die Anzahl der in Ihrem Konto verbliebenen API-Punkte. Ist 0, wenn derzeit kein Abonnement vorliegt oder wenn es sich um einen Plan ohne API handelt. Kann eine Bruchzahl sein und muss deshalb als Double analysiert werden.

Benutzername = API-ID, Kennwort = geheimer API-Schlüssel

cURL

$ curl "https://api.vectorizer.ai/api/v1/account" \
 -u vkyc67kqa27yidd:[secret]

Beispiel einer Antwort

{
  "subscriptionPlan" : "none",
  "subscriptionState" : "ended",
  "credits" : 0
}

API-Änderungsprotokoll

DatumÄndern
04.11.2024 processing.shapes.min_area_px wurde hinzugefügt.
01.10.2024 Ein KI-Chatbot wurde hinzugefügt, der bei der Integration mit der API behilflich ist.
23.09.2024 API wurde stark erweitert, um mehr Betriebsmodi zu unterstützen. Bild-Tokens, Belege, Kopfzeilen für Gebühren pro Aufruf und die Endpunkte „Download“ und „Löschen“ wurden hinzugefügt.
11.06.2024 processing.palette wurde hinzugefügt.
04.03.2024 Abschnitt über Timeouts hinzugefügt.
24.01.2024 Kontostatus-Endpunkt wurde hinzugefügt. Kürzlich aufgetretene API-Fehler wurden der Kontoseite hinzugefügt. Eine Liste aller API-Fehlerantworten wurde hinzugefügt.
16.01.2024 Fehler-JSON-Objekt wurde dokumentiert.
03.10.2023 Es wurde klargestellt, dass output.gap_filler.enabled=true zu einem Ergebnis mit mehr Farben als durch processing.max_colors angefordert führt.
20.09.2023 mode wurde hinzugefügt.
01.08.2023 Es wurde eine Ausgabegrößen-Optionsgruppe mit umfangreichen Funktionen mit folgenden Optionen hinzugefügt: output.size.scale, output.size.width, output.size.height, output.size.unit, output.size.aspect_ratio, output.size.align_x, output.size.align_y, output.size.input_dpi und output.size.output_dpi. Es wurde eine Bitmap-Ausgabe-Optionsgruppe mit einer Option hinzugefügt: output.bitmap.anti_aliasing_mode.
07.06.2023 processing.max_colors wurde hinzugefügt.
31.05.2023 API-Parameter wurden erheblich erweitert. API-Endpunkt wurde aktualisiert.
10.03.2023 Erstversion.
API-Schlüssel abrufen