API

API PixelToPath

Vetorize imagens programaticamente com uma chamada REST. Faça o upload de um arquivo PNG, JPG, BMP ou WebP e receba de volta um SVG limpo, pronto para produção. Traços em preto e branco são convertidos pelo Potrace, imagens coloridas pelo VTracer — os mesmos motores do conversor online gratuito.

10 conversões grátis todo mês · Sem necessidade de cartão de crédito

10 conversões grátis / mês • 1 chamada REST • Motores Potrace + VTracer • Créditos nunca expiram

Início Rápido

Três passos e você estará convertendo imagens para SVG direto do seu terminal, de seus scripts ou do seu aplicativo.

1 · Crie sua conta

Registre-se no portal do cliente com seu e-mail e uma senha (10+ caracteres). Nenhum cartão de crédito é necessário.

2 · Crie uma chave de API

No portal, crie uma chave. Ela é exibida apenas uma vez — guarde-a com segurança. As chaves se parecem com ptp_live_… e podem ser revogadas a qualquer momento.

3 · Chame /v1/convert

Envie sua imagem como multipart/form-data com sua chave no cabeçalho Authorization. O SVG é retornado no corpo da resposta.

Sua primeira conversão

curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
  -H "Authorization: Bearer ptp_live_YOUR_KEY" \
  -F "[email protected]" \
  -F "colormode=binary" \
  -o logo.svg

Referência interativa: pixel-to-path.com/v1/docs (OpenAPI/Swagger).

Autenticação

Toda solicitação é autenticada com um token Bearer no cabeçalho Authorization:

Authorization: Bearer ptp_live_0123abc…
  • Chaves são segredos: elas são armazenadas com hash no servidor e exibidas apenas uma vez na criação. Perdeu a chave? Revogue-a e crie uma nova.
  • Uma conta, várias chaves: crie até 5 chaves ativas para separar seus projetos. Sua cota mensal gratuita é contabilizada por conta, não por chave.
  • Revogação instantânea: uma chave revogada para de funcionar imediatamente, seja pelo portal ou pela resposta da API de uma conta banida.

POST /v1/convert

Upload + conversão em uma única chamada sem estado. Uma chamada bem-sucedida custa no máximo 1 crédito — chamadas com falha, inválidas ou limitadas não custam nada.

Requisição (multipart/form-data)

Campo Tipo Padrão Descrição
file file A imagem a ser convertida. PNG, JPEG, BMP ou WebP · máx 20 MB · máx 50 Mpx · mín 64×64 px.
colormode string color <code>color</code> usa o motor VTracer, <code>binary</code> usa o Potrace (preto e branco).
mode string spline Somente colorido (VTracer) — ignorado no modo binário. spline | polygon | none
hierarchical string stacked Somente colorido (VTracer) — ignorado no modo binário. stacked | cutout
filter_speckle int 4 Somente colorido (VTracer) — ignorado no modo binário. 0–16 — remove pequenas manchas de ruído.
color_precision int 6 Somente colorido (VTracer) — ignorado no modo binário. 1–8 — número de bits significativos por canal de cor.
layer_difference int 16 Somente colorido (VTracer) — ignorado no modo binário. 0–64 — distância entre camadas de cor.
corner_threshold int 60 0–180 — ângulo de detecção de cantos (ambos os motores).
length_threshold float 4.0 3.5–10 — comprimento mínimo de segmento (ambos os motores).
splice_threshold int 45 0–180 — ângulo de divisão de trajetos (ambos os motores).
path_precision int 3 0–8 — casas decimais nas coordenadas do trajeto.
invert bool false Somente binário (Potrace) — ignorado no modo colorido. Rastrear as áreas claras em vez das escuras.
turdsize int 2 Somente binário (Potrace) — ignorado no modo colorido. 0–20 — suprime manchas até este tamanho.
alphamax float 1.0 Somente binário (Potrace) — ignorado no modo colorido. 0–1.334 — limite de suavização de cantos.
opttolerance float 0.2 Somente binário (Potrace) — ignorado no modo colorido. 0–10 — tolerância de otimização de curvas.

Dois motores, escolhidos por "colormode"

A API executa exatamente os mesmos motores que o conversor online gratuito e o aplicativo de desktop:

binary — Potrace

