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-Remaining | Créditos pagos restantes na conta, após o débito desta chamada. |
X-Free-Remaining | Conversões gratuitas restantes neste mês. |
X-Detected-Type | Tipo de imagem detectado (informação): line_art, logo, photo ou illustration. |
X-Processing-Time | Tempo 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 |
|---|---|---|
| 401 | invalid_api_key | Chave de API ausente, malformada, desconhecida ou revogada. |
| 402 | quota_exceeded | Cota mensal gratuita utilizada e sem créditos restantes. |
| 403 | account_banned | A conta está banida — todas as suas chaves são recusadas. |
| 403 | ip_blocked | O IP do chamador está bloqueado. |
| 413 | file_too_large | Arquivo maior que 20 MB. |
| 422 | invalid_image / image_too_small / invalid_params | Imagem inválida, imagem muito pequena ou valor de parâmetro inválido. |
| 429 | rate_limited | Limite de taxa por chave excedido (veja abaixo). Inclui um cabeçalho Retry-After. |
| 500 | internal_error | A 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 chave | 60 |
| Requisições por dia, por chave | 2 000 |
| Conversões simultâneas, por chave | 2 (chamadas extras aguardam, depois 429) |
| Tamanho / resolução máx. do arquivo | 20 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
Imagens pré-pagas
€0,050/ imagem
| Imagens | 50–450 | 500–2 450 | 2 500–9 950 | 10 000–49 950 | 50 000+ |
|---|---|---|---|---|---|
| €/image | 0.050 | 0.040 | 0.030 | 0.020 | 0.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
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 ferramentaApp para Desktop
Grátis & código aberto
O conversor completo na sua máquina, para Windows & Linux.
Baixar grátisApp desktop Pro
€39 pagamento único
Pasta dinâmica (hot folder), conversão em lote e CLI para cargas de trabalho pesadas.
Obter o ProAPI
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 APICompare todas as versões & preços →
Já tem uma conta? Entrar no portal do cliente →
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