Vectorizer.AI oferece SDKs oficiais, um cliente de linha de comando, especificações OpenAPI e uma API completa de rastreamento de bitmap. Todas essas ferramentas de desenvolvedor usam o mesmo serviço para rastrear pixels em vetores de forma totalmente automática e com a melhor fidelidade da categoria.
Para integrações HTTP diretas, PUBLIQUE uma imagem de bitmap e receba um resultado vetorizado:
$ curl https://pt.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://pt.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://pt.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://pt.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://pt.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 the official SDK: https://vectorizer.ai/api/documentation#sdks
# Requires "requests" to be installed (see https://pypi.org/project/requests/)
import requests
response = requests.post(
'https://pt.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://pt.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://pt.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://pt.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://pt.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://pt.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://pt.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 the official SDK: https://vectorizer.ai/api/documentation#sdks
# Requires "requests" to be installed (see https://pypi.org/project/requests/)
import requests
response = requests.post(
'https://pt.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://pt.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
Criamos um ChatGPT personalizado que pode ajudar nas integrações de desenvolvedores do Vectorizer.AI entre SDKs, linha de comando, OpenAPI e API HTTP direta. Ele pode responder a perguntas sobre esses documentos e fornecer exemplos de código ou comandos em seu idioma preferido, adaptados ao seu caso de uso.
O chatbot está em versão beta e comete erros. Confira as respostas e peça a ele que revise o código para solucionar erros e omissões.
Os SDKs oficiais são gerados a partir da especificação pública OpenAPI e usam a mesma autenticação HTTP Basic que as chamadas diretas à API. Elas são o ponto de partida recomendado para a maioria das integrações de aplicativos, e suas chamadas vetorizadas e de download retornam o conteúdo do arquivo, enquanto as chamadas de conta e exclusão retornam modelos JSON.
Todos os SDKs têm como alvo https://api.vectorizer.ai/api/v1 e envolvem os endpoints estáveis /vectorize, /download, /delete e /account.
| Idioma | Instalar | Fonte | Chamada primária | Vetorizar resultado |
|---|---|---|---|---|
| Python |
Aprovação pendente do PyPI
Planejado: pip install vectorizer-ai-sdk
|
GitHub |
VectorizationApi.post_vectorize(...)
|
bytearray |
| TypeScript / JavaScript |
npm install @vectorizer-ai/sdk
|
GitHub |
VectorizationApi.postVectorize(...)
|
Blob |
| Java |
ai.vectorizer:vectorizer-ai-java
|
GitHub |
VectorizationApi.postVectorize(...)
|
File |
| C# / .NET |
dotnet add package Vectorizer.AI
|
GitHub |
VectorizationApi.PostVectorize(...)
|
Stream |
| Go |
go get github.com/clv/vectorizer-go
|
GitHub |
VectorizationAPI.PostVectorize(...).Execute()
|
*os.File |
| PHP |
composer require vectorizer/ai
|
GitHub |
VectorizationApi::postVectorize([...])
|
SplFileObject |
| Ruby |
gem install vectorizer_ai
|
GitHub |
VectorizationApi#post_vectorize(...)
|
File |
Prefira SDKs para integrações de aplicativos. Para geradores personalizados, linguagens não suportadas ou trabalho direto com protocolos, use a especificação OpenAPI. A configuração do gerador está disponível no GitHub.
Baixe o manifesto das ferramentas do cliente
O cliente oficial da linha de comando é um executável independente para Windows, macOS e Linux. Ele é destinado a shells, scripts, processamento em lote, fluxos de trabalho de controle de qualidade e usuários que desejam vetorizar imagens sem escrever código de aplicativo.
Baixe pacotes binários e Linux dos lançamentos do GitHub ou veja a fonte no GitHub. A CLI usa as mesmas credenciais de API, servidor e comportamento de endpoint que chamadas diretas de API e integrações de SDK.
export VECTORIZER_API_ID="your-api-id" export VECTORIZER_API_SECRET="your-api-secret" vectorizer vectorize logo.png -o logo.svg vectorizer vectorize logo.png -o logo.pdf --format pdf vectorizer download IMAGE_TOKEN -o logo.svg
Use os SDKs ao incorporar o Vectorizer.AI em um aplicativo e use o cliente de linha de comando quando a interface natural for um terminal, uma tarefa agendada ou um pipeline de processamento de arquivos.
A API direta está disponível como uma especificação OpenAPI 3.0 para clientes gerados, validação de esquema e exploração de API. A mesma especificação também impulsiona o fluxo de trabalho oficial de geração de SDK.
A especificação declara
https://api.vectorizer.ai/api/v1 como seu servidor, então os clientes gerados usam caminhos de endpoint como /vectorize, /download, /delete e /account.
| Especificação | Uso |
|---|---|
| /api/openapi.json |
Especificação canônica OpenAPI, adequada para publicação, clientes gerados e ferramentas de documentação. |
| /api/openapi-codegen.json |
Alias de geração de código para ferramentas e scripts de criação que preferem uma URL dedicada. |
| /api/openapi-swagger.json |
Variante orientada à interface do usuário do Swagger com esquemas embutidos e metadados de parâmetros com muitas descrições. |
| /apis.json |
Documento de descoberta de APIS.json para APIS.io e outras ferramentas de catálogo de APIs. |
Esses fluxos de trabalho se aplicam se você usa um SDK oficial, o cliente de linha de comando ou a API HTTP direta. Este são alguns dos comuns:
Chame o fluxo de trabalho do Vectorize diretamente, por meio de um SDK ou com o cliente de linha de comando.
Se você precisar fazer muitas chamadas de serviço para fazer uma venda, poderá usar as visualizações de menor custo até realmente converter um cliente.
Chame Vectorize por meio de um SDK, cliente de linha de comando ou HTTP direto com
mode=preview e policy.retention_days > 0 para obter a visualização, certificando-se de reter o token de imagem retornado no cabeçalho de resposta X-Image-Token.
Após a conversão, chame Download with the Image Token para baixar o resultado completo.
Opcional: se precisar do resultado em mais formatos (por exemplo, PNG, PDF, etc), mantenha o recibo retornado no cabeçalho de resposta do download X-Receipt. Em seguida, use o fluxo de trabalho de download com o token de imagem e o recibo para baixar os formatos restantes.
Chame Vectorize com policy.retention_days > 0 para obter o primeiro resultado, certificando-se de reter o token de imagem retornado no cabeçalho de resposta X-Image-Token.
Chame Download com o Image Token para baixar os outros formatos.
Chame Vectorize com policy.retention_days > 0 para obter o primeiro resultado, certificando-se de reter o token de imagem retornado no cabeçalho de resposta X-Image-Token.
Chame Vectorize com o Image Token para iterar as opções de processamento restantes de que você precisa.
Como alternativa, você pode processar cada imagem individualmente, sem se preocupar com o token da imagem. O token da imagem economiza um pouco de banda e latência.
| Ação | Créditos | Descrição |
|---|---|---|
| Teste | 0.000 |
A integração e o teste do serviço são gratuitos, sem necessidade de assinatura.
Use Você pode avaliar a qualidade do resultado usando o app interativo da Web na página inicial do site. |
| Prévia | 0.200 |
Nós oferecemos a visualização de uma prévia dos resultados, que você pode mostrar ao seu usuário final antes que ele faça a compra. As prévias são imagens PNG quatro vezes maiores do que a imagem fornecida por você e trazem uma marca d'água discreta.
Utilize |
| Vetorização | 1.000 | Vetorize uma imagem bitmap em uma imagem vetorial e baixe o resultado da produção. |
| Visão prévia do upgrade | 0.900 | Faça download do resultado de produção após a chamada de API da prévia. É mais barato do que vetorizar novamente desde o início. |
| Formato de download | 0.100 | Faça download do resultado em outros formatos, como SVG, PNG, PDF, etc. É mais barato do que vetorizar novamente desde o início. |
| Dia de armazenamento | 0.010 | Preço por dia para armazenar um resultado gratuitamente após o primeiro dia. |
Consulta os planos de assinatura na página de preços.
A API usa autenticação padrão HTTP básica de acesso. Todas as requisições para a API devem ser feitas em HTTPS e incluir suas credenciais da API, tendo API Id como usuário e API Secret como senha.
Os SDKs oficiais e o cliente de linha de comando usam essas mesmas credenciais e adicionam o cabeçalho de autenticação HTTP Basic para você.
Sua biblioteca de cliente HTTP deve aceitar Indicação de Nome do Servidor (SNI) para fazer requisições corretamente. Se você estiver recebendo erros de handshake estranhos, provavelmente esta é a causa.
O uso da API tem limite de taxa com margens generosas e não há tetos definitivos.
Durante as operações conduzidas pelo usuário final, é improvável que você tenha limitações de velocidade, pois o uso é adaptado pelo sistema de forma transparente.
No entanto, para trabalhos em lote, recomendamos começar com no máximo cinco ramificações e adicionar uma nova ramificação a cada cinco minutos, até atingir o nível de paralelismo desejado. Se você precisa de mais de 100 ramificações simultâneas, fale conosco antes de começar.
A maneira mais fácil de realizar esse aumento gradual no paralelismo é iniciar imediatamente o número de segmentos que você eventualmente deseja usar, mas depois usar um semáforo de contagem que comece com 5 permissões. Em seguida, você pode ter um tópico separado que aumenta o número de licenças em 1 a cada 5 minutos.
Se enviar requisições em excesso, você começará a receber respostas do tipo 429 Too Many Requests. Se isso ocorrer, você deverá aplicar um algoritmo de back off linear: na primeira resposta desse tipo, aguarde 5 segundos até reenviar a requisição seguinte. Na segunda resposta 429 consecutiva, aguarde 2 x 5=10 segundos até reenviar a requisição seguinte. Na terceira, aguarde 3 x 5=15 segundos, e assim por diante.
Você poderá reinicializar o contador de back off após o processamento satisfatório de uma requisição, e o back off deve ser aplicado ramificação a ramificação, ou seja, as ramificações devem operar independentemente.
Em geral, as solicitações de API são executadas em segundos, mas é possível que o tempo de processamento seja mais longo durante picos de carga.
Para assegurar que sua biblioteca de cliente não encerre solicitações de API prematuramente, ela deveria ser configurada com um limite de tempo de inatividade mínimo de 180 segundos
O cliente oficial da linha de comando usa como padrão um tempo limite maior, mas o SDK personalizado e as integrações HTTP diretas ainda devem definir explicitamente um tempo limite apropriado.
Usamos status HTTP convencionais para indicar êxito ou falha de uma requisição de API e incluir informações importantes sobre erro no objeto JSON de erro retornado.
Tentamos sempre retornar um objeto JSON de erro com qualquer requisição problemática. Teoricamente, no entanto, sempre é possível haver falhas internas no servidor que resultam em uma resposta de erro não JSON.
|
Atributos |
|
|---|---|
| status | O status HTTP da resposta, repetido aqui para auxílio na depuração de erros. |
| code | código interno de erro Vectorizer.AI |
| message | Mensagem de erro inteligível, para ajudar na depuração. |
Se o status HTTP da sua requisição for 200, não haverá retorno de Objeto JSON de erro e você pode supor com segurança que a requisição foi, de forma geral, exitosa.
Algumas bibliotecas de cliente HTTP suscitam exceções para status HTTP no intervalo 400-599. Você deverá obter essas exceções e tratá-las adequadamente.
Os SDKs apresentam essas respostas malsucedidas como exceções nativas ou valores de erro, enquanto o cliente da linha de comando imprime os detalhes do erro da API como erro padrão.
| HTTP Status | Significado |
|---|---|
200-299
|
Êxito |
400-499
|
Há um problema com as informações fornecidas na requisição, por exemplo, a falta de um parâmetro. Analise a mensagem de erro para resolver como solucioná-lo. |
500-599
|
Houve um erro interno no Vectorizer.AI. Aguarde alguns momentos e tente novamente. Se o problema persistir, envie-nos um e-mail. |
Exemplo de resposta de erro
{
"error" : {
"status" : 400,
"code" : 1006,
"message" : "Failed to read the supplied image. "
}
}
Os erros de API recentes estão relacionados na página da sua conta para facilitar o debugging.
Também há uma lista de todas as respostas de erro retornadas pela API.
Estes são os cabeçalhos de resposta utilizados:
Ao usar um SDK, use a variante do método com reconhecimento de cabeçalho se precisar de tokens de imagem, recibos, informações de crédito ou cabeçalhos de nova tentativa. Ao usar o cliente de linha de comando, os tokens e recibos de imagem são impressos com erro padrão para que a saída binária ainda possa ser gravada na saída padrão.
| Cabeçalho | Descrição |
|---|---|
X-Image-Token
|
Retornado quando a solicitação de vetorização tem
|
X-Receipt
|
Retornado no download de um resultado de produção usando o token de uma prévia da imagem. Pode ser usado para fazer download de outros formatos do resultado (por exemplo, SVG, PNG, PDF, etc.) pelo custo de download de formato, em vez do custo de upgrade da prévia da imagem. |
X-Credits-Calculated
|
Retornado com as solicitações de teste para mostrar o custo que seria incorrido de esta fosse uma solicitação normal. |
X-Credits-Charged
|
Retornado com todas as solicitações para mostrar o custo incorrido. É sempre 0 nas solicitações de teste. |
POST
https://api.vectorizer.ai/api/v1/vectorize
Para vetorizar uma imagem, basta fazer um upload de arquivo HTTP POST padrão. Lembre-se de que o Content-Type deve ser multipart/form-data no upload de arquivos binários.
A tabela abaixo lista todos os parâmetros da API para que você possa testar agora. Cada parâmetro tem uma descrição sucinta, mas você pode consultar mais detalhes na Documentação de opções de saída.
POST
https://api.vectorizer.ai/api/v1/download
Este endpoint permite:
Fazer download do resultado de produção completo depois de fazer uma chamada de API de prévia.
O cabeçalho X-Receipt é incluído na resposta, para que, depois, você possa fazer download de outros formatos de resultado ao preço reduzido do formato de download.
Fazer download de vários formatos de resultado para a mesma imagem e opções de processamento ao preço reduzido de formato de download, sem precisar revetorizar desde o início.
POST
https://api.vectorizer.ai/api/v1/delete
As imagens vetorizadas com policy.retention_days > 0 são armazenadas pelo período solicitado e excluídas automaticamente pouco depois.
De forma geral, não há necessidade de chamar este endpoint. Ele é oferecido para que você possa excluir imagens antes que o período de retenção termine. A exclusão antecipada da imagem não proporcionar um reembolso dos dias de armazenamento remanescentes.
|
Atributos de resposta |
|
|---|---|
| success |
|
Exemplo de resposta
{
"success" : true
}
GET
https://api.vectorizer.ai/api/v1/account
Obtenha informações básicas sobre a sua conta, como o status da assinatura e o número de créditos remanescentes.
|
Parâmetros |
|
|---|---|
| Nenhum | |
|
Atributos de resposta |
|
|---|---|
| subscriptionPlan |
O seu plano de assinatura atual ou "nenhum". |
| subscriptionState |
O status do seu plano de assinatura atual ("ativo" ou "atrasado") ou, se não houver assinatura, "terminado". |
| credits |
A quantidade de créditos da API remanescente em sua conta. 0 se não tiver assinatura ou se a assinatura for de uma plano sem API. Pode ser fracionário, portanto aplique parse como Double. |
Experimente
Nome do usuário = Id da API, Senha = Segredo da API
cURL
$ curl "https://api.vectorizer.ai/api/v1/account" \ -u vkyc67kqa27yidd:[secret]
Exemplo de resposta
{
"subscriptionPlan" : "none",
"subscriptionState" : "ended",
"credits" : 0
}
| Data | Alterar |
|---|---|
| 1 de jun. de 2026 | Foram adicionados downloads da especificação OpenAPI 3.0 para clientes gerados e exploração de API. Foi adicionado o pacote oficial do SDK e a documentação do cliente de linha de comando. |
| 4 de nov. de 2024 |
Foi adicionado processing.shapes.min_area_px.
|
| 1 de out. de 2024 | Foi adicionado um chatbot de IA para ajudar nas integrações de desenvolvedores. |
| 23 de set. de 2024 | Expandiu substancialmente a API para possibilitar mais modos de operação. Adicionou tokens de imagem, recibos, cabeçalhos de cobrança por chamada, bem como endpoints de download e exclusão. |
| 11 de jun. de 2024 |
processing.palette foi adicionado
|
| 4 de mar. de 2024 | Seção sobre limite de tempo foi adicionada. |
| 24 de jan. de 2024 | O endpoint Status da Conta foi adicionado. Os erros recentes de API foram adicionados à página da conta. A lista de todas as respostas de erro da API foi adicionada. |
| 16 de jan. de 2024 | Documentou o objeto JSON de erro. |
| 3 de out. de 2023 |
Esclarecimento de que output.gap_filler.enabled=true resulta em mais cores do que o solicitado em processing.max_colors.
|
| 20 de set. de 2023 |
Foi adicionado mode
|
| 1 de ago. de 2023 |
Grupo completo de opções do tamanho da saída foi adicionado com as seguintes opções: 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 e output.size.output_dpi. Grupo de opções de saída bitmap foi adicionado com uma opção: output.bitmap.anti_aliasing_mode.
|
| 7 de jun. de 2023 |
Foi adicionado processing.max_colors
|
| 31 de mai. de 2023 | Grande expansão dos parâmetro da API. Atualização do endpoint da API. |
| 10 de mar. de 2023 | Liberação inicial. |