Traçado em preto e branco de artes, digitalizações, rascunhos e logotipos. A parte escura da imagem (escala de cinza < 50%) é traçada em um fundo branco. Ajuste o resultado com turdsize (remoção de ruído), alphamax (suavização de cantos) e opttolerance (otimização de caminho).

color — VTracer

Vetorização colorida em camadas para ilustrações, desenhos e fotos. Controle o nível de detalhes com filter_speckle, color_precision, layer_difference e o ajuste da curva com mode (spline, polygon, none).

As imagens são pré-processadas exatamente como no site: o lado mais longo é redimensionado para 1500 px antes da conversão, e a API retorna o tipo de imagem detectado (line_art, logo, photo ou illustration) no cabeçalho X-Detected-Type.

Resposta

Em caso de sucesso: 200 OK com image/svg+xml — o corpo da resposta é o próprio arquivo SVG. Cabeçalhos informativos:

Cabeçalho Descrição
X-Credits-RemainingCréditos pagos restantes na conta, após o débito desta chamada.
X-Free-RemainingConversões gratuitas restantes neste mês.
X-Detected-TypeTipo de imagem detectado (informação): line_art, logo, photo ou illustration.
X-Processing-TimeTempo de processamento do servidor em segundos.

GET /v1/me

Status da conta para a chave usada na chamada. Gratuito — nunca é descontado da sua cota, nunca é cobrado.

Exemplo de resposta

GET /v1/me
Authorization: Bearer ptp_live_…

{
  "key": { "name": "prod", "prefix": "ptp_live_0123abc", … },
  "usage": {
    "month": "2026-09", "free_used": 7, "free_limit": 10,
    "free_remaining": 3, "resets_at": "2026-10-01T00:00:00+00:00"
  },
  "credits": { "balance": 120 }
}

Erros

Todo erro retorna um envelope JSON consistente. Chamadas que falham nunca consomem créditos.

HTTP/1.1 402 Payment Required
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly free quota used and no credits left.",
    "usage": { "free_used": 10, "free_limit": 10, "credits": 0 }
  }
}
HTTP Código Quando
401invalid_api_keyChave de API ausente, malformada, desconhecida ou revogada.
402quota_exceededCota mensal gratuita utilizada e sem créditos restantes.
403account_bannedA conta está banida — todas as suas chaves são recusadas.
403ip_blockedO IP do chamador está bloqueado.
413file_too_largeArquivo maior que 20 MB.
422invalid_image / image_too_small / invalid_paramsImagem inválida, imagem muito pequena ou valor de parâmetro inválido.
429rate_limitedLimite de taxa por chave excedido (veja abaixo). Inclui um cabeçalho Retry-After.
500internal_errorA conversão falhou no lado do servidor — nenhum crédito é cobrado.

Limites de taxa

Os limites se aplicam por chave de API, não por IP, para que um escritório compartilhado ou um runner de CI nunca seja penalizado pelo tráfego de outra pessoa.

Limite Valor
Requisições por minuto, por chave60
Requisições por dia, por chave2 000
Conversões simultâneas, por chave2 (chamadas extras aguardam, depois 429)
Tamanho / resolução máx. do arquivo20 MB / 50 Mpx

Preços

Toda nova conta ganha 10 conversões grátis todo mês, sem a necessidade de um cartão de crédito. Precisa de mais? Compre imagens pré-pagas — qualquer quantidade (em lotes de 50), com descontos por volume. Elas nunca expiram e acumulam com sua cota mensal gratuita (as conversões gratuitas são consumidas primeiro).

Grátis

€0/mês

  • 10 conversões / mês
  • Ambos os motores (Potrace + VTracer)
  • Até 5 chaves de API
Criar uma conta

Imagens pré-pagas

€0,050/ imagem

Preços por volume — quanto mais imagens você compra, mais barata fica cada uma
Imagens50–450500–2 4502 500–9 95010 000–49 95050 000+
€/image0.0500.0400.0300.0200.010
  • 1 imagem comprada = 1 conversão (créditos nunca expiram)
  • Nunca expira, acumula com o plano gratuito
  • Qualquer quantidade: €0,040/imagem a partir de 500, até €0,010/imagem
Comprar imagens

