Interfejs API wektoryzacji obrazu

Vectorizer.AI oferuje pełnowartościowy interfejs API do trasowania bitmap. API w pełni automatycznie i z najwyższą wiernością trasuje piksele do postaci wektorowej.

Uzyskaj klucz interfejsu API

Szybki start

Użyj POST wobec obrazu bitmapowego i uzyskaj zwektoryzowany rezultat:

$ curl https://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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://pl.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

Cennik

Integracja z API i testowanie go jest bezpłatna, nie jest wymagana subskrypcja.

Just use mode=test for development. Możesz ocenić jakość wyników za pomocą interaktywnej aplikacji internetowej na pierwszej stronie.

Production results require a subscription and are 1,00 credit each.

Oferujemy również wyniki podglądu, które możesz pokazać użytkownikom końcowym przed dokonaniem zakupu.

Previews are PNG images four times larger than your input, come with a discreet watermark, and cost 0,20 credits each.

Just use mode=preview to get a preview result.

Zapoznaj się ze stroną cennika planów subskrypcji.

Uwierzytelnianie i bezpieczeństwo

Interfejs API używa standardowego podstawowego uwierzytelniania dostępu HTTP. Wszystkie żądania do interfejsu API muszą być kierowane przez HTTPS i muszą zawierać twoje poświadczenia API, z identyfikatorem API jako użytkownikiem i kluczem tajnym API jako hasłem.

Aby z powodzeniem wykonywać żądania, twoja biblioteka klienta HTTP musi obsługiwać oznaczanie nazwy serwera (SNI). Jeśli otrzymujesz dziwne błędy uzgadniania, to prawdopodobnie z tego powodu.

Limit szybkości

Używanie interfejsu API podlega ograniczeniu przepustowości z wysokimi przydziałami i bez stałej górnej granicy.

Prawdopodobieństwo napotkania na ograniczenie szybkości w zwykłym trybie działania sterowanym przez użytkownika końcowego jest małe, jako że usługa płynnie obsługuje tego rodzaju tryb użycia.

W przypadku zadań wsadowych zalecamy jednak, żeby zacząć od nie więcej niż 5 wątków, dodając 1 nowy wątek co 5 minut aż do osiągnięcia oczekiwanego poziomu równoległości. W razie potrzeby więcej niż 100 współbieżnych wątków, prosimy o kontakt przed rozpoczęciem procesu.

Przesłanie zbyt wielu żądań spowoduje otrzymanie odpowiedzi 429 Too Many Requests. W takim wypadku należy zastosować wycofanie liniowe: po otrzymaniu pierwszej takiej odpowiedzi odczekaj 5 sekund przed przesłaniem kolejnego żądania. Po drugiej kolejnej odpowiedzi 429 odczekaj 2*5=10 sekund przed przesłaniem kolejnych żądań. Po trzeciej odpowiedzi odczekaj 3*5=15 sekund, itd.

Po pomyślnie wykonanym żądaniu możesz zresetować licznik wycofania i stosować wycofanie dla poszczególnych wątków (tzn. wątki powinny działać niezależnie od siebie).

Limity czasu

Podczas gdy żądania API są zwykle wypełniane w ciągu kilku sekund, podczas przejściowych skoków obciążenia możliwe jest dłuższe czasy przetwarzania.

To ensure your client library doesn't prematurely terminate API requests it should be configured with an idle timeout of at least 180 seconds.

Obiekt JSON błędu

Aby określić czy dane żądanie API zakończyło się pomyślnie czy niepomyślnie używamy konwencjonalnych statusów HTTP, uwzględniając istotne informacje o błędzie w zwróconym obiekcie JSON błędu.

Staramy się zawsze zwrócić obiekt JSON błędu dla każdego problematycznego żądania. Zawsze istnieje jednak teoretyczna możliwość wewnętrznych awarii serwera skutkujących odpowiedzią na błąd inną niż JSON.

Atrybuty

statusStatus HTTP odpowiedzi, powtórzony tutaj żeby pomóc z debugowaniem.
codeVectorizer.AI internal error code.
messageCzytelny dla użytkownika komunikat o błędzie, który ma pomóc w debugowaniu.

Jeżeli status HTTP dla żądania wynosi 200, obiekt JSON błędu nie zostanie zwrócony i można bezpiecznie założyć, że żądanie zasadniczo się powiodło.

