Tutorial API VectoSolve: automatizar la vectorización de imágenes para desarrolladores
Aprende a integrar la API de VectoSolve en tus aplicaciones. Guía completa con ejemplos de código en Node.js, Python y PHP, más workflows de automatización.
Founder of VectoSolve
Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.
How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author
Key Takeaways
- La API de VectoSolve convierte imágenes raster a SVG limpios de forma programática a $0.20 por conversión (los créditos nunca expiran)
-
Endpoint REST simple:
POST https://vectosolve.com/api/v1/vectorizecon autenticación Bearer token y multipart form-data -
Añade
removeBackground=truepor $0.07 adicionales para eliminar automáticamente fondos antes de vectorizar - El límite de tasa es de 60 solicitudes/minuto — usa backoff exponencial y colas por lotes para trabajos grandes
- Se integra con n8n, Zapier y plataformas de agentes IA para workflows de vectorización completamente automatizados
Ya sea que estés construyendo un producto SaaS, automatizando workflows de diseño o procesando miles de imágenes, la API de VectoSolve te permite convertir imágenes raster a vectores SVG limpios de forma programática. Esta guía cubre todo, desde tu primera llamada API hasta integraciones avanzadas.
¿Por qué usar la API de VectoSolve?
La conversión manual de imágenes no escala. La API de VectoSolve permite:
- Procesamiento por lotes — Convertir cientos de imágenes automáticamente
- Integración SaaS — Añadir vectorización a tu producto
- Automatización de workflows — Conectar con n8n, Zapier u OpenClaw
- Calidad constante — Los mismos resultados con IA cada vez
Primeros pasos
Paso 1: Crear tu clave API
Navega a tu panel de claves API y haz clic en "Crear nueva clave". Dale un nombre descriptivo como "Producción" o "Pruebas".
Importante: Copia tu clave API inmediatamente — no se mostrará de nuevo por razones de seguridad.
Paso 2: Añadir créditos
Cada conversión API cuesta $0.20. Suscríbete desde la página de precios. Los créditos nunca expiran, compra lo que necesites.
Paso 3: Hacer tu primera solicitud
El endpoint API acepta solicitudes POST con tu imagen como form-data:
POST https://vectosolve.com/api/v1/vectorize
Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data
Pro Tip: Prueba tu clave API con un simple comando cURL antes de construir tu integración. Esto confirma que tu clave es válida, tienes créditos y el endpoint es accesible desde tu entorno. Toma 10 segundos y ahorra horas de depuración.
Ejemplos de código
cURL
curl -X POST https://vectosolve.com/api/v1/vectorize \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.png" \
-F "removeBackground=false"
Node.js
const FormData = require('form-data');
const fs = require('fs');
const fetch = require('node-fetch');
async function vectorize(imagePath, apiKey) {
const formData = new FormData();
formData.append('file', fs.createReadStream(imagePath));
formData.append('removeBackground', 'false');
const response = await fetch('https://vectosolve.com/api/v1/vectorize', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
},
body: formData,
});
const result = await response.json();
if (result.success) {
console.log('SVG URL:', result.svgUrl);
console.log('Credits remaining:', result.credits.remaining);
return result.svg;
} else {
throw new Error(result.error);
}
}
// Usage
vectorize('./logo.png', 'YOUR_API_KEY');
Python
import requests
def vectorize(image_path, api_key):
url = "https://vectosolve.com/api/v1/vectorize"
with open(image_path, 'rb') as f:
files = {'file': f}
data = {'removeBackground': 'false'}
headers = {'Authorization': f'Bearer {api_key}'}
response = requests.post(url, files=files, data=data, headers=headers)
result = response.json()
if result.get('success'):
print(f"SVG URL: {result['svgUrl']}")
print(f"Credits remaining: {result['credits']['remaining']}")
return result['svg']
else:
raise Exception(result.get('error'))
# Usage
svg = vectorize('./logo.png', 'YOUR_API_KEY')
PHP
<?php
function vectorize($imagePath, $apiKey) {
$url = 'https://vectosolve.com/api/v1/vectorize';
$curl = curl_init();
$postFields = [
'file' => new CURLFile($imagePath),
'removeBackground' => 'false'
];
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postFields,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey
]
]);
$response = curl_exec($curl);
curl_close($curl);
$result = json_decode($response, true);
if ($result['success']) {
echo "SVG URL: " . $result['svgUrl'] . "\n";
return $result['svg'];
} else {
throw new Exception($result['error']);
}
}
// Usage
$svg = vectorize('./logo.png', 'YOUR_API_KEY');
?>
A Full Year of Conversions for $49
Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime
Get the Annual DealFormato de respuesta API
Una respuesta exitosa se ve así:
{
"success": true,
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\"...>",
"svgUrl": "https://vectosolve.com/api/files/abc123.svg",
"backgroundRemoved": false,
"credits": {
"cost": 0.20,
"remaining": 9.80
}
}
Manejo de errores
La API devuelve códigos de estado HTTP estándar:
| Código | Significado | Solución |
|---|---|---|
| 401 | Clave API inválida | Verifica tu header Authorization |
| 402 | Créditos insuficientes | Compra más créditos |
| 403 | Suscripción requerida | Actualiza tu plan |
| 429 | Límite de tasa excedido | Espera y reintenta (60 req/min) |
| 500 | Error del servidor | Reintenta o contacta soporte |
"Las mejores APIs son las que no se interponen en tu camino. Sube un archivo, obtén un SVG — sin configuración, sin ajustar parámetros.
Avanzado: Eliminación de fondo
Añade removeBackground=true para eliminar automáticamente fondos antes de vectorizar. Esto cuesta $0.07 adicionales por solicitud:
curl -X POST https://vectosolve.com/api/v1/vectorize \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@photo.jpg" \
-F "removeBackground=true"
Free SVG Tools for Crafters
Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG
Check Your SVG FreeIntegraciones de automatización
Workflow n8n
n8n es una potente herramienta de automatización de workflows. Para integrar VectoSolve:
- Añade un nodo HTTP Request
- Configura el método a POST
- URL:
https://vectosolve.com/api/v1/vectorize - Autenticación: Header Auth
- Nombre del header:
Authorization - Valor del header:
Bearer YOUR_API_KEY - Tipo de contenido del cuerpo: Form-Data
- Añade el parámetro
filecon tu entrada binaria
Zapier
Usa "Webhooks by Zapier" para conectar VectoSolve a más de 5,000 apps:
- Añade una acción Webhooks by Zapier
- Elige solicitud POST
- URL:
https://vectosolve.com/api/v1/vectorize - Añade header:
Authorization: Bearer YOUR_API_KEY - Tipo de payload: Form
- Mapea tu campo de archivo desde el trigger
OpenClaw / Agentes IA
Para herramientas de automatización con IA como OpenClaw:
- Crea una clave API en tu panel de VectoSolve
- Añade una nueva herramienta HTTP en tu agente IA
- Configura la solicitud POST como se muestra arriba
- Parsea la respuesta JSON para extraer
svgosvgUrl
Para trabajos por lotes de alto volumen (1,000+ imágenes), implementa una arquitectura basada en colas: envía solicitudes de conversión a una cola, procésalas con workers que respeten el límite de tasa (máx 60/min), y almacena resultados en tu propio almacenamiento. Esto previene timeouts y asegura que cada imagen se procese de manera confiable.
Límites de tasa y mejores prácticas
- Límite de tasa: 60 solicitudes por minuto
- Tamaño máximo de archivo: 5 MB
- Formatos soportados: PNG, JPG, JPEG, WEBP, GIF
- Créditos: Nunca expiran
Consejos para procesamiento por lotes:
- Implementa backoff exponencial para límites de tasa
- Encola solicitudes y procesa en lotes de 50
- Cachea resultados para evitar reconvertir la misma imagen
- Usa webhooks para trabajos de gran volumen
Preguntas frecuentes
¿Cuánto cuesta la API?
Cada conversión cuesta $0.20. La eliminación de fondo añade $0.07. Compra créditos en volumen para ahorrar — nunca expiran.
¿Qué formatos de imagen son soportados?
PNG, JPG, JPEG, WEBP y GIF. El tamaño máximo de archivo es 5 MB.
¿Los créditos expiran?
¡No! Una vez comprados, los créditos permanecen en tu cuenta para siempre hasta que se usen.
¿Cuál es el límite de tasa?
60 solicitudes por minuto. Para límites más altos, contáctanos para planes empresariales.
¿Puedo usar la API en productos comerciales?
¡Sí! Puedes integrar la API de VectoSolve en tus aplicaciones comerciales, productos SaaS o proyectos de clientes.
A Full Year of Conversions for $49
Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime
Get the Annual Deal¿Necesitas ayuda?
Consulta estos recursos:
- Panel de claves API — Gestiona tus claves y consulta el uso
- FAQ — Preguntas comunes respondidas
- Precios — Planes mensuales y anuales
¿Listo para empezar? Obtén tu clave API y convierte tu primera imagen en segundos.
| Parámetro API | Tipo | Por defecto | Descripción |
|---|---|---|---|
| image | File (multipart) | Requerido | PNG, JPG o WebP hasta 10 MB |
| removeBackground | Boolean | false | Eliminación IA del fondo antes de vectorización |
| colorMode | String | "color" | "color", "grayscale" o "blackwhite" |
| detailLevel | String | "medium" | Complejidad de trazados: "low", "medium" o "high" |
| outputFormat | String | "svg" | Formato de salida: "svg" o "eps" |
Fuentes y lecturas adicionales
- MDN Web Docs — Fetch API — Referencia para realizar solicitudes HTTP con multipart form-data, usada en los ejemplos de integración API
- Google AI Blog — Image Processing APIs — Perspectivas sobre procesamiento de imágenes con IA, patrones de diseño de API REST y arquitecturas cloud escalables
- Smashing Magazine — API Integration — Guías para desarrolladores sobre consumir APIs REST en Node.js, Python y JavaScript frontend
- W3C SVG 2 Specification — Estándar SVG oficial para entender el formato de salida de las respuestas API de vectorización