Inicio rápido
Tres pasos y estarás convirtiendo imágenes a SVG desde tu terminal, tus scripts o tu aplicación.
1 · Crea tu cuenta
Regístrate en el portal de clientes con tu correo electrónico y una contraseña (más de 10 caracteres). No se requiere tarjeta de crédito.
2 · Crea una clave de API
En el portal, crea una clave. Se muestra una vez: guárdala en un lugar seguro. Las claves se ven como ptp_live_… y pueden revocarse en cualquier momento.
3 · Llama a /v1/convert
Envía tu imagen como multipart/form-data con tu clave en el encabezado de Authorization. El SVG volverá en el cuerpo de la respuesta.
Tu primera conversión
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
Referencia interactiva: pixel-to-path.com/v1/docs (OpenAPI/Swagger).
Autenticación
Cada solicitud se autentica con un token Bearer en el encabezado Authorization:
Authorization: Bearer ptp_live_0123abc…
- Las claves son secretas: se almacenan con hash en el servidor y se muestran solo una vez al crearlas. ¿Perdiste tu clave? Revócala y crea una nueva.
- Una cuenta, varias claves: crea hasta 5 claves activas para separar tus proyectos. Tu cuota gratuita mensual se cuenta por cuenta, no por clave.
- Revocación instantánea: una clave revocada deja de funcionar inmediatamente, desde el portal o en la respuesta de la API de una cuenta baneada.
POST /v1/convert
Subida + conversión en una única llamada stateless. Una llamada exitosa cuesta como máximo 1 crédito; las llamadas fallidas, no válidas o con rate-limit no cuestan nada.
Solicitud (multipart/form-data)
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file |
file | — | La imagen a convertir. PNG, JPEG, BMP o WebP · máx. 20 MB · máx. 50 Mpx · mín. 64×64 px. |
colormode |
string | color |
<code>color</code> usa el motor VTracer, <code>binary</code> usa Potrace (blanco y negro). |
mode |
string | spline |
Solo color (VTracer) — se ignora en modo binario. spline | polygon | none |
hierarchical |
string | stacked |
Solo color (VTracer) — se ignora en modo binario. stacked | cutout |
filter_speckle |
int | 4 |
Solo color (VTracer) — se ignora en modo binario. 0–16 — elimina pequeñas manchas de ruido. |
color_precision |
int | 6 |
Solo color (VTracer) — se ignora en modo binario. 1–8 — número de bits significativos por canal de color. |
layer_difference |
int | 16 |
Solo color (VTracer) — se ignora en modo binario. 0–64 — distancia entre capas de color. |
corner_threshold |
int | 60 |
0–180 — ángulo de detección de esquinas (ambos motores). |
length_threshold |
float | 4.0 |
3.5–10 — longitud mínima de segmento (ambos motores). |
splice_threshold |
int | 45 |
0–180 — ángulo de división de trazados (ambos motores). |
path_precision |
int | 3 |
0–8 — decimales en las coordenadas de los trazados. |
invert |
bool | false |
Solo binario (Potrace) — se ignora en modo color. Traza las áreas claras en lugar de las oscuras. |
turdsize |
int | 2 |
Solo binario (Potrace) — se ignora en modo color. 0–20 — suprime manchas hasta este tamaño. |
alphamax |
float | 1.0 |
Solo binario (Potrace) — se ignora en modo color. 0–1.334 — umbral de suavizado de esquinas. |
opttolerance |
float | 0.2 |
Solo binario (Potrace) — se ignora en modo color. 0–10 — tolerancia de optimización de curvas. |
Dos motores, elegidos por "colormode"
La API ejecuta exactamente los mismos motores que el conversor en línea gratuito y la aplicación de escritorio:
binario — Potrace
Trazado en blanco y negro de arte lineal, escaneos, bocetos y logotipos. La parte oscura de la imagen (escala de grises < 50%) se traza sobre un fondo blanco. Ajusta el resultado con turdsize (eliminación de ruido), alphamax (suavizado de esquinas) y opttolerance (optimización de trazados).
color — VTracer
Vectorización en color por capas para ilustraciones, dibujos animados y fotos. Controla el nivel de detalle con filter_speckle, color_precision, layer_difference y el ajuste de curvas con mode (spline, polygon, none).
Las imágenes se preprocesan exactamente igual que en el sitio web: el lado más largo se redimensiona a 1500 px antes de la conversión, y la API devuelve el tipo de imagen detectado (line_art, logo, photo o illustration) en el encabezado X-Detected-Type.
Respuesta
En caso de éxito: 200 OK con image/svg+xml — el cuerpo es el archivo SVG en sí. Encabezados informativos:
| Encabezado | Descripción |
|---|---|
X-Credits-Remaining | Créditos de pago restantes en la cuenta, después del cobro de esta llamada. |
X-Free-Remaining | Conversiones gratuitas restantes este mes. |
X-Detected-Type | Tipo de imagen detectado (información): line_art, logo, photo o illustration. |
X-Processing-Time | Tiempo de procesamiento del servidor en segundos. |
GET /v1/me
Estado de la cuenta para la clave utilizada. Gratis — nunca se descuenta de tu cuota, nunca se cobra.
Ejemplo de respuesta
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 }
}
Errores
Cada error devuelve un JSON consistente. Las llamadas fallidas nunca consumen 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 | Cuándo |
|---|---|---|
| 401 | invalid_api_key | Falta la clave de API, está malformada, es desconocida o ha sido revocada. |
| 402 | quota_exceeded | Cuota gratuita mensual agotada y sin créditos restantes. |
| 403 | account_banned | La cuenta está baneada — todas sus claves son rechazadas. |
| 403 | ip_blocked | La IP está en la lista de bloqueo. |
| 413 | file_too_large | Archivo de más de 20 MB. |
| 422 | invalid_image / image_too_small / invalid_params | Imagen no válida, imagen demasiado pequeña o valor de parámetro no válido. |
| 429 | rate_limited | Límite de tasa por clave excedido (ver a continuación). Incluye un encabezado Retry-After. |
| 500 | internal_error | La conversión falló del lado del servidor — no se cobran créditos. |
Límites de tasa
Los límites se aplican por clave de API, no por IP, por lo que una oficina compartida o un runner de CI nunca es penalizado por el tráfico de otra persona.
| Límite | Valor |
|---|---|
| Solicitudes por minuto, por clave | 60 |
| Solicitudes por día, por clave | 2 000 |
| Conversiones simultáneas, por clave | 2 (las llamadas adicionales esperan, luego 429) |
| Tamaño de archivo / resolución máx. | 20 MB / 50 Mpx |
Precios
Cada cuenta nueva obtiene 10 conversiones gratuitas cada mes, sin necesidad de tarjeta de crédito. ¿Necesitas más? Compra imágenes prepago: cualquier cantidad (en lotes de 50), con descuentos por volumen. Nunca caducan y se acumulan con tu cuota gratuita mensual (las conversiones gratuitas se consumen primero).
Gratis
0 €/mes
- 10 conversiones / mes
- Ambos motores (Potrace + VTracer)
- Hasta 5 claves de API
Imágenes prepago
0,050 €/ imagen
| Imágenes | 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 imagen comprada = 1 conversión (los créditos nunca caducan)
- Nunca caducan, se acumulan con el nivel gratuito
- Cualquier cantidad: 0,040 €/imagen desde 500, hasta 0,010 €/imagen
Crédito automático: tu saldo se actualiza a los pocos segundos del pago, a través del webhook de pago. Los reembolsos deducen los créditos comprados, limitados al saldo actual. Pago seguro a través de Lemon Squeezy (el IVA se maneja automáticamente).
Ejemplos de código
Copia, pega y adapta. La API habla multipart/form-data puro, por lo que cualquier cliente HTTP funcionará.
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");
Preguntas frecuentes
¿Qué cuenta como una conversión?
Una llamada POST /v1/convert exitosa que devuelve un SVG. Las llamadas fallidas (imagen no válida, parámetros incorrectos, límite de tasa, error del servidor) y las llamadas a GET /v1/me nunca se cobran.
¿Cómo se cuenta la cuota gratuita mensual?
Por cuenta, según el mes del calendario UTC: se restablece el día 1 a las 00:00 UTC. Crear varias claves de API no multiplica la cuota gratuita: todas las claves de una cuenta comparten las mismas 10 conversiones gratuitas.
¿Caducan los créditos?
No. Los créditos comprados permanecen en tu cuenta hasta que los usas. Se consumen solo después de que se agotan tus 10 conversiones mensuales gratuitas.
¿Cómo obtengo más conversiones en un mes?
Compra imágenes prepago desde el portal de clientes: cualquier cantidad, en lotes de 50. Siempre verás exactamente cuántas imágenes obtienes: 50 imágenes 2,50 €, 500 imágenes 20 €, 2500 75 €, 10 000 200 €, 50 000 500 €. Los créditos se añaden a tu cuenta automáticamente a los pocos segundos del pago: sin clave de licencia, nada que introducir.
¿Qué pasa si pierdo mi clave de API?
Las claves se almacenan con hash, por lo que no se pueden recuperar. Revoca la clave perdida en el portal y crea una nueva: tiene efecto inmediato.
¿Qué formatos de imagen son compatibles?
PNG, JPEG, BMP y WebP, hasta 20 MB y 50 megapíxeles, al menos 64×64 píxeles. Las imágenes de más de 1500 px en su lado más largo se redimensionan antes de la conversión, exactamente como en el sitio web gratuito.
Elige tu versión
El mismo motor potente: elige el formato que se adapte a tu flujo de trabajo.
Herramienta en línea
Gratis
Convierte imágenes directamente en tu navegador. Sin instalar, sin cuenta.
Abrir la herramientaApp de escritorio
Gratis y de código abierto
El conversor completo en tu máquina, para Windows y Linux.
Descargar gratisApp de escritorio Pro
39 € pago único
Carpeta activa, conversión por lotes y CLI para cargas de trabajo pesadas.
Obtener ProAPI
Nivel gratuito + paquetes de créditos
Una llamada REST: envía una imagen, obtén un SVG limpio. 10 gratis/mes.
Obtén una clave de APICompara todas las versiones y precios →
¿Ya tienes una cuenta? Iniciar sesión en el portal de clientes →
¿Listo para vectorizar a gran escala?
Crea tu cuenta, obtén una clave y haz tu primera llamada en menos de dos minutos.
Obtén tu clave de API gratuita