Niektóre biblioteki klienta HTTP zgłaszają wyjątki dla statusów HTTP w zakresie 400-599. Wyjątki te trzeba przechwycić i odpowiednio obsłużyć.

HTTP StatusZnaczenie
200-299

Powodzenie

400-499

Wystąpił problem z informacją przekazaną w żądaniu (np. brakowało parametru). Przejrzyj komunikat o błędzie aby ustalić jak go rozwiązać.

500-599

There's been a Vectorizer.AI internal error. Zaczekaj chwilę i spróbuj ponownie, a jeśli problem nie zniknie, skontaktuj się z nami e-mailem.

Przykładowa odpowiedź na błąd

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

Ostatnie błędy interfejsu API są wyświetlane na stronie konta dla wygody debugowania.

Istnieje również lista wszystkich odpowiedzi na błędy zwracanych przez API.

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

Aby wektoryzować obraz, wykonaj standardowe przekazanie pliku HTTP POST. Pamiętaj, że przy przekazywaniu plików binarnych wymagany typ zawartości to multipart/form-data.

Poniższa tabela określa wszystkie parametry API w działającej i gotowej do wypróbowania formie. Każdemu parametrowi towarzyszy krótki opis, ale pamiętaj aby zapoznać się ze szczegółową Dokumentacją opcji plików wyjściowych.

Parametry

Obraz wejściowy musi zostać podany jako jeden z poniższych:


Binarny

Plik binarny.


Ciąg

Ciąg zaszyfrowany algorytmem base64. Rozmiar ciągu nie może przekraczać 1 megabajta.


Ciąg

Adres URL do pobierania i przetwarzania.

Musi być plikiem .bmp, .gif, .jpeg, .png, lub .tiff.

Maksymalny rozmiar przekazywanego obrazu (= szerokość × wysokość) wynosi 33 554 432 piksele, i zostanie zmniejszony do input.max_pixels.


Enum, domyślnie: production
Value Processing Mode Credits
production

Ten tryb jest przeznaczony do użytku produkcyjnego i obsługiwane są wszystkie parametry.

1.00
preview

Ten tryb jest przeznaczony, gdy chcesz pokazać użytkownikowi końcowemu podgląd przed dokonaniem zakupu.

Daje wynik 4x PNG z dyskretnym znakiem wodnym, ignorując wszelkie sprzeczne parametry.

0.20
test

Ten tryb jest przeznaczony do użytku programisty podczas integracji z usługą. Wszystkie parametry są obsługiwane, ale istnieje znaczący znak wodny.

Wyniki testów są bezpłatne i nie wymagają aktywnej subskrypcji, dzięki czemu możesz bezpłatnie zintegrować się z usługą.

Bezpłatne

Liczba całkowita, 100 do 3145828, domyślnie: 2097252

Maksymalny rozmiar pliku wejściowego (= szerokość × wysokość w pikselach). Większe obrazy zostaną przed przetworzeniem zmniejszone do tego rozmiaru.


Liczba całkowita, 0 do 256, domyślnie: 0

Maksymalna liczba kolorów do użycia wobec rezultatu.

0 oznacza liczbę nieograniczoną. Zarówno 1 jak i 2 oznacza dwa kolory, np. czarno-biały. N>=2 oznacza tę liczbę kolorów.

Note that if output.gap_filler.enabled=true (the default) then the result will also contain mixtures of the selected colors. Wyłącz wypełniacz szczeliny, aby uzyskać wynik tylko z wybranymi kolorami.


Enum, domyślnie: svg

Format pliku wyjściowego.

Opcje SVG:


Enum, domyślnie: svg_1_1

Określ atrybut wersji SVG w tagu SVG. Szczegóły


Wartość logiczna, domyślnie: false

Czy atrybuty rozmiaru obrazu mają zostać ujęte w tagu SVG. W opcji true przeglądarki zwykle wyświetlą SVG w stałym rozmiarze. W opcji false przeglądarki umożliwią zwykle zeskalowanie i dopasowanie SVG do dostępnego miejsca. Szczegóły


Wartość logiczna, domyślnie: false

W opcji true wyłączamy opcje, których Adobe Illustrator nie jest w stanie importować. Szczegóły

Opcje DXF:


Enum, domyślnie: lines_and_arcs