Crédito automático: seu saldo é atualizado em segundos após o pagamento, via webhook de pagamento. Os reembolsos deduzem os créditos comprados, limitados ao saldo atual. Checkout seguro pela Lemon Squeezy (IVA processado automaticamente).

Exemplos de código

Copie, cole e adapte. A API usa o multipart/form-data padrão, portanto, qualquer cliente HTTP funciona.

cURL

curl -sS -f -X POST https://api.pixel-to-path.com/v1/convert \
  -H "Authorization: Bearer ptp_live_YOUR_KEY" \
  -F "[email protected]" \
  -F "colormode=color" \
  -F "filter_speckle=4" \
  -o photo.svg

Python

import requests

resp = requests.post(
    "https://api.pixel-to-path.com/v1/convert",
    headers={"Authorization": "Bearer ptp_live_YOUR_KEY"},
    files={"file": open("photo.jpg", "rb")},
    data={"colormode": "color", "filter_speckle": 4},
)
resp.raise_for_status()
print(resp.headers["X-Credits-Remaining"], "credits left")
with open("photo.svg", "wb") as f:
    f.write(resp.content)

JavaScript

const form = new FormData();
form.append("file", new Blob([imageBytes]), "photo.jpg");
form.append("colormode", "color");

const resp = await fetch("https://api.pixel-to-path.com/v1/convert", {
  method: "POST",
  headers: { "Authorization": "Bearer ptp_live_YOUR_KEY" },
  body: form,
});
if (!resp.ok) {
  const { error } = await resp.json();
  throw new Error(`${error.code}: ${error.message}`);
}
const svg = await resp.text();
console.log(resp.headers.get("X-Credits-Remaining"), "credits left");

Perguntas frequentes

O que conta como uma conversão?

Uma chamada POST /v1/convert bem-sucedida que retorna um SVG. Chamadas com falha (imagem inválida, parâmetros errados, limite de taxa excedido, erro de servidor) e chamadas GET /v1/me nunca são cobradas.

Como a cota mensal gratuita é contabilizada?

Por conta, no mês do calendário UTC — ela é zerada no dia 1º às 00:00 UTC. Criar várias chaves de API não multiplica a cota gratuita: todas as chaves de uma conta compartilham as mesmas 10 conversões gratuitas.

Os créditos expiram?

Não. Os créditos comprados permanecem na sua conta até que você os use. Eles são consumidos apenas após as suas 10 conversões mensais gratuitas acabarem.

Como eu obtenho mais conversões em um mês?

Compre imagens pré-pagas no portal do cliente — qualquer quantidade, em lotes de 50. Você sempre vê exatamente quantas imagens está recebendo: 50 imagens €2,50, 500 imagens €20, 2.500 €75, 10.000 €200, 50.000 €500. Os créditos são adicionados à sua conta automaticamente em segundos após o pagamento — sem chave de licença, nada para inserir.

O que acontece se eu perder minha chave de API?

As chaves são armazenadas com hash, por isso não podem ser recuperadas. Revogue a chave perdida no portal e crie uma nova — ela entra em vigor imediatamente.

Quais formatos de imagem são suportados?

PNG, JPEG, BMP e WebP, até 20 MB e 50 megapixels, com pelo menos 64×64 pixels. Imagens com mais de 1500 px no lado mais longo são redimensionadas antes da conversão, exatamente como no site gratuito.

Escolha a Sua Versão

O mesmo motor poderoso - escolha o formato que se adapta ao seu fluxo de trabalho.

🌐

Ferramenta Online

Grátis

Converta imagens diretamente no seu navegador. Sem instalação, sem conta.

Abrir a ferramenta
💻

App para Desktop

Grátis & código aberto

O conversor completo na sua máquina, para Windows & Linux.

Baixar grátis
⌨️

App desktop Pro

€39 pagamento único

Pasta dinâmica (hot folder), conversão em lote e CLI para cargas de trabalho pesadas.

Obter o Pro
🔌

API

Plano grátis + pacotes de créditos

Uma chamada REST: envie uma imagem, receba um SVG limpo. 10 grátis/mês.

Obter uma chave de API

Pronto para vetorizar em escala?

Crie sua conta, pegue uma chave e faça sua primeira chamada em menos de dois minutos.

Obtenha sua chave de API grátis