IA y agentes
Automatiza el recorte de imágenes con Zapier
Monta un Zap que reciba una imagen y genere todas sus medidas con SocialCutter: URL pública en el cuerpo JSON, cabeceras, salidas y errores.
- Zapier
- no-code
- automatización
- Webhooks by Zapier
- SocialCutter
- API key
- redes sociales
Por qué automatizar el recorte en Zapier
Una imagen maestra tiene que servir para Instagram, LinkedIn, X y la portada del blog, y cada hueco pide una proporción distinta. Hacerlo a mano, formato a formato, no escala cuando publicas a diario o cuando el catálogo tiene cientos de fichas.
Zapier encaja porque ya vigila dónde aparecen imágenes nuevas (un formulario, Google Drive, Dropbox, un correo) y porque cualquier plan permite una llamada HTTP a una API REST. SocialCutter recorta la imagen de forma centrada a las medidas exactas de cada destino y devuelve una URL por salida; Zapier mueve esa URL al sitio que toca. El encuadre es predecible: no analiza el contenido ni decide qué parte recortar.
Cómo funciona la API
La API REST vive en https://api.socialcutter.theboomer.dev y la autenticación va en la cabecera X-API-Key (también vale Authorization: Bearer sc_tu_clave).
POST /api/v1/images/process— recibe una imagen y devuelve una salida por destino.POST /api/v1/images/upload— acepta la imagen como cadena base64 en el cuerpo JSON.POST /api/v1/images/process/upload— multipart con el fichero enfileydestinationscomo campo de formulario.POST /api/v1/images/batch— varias imágenes en una sola llamada.GET /api/v1/history,GET /api/v1/wallet,GET /api/v1/platforms— historial, cuota y catálogo real de destinos.
La referencia completa está en https://docs.socialcutter.theboomer.dev.
Zapier y el binario: por qué se evita el multipart
El paso HTTP de Zapier maneja bien el JSON, pero el multipart/form-data que lleva un fichero binario es frágil: según la versión y el disparador, el adjunto llega corrupto, con la longitud mal calculada o sin la parte Content-Type correcta, y la API responde 422 o devuelve una imagen rota. Por eso esta guía no envía el binario:
- Vía recomendada: la URL pública del fichero en el campo
sourcedel cuerpo JSON. Funciona siempre que el origen sea accesible desde fuera. - Alternativa: base64 con
POST /api/v1/images/upload, cuando el origen no expone una URL (un Drive privado, un adjunto de formulario).
No montes el multipart a mano con campos de formulario en Zapier: es donde aparecen los fallos.
Crear la API key
Entra en https://dash.socialcutter.theboomer.dev, abre Perfil → API keys, crea una clave con un nombre reconocible (por ejemplo zapier-produccion) y cópiala: empieza por sc_ y solo se muestra una vez. Guárdala como valor de conexión o variable de entorno, no pegada en el texto de la acción.
El paso HTTP: cabeceras y cuerpo
| Cabecera | Valor |
|---|---|
X-API-Key | sc_tu_clave |
Content-Type | application/json |
Idempotency-Key | Opcional: id estable del fichero, para que un reintento no duplique trabajo |
Añade un paso Webhooks by Zapier → POST y pega este cuerpo en crudo, sustituyendo el valor de value por el campo del disparador (por ejemplo {{image_url}}):
{
"source": { "type": "url", "value": "https://example.com/foto.jpg" },
"destinations": [
{ "platform": "instagram", "format": "post" },
{ "platform": "linkedin", "format": "post" },
{ "platform": "twitter", "format": "post" }
],
"options": { "fit_mode": "cover" }
}
source acepta url o base64; destinations es la lista de plataforma y formato. fit_mode: cover escala y recorta el exceso de forma centrada (el valor por defecto); para encajar la imagen completa, usa contain con background_color.
Destinos que acepta la API
| Plataforma | Formato | Medidas | Relación |
|---|---|---|---|
| post | 1080x1080 | 1:1 | |
| story | 1080x1920 | 9:16 | |
| landscape | 1080x566 | 1.91:1 | |
| post | 1200x630 | 1.91:1 | |
| story | 1080x1920 | 9:16 | |
| cover | 820x312 | 2.63:1 | |
| post | 1200x675 | 16:9 | |
| header | 1500x500 | 3:1 | |
| post | 1200x627 | 1.91:1 | |
| cover | 1128x191 | 5.9:1 | |
| youtube | thumbnail | 1280x720 | 16:9 |
| youtube | banner | 2560x1440 | 16:9 |
| tiktok | cover | 1080x1920 | 9:16 |
Estos datos salen de GET /api/v1/platforms, que es público. El catálogo no incluye un formato 4:5.
Guardar el resultado (URLs de salida)
La respuesta trae image_id y un array outputs, una entrada por destino, con la URL del resultado, la plataforma, el formato y las medidas. En Zapier, añade un paso Formatter → Utilities → Line item to text (o Looping by Zapier) sobre outputs para recorrer las salidas, guarda cada url en una columna de Sheets o una nota, y conserva también platform y format para que un router sepa qué URL va a cada sitio.
Comprueba la respuesta en crudo antes de encadenar nada:
curl -s -X POST "https://api.socialcutter.theboomer.dev/api/v1/images/process" \
-H "X-API-Key: sc_tu_clave" \
-H "Content-Type: application/json" \
-d '{"source":{"type":"url","value":"https://example.com/foto.jpg"},"destinations":[{"platform":"instagram","format":"post"}]}' \
| jq '.image_id, (.outputs[] | {url, platform, format, width, height})'
Encadenar a un CMS o a un almacenamiento
- WordPress: sube la salida a la biblioteca de medios (
POST /wp-json/wp/v2/media) y asigna el id del adjunto afeatured_mediadel post. - Shopify: usa el campo
imagedel producto con la URL de la salida. - Almacenamiento: el módulo de subida necesita el binario, no la URL. Descarga primero la salida con un paso
GETy súbela después; si no acepta el binario, pasa la URL al CMS y deja que él la descargue.
Límites del plan
- Máximo 5 MB por imagen; por encima la API responde
413. - 1 uso por destino (plataforma y formato) por petición. Los destinos repetidos no se cobran dos veces y los procesamientos fallidos se devuelven.
- Cuota diaria por plan: Free (0 €) 3 usos/día, Basic (3 €) 10/día, Pro (9 €) 30/día, Agency (29 €) 100/día. Todos incluyen API y MCP.
- En Zapier, cada paso consume una tarea de tu plan; no añadas pasos de más solo para dar formato.
Errores típicos
| Código | Significado |
|---|---|
| 401 | Falta la cabecera X-API-Key o la clave es incorrecta |
| 429 | Cuota agotada: superaste los usos diarios de tu plan |
| 413 | La imagen supera 5 MB |
| 422 | Error de validación: source o destinations mal formados |
| 400 | Payload inválido: plataforma o formato desconocido |
Coste por ejecución
1 uso por destino. Un Zap que pida Instagram post, LinkedIn post y X post consume 3 usos por imagen. Si el disparador recibe ráfagas, agrupa antes de llamar o usa POST /api/v1/images/batch. Consulta GET /api/v1/wallet para ver la cuota diaria y lo que queda.
Siguientes pasos
- Guía de n8n: Automatiza el recorte con n8n
- Guía de la API con curl: Procesa imágenes desde la terminal
- Guía de WordPress: Integra SocialCutter con WordPress y WooCommerce
- Documentación de la API: https://docs.socialcutter.theboomer.dev
Preguntas frecuentes
¿Hace falta una integración oficial de SocialCutter en Zapier?
No. Basta con un paso HTTP: Webhooks by Zapier con la acción POST, o una acción de petición personalizada. SocialCutter es una API REST y solo necesita URL, cabecera de autenticación y un cuerpo JSON.
¿Por qué no subir el fichero directamente en Zapier?
Porque el paso HTTP de Zapier maneja bien el JSON pero es frágil con el multipart/form-data que lleva un fichero binario: según la versión, el adjunto llega corrupto o sin la longitud correcta. La vía que funciona siempre es enviar la URL pública del fichero en el campo source del cuerpo JSON.
¿Dónde guardo la API key?
Como valor de una conexión o variable de entorno, nunca pegada en el texto de la acción. Zapier guarda los valores de texto plano en el historial de ejecuciones, así que trátala como un secreto.
¿Cómo se cobra cada ejecución?
1 uso por destino, es decir por cada combinación de plataforma y formato que pidas. Un paso que pida Instagram post y LinkedIn post consume 2 usos de tu cuota diaria.
¿Qué tamaño admite?
5 MB por imagen. Por encima la API responde 413. Si el maestro pesa más, redimensiónalo antes o sirve una versión reducida desde la URL.