Czytniki DXF znacząco różnią się od siebie pod względem oferowanych możliwości. Ta opcja pozwala na ograniczenie pliku wyjściowego do podstawowych rysunków faktycznie obsługiwanych przez twój czytnik DXF. Szczegóły

Opcje mapy bitowej:


Enum, domyślnie: anti_aliased
Value Anti-Aliasing Mode
anti_aliased Kolory pikseli wzdłuż granicy między kształtami są mieszane odpowiednio do tego jaką część obszaru piksela zajmuje każdy kształt.
aliased Pikselom przypisuje się kolor kształtu, który zawiera geometryczny środek danego piksela.

Enum, domyślnie: fill_shapes

Określ jakiego rodzaju obrys lub wypełnienie pliku wyjściowego chcesz uzyskać. Obrysowywanie kształtów różni się nieco od obrysowywania ich krawędzi. Wyjaśnienia zawiera szczegółowa dokumentacja


Enum, domyślnie: cutouts

Określa czy kształty umieszczane są w wycięciach w kształtach poniżej (cutouts) czy też nakładane jedne na drugie (stacked). Szczegóły


Enum, domyślnie: none
Value Shape grouping
none Bez grupowania
color Według koloru, współdziała z output.shape_stacking
parent Według zawierającego je kształtu
layer Według warstwy kolejności rysowania
Szczegóły

Wartość logiczna, domyślnie: false

Spłaszczanie rozpoznanych okręgów, elips, prostokątów, trójkątów i gwiazd do zwykłych krzywych. Szczegóły

Krzywe:


Wartość logiczna, domyślnie: true

Czy zezwalać na krzywe Beziera drugiego stopnia. Szczegóły


Wartość logiczna, domyślnie: true

Czy zezwalać na krzywe Beziera trzeciego stopnia. Szczegóły


Wartość logiczna, domyślnie: true

Czy zezwalać na łuki kołowe. Szczegóły


Wartość logiczna, domyślnie: true

Czy zezwalać na łuki eliptyczne. Szczegóły


Zmiennoprzecinkowa, 0.001 do 1.0, domyślnie: 0.1

Maksymalna odległość w pikselach pomiędzy łukiem a zbliżoną do niego linią. Szczegóły

Wypełnianie odstępów:


Wartość logiczna, domyślnie: true

Czy obejść usterki renderujące białe linie powszechne w przeglądarkach wektorów. Szczegóły


Wartość logiczna, domyślnie: false

Czy przycinać obrysy wypełniające odstępy. W opcji output.shape_stacking=stacked wycinaj albo zastosuj nieskalowalne obrysy. Szczegóły


Wartość logiczna, domyślnie: true

Czy stosować nieskalowalne obrysy do wypełniania odstępów. W opcji output.shape_stacking=stacked wycinaj albo zastosuj nieskalowalne obrysy. Szczegóły


Zmiennoprzecinkowa, 0.0 do 5.0, domyślnie: 2.0

Szerokość obrysów wypełniających odstępy. Szczegóły

Styl obrysu w przypadku jeśli output.draw_style to stroke_shapes lub stroke_edges


Wartość logiczna, domyślnie: true

Czy stosować obrys nieskalowalny. Szczegóły


Wartość logiczna, domyślnie: false

Czy stosować kolor nadrzędny czy szacowany kolor kształtu. Szczegóły


Format: '#RRGGBB', np. #FF00FF, domyślnie: #000000

Kolor nadrzędny. Szczegóły


Zmiennoprzecinkowa, 0.0 do 5.0, domyślnie: 1.0

Szerokość obrysu. Szczegóły

Rozmiar pliku wyjściowego:


Zmiennoprzecinkowa, 0.0 do 1000.0

Jednolity współczynnik skali. Jeśli zostaje określony, ma priorytet wobec output.size.width i output.size.height.


Zmiennoprzecinkowa, 0.0 do 1.0E12

Szerokość w jednostkach określonych przez output.size.unit. Przy podanej tylko samej szerokości lub wysokości, druga wartość zostanie wyliczona automatycznie aby zachować współczynnik proporcji.


Zmiennoprzecinkowa, 0.0 do 1.0E12

Wysokość w jednostkach określonych przez output.size.unit. Przy podanej tylko samej szerokości lub wysokości, druga wartość zostanie wyliczona automatycznie aby zachować współczynnik proporcji.


Enum, domyślnie: none

Jednostka miary szerokości i wysokości. Z wymienionych, pt, in, cm i mm to jednostki fizyczne, natomiast none i px to jednostki niefizyczne. Rozróżnienia te współpracują z output.size.input_dpi i output.size.output_dpi.


Enum, domyślnie: preserve_inset

Wartość Zasada skalowania
preserve_inset Zastosuj skalowanie jednolite do bardziej dopasowanego wymiaru, bez przepełnienia ale z pustą przestrzenią w drugim wymiarze
preserve_overflow Zastosuj skalowanie jednolite do mniej dopasowanego wymiaru, z przepełnieniem bardziej dopasowanego wymiaru
stretch Zastosuj skalowanie niejednolite z dopasowaniem do określonej szerokości i wysokości
W każdej opcji preserve pozycję w ramach nieograniczonego wymiaru kontroluje output.size.align_x lub output.size.align_y.


Zmiennoprzecinkowa, 0.0 do 1.0, domyślnie: 0.5

Wyrównanie poziome dla output.size.aspect_ratio = preserve_inset lub preserve_overflow.

Wartość Wyrównanie poziome
0.0 Wyrównane do lewej
0.5 Wyśrodkowane poziomo
1.0 Wyrównane do prawej
Może być dowolną wartością między 0.0 a 1.0.


Zmiennoprzecinkowa, 0.0 do 1.0, domyślnie: 0.5

Wyrównanie pionowe dla output.size.aspect_ratio = preserve_inset lub preserve_overflow.

Wartość Wyrównanie pionowe
0.0 Wyrównane do góry
0.5 Wyśrodkowane pionowo
1.0 Wyrównane do dołu
Może być dowolną wartością między 0.0 a 1.0.


Zmiennoprzecinkowa, 1.0 do 1000000.0

DPI obrazu wejściowego jest odczytywane z pliku, jeśli jest dostępne. Ten parametr pozwala na zastąpienie tej wartości. Wynikowa wartość służy do wyliczenia fizycznego rozmiaru obrazu wejściowego, stanowiącego podstawę wyliczenia rozmiaru wyjściowego w przypadku jeśli dla pliku wyjściowego określono jednostki fizyczne ale nie jawną szerokość lub wysokość.


Zmiennoprzecinkowa, 1.0 do 1000000.0

DPI obrazu wyjściowego. Służy do wyliczenia rozmiaru pikseli wyjściowej mapy bitowej w przypadku jeśli określono jednostki fizyczne.

Status konta GET
https://api.vectorizer.ai/api/v1/account

Pobierz ogólne informacje o swoim koncie, takie jak status subskrypcji i ilość posiadanych środków.

Parametry

Brak

Atrybuty odpowiedzi

subscriptionPlan

Plan subskrypcji, z którego obecnie korzystasz, albo "brak".

subscriptionState

Status twojej aktualnej subskrypcji ("aktywna" albo "zaległa") lub jeżeli subskrypcja nie istnieje - "zakończono".

credits

Liczba kredytów API pozostałych na Twoim koncie. 0, jeśli nie jest aktualnie subskrybowany lub subskrybowany do planu innego niż API. Może być ułamkowy, więc pamiętaj, aby przeanalizować jako podwójny.

Nazwa użytkownika = Identyfikator API, Hasło = Tajne API

cURL

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

Przykładowa odpowiedź

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

Dziennik zmian interfejsu API

DataZmień
4 mar 2024 Dodano sekcję dotyczącą limitu czasu.
24 sty 2024 Dodano punkt końcowy stanu konta. Dodano ostatnie błędy API na stronie Konto. Dodano listę wszystkich odpowiedzi na błędy API.
16 sty 2024 Udokumentowano błąd obiektu JSON.
3 paź 2023 Clarified that output.gap_filler.enabled=true leads to more colors in the result than requested in processing.max_colors.
20 wrz 2023 Dodano mode
1 sie 2023 Dodano kompleksową grupę opcji rozmiarów pliku wyjściowego obejmującą następujące opcje: 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 oraz output.size.output_dpi. Dodano grupę opcji wyjściowej mapy bitowej z jedną opcją: output.bitmap.anti_aliasing_mode.
7 cze 2023 Dodano processing.max_colors
31 maj 2023 Znacznie rozszerzono parametry interfejsu API. Zaktualizowano punkt końcowy interfejsu API.
10 mar 2023 Początkowe wydanie.
Uzyskaj klucz interfejsu API