API
Genera tus banners como PNG o PDF con una simple petición GET.
Cómo funciona
Cada banner se describe con un objeto que viaja codificado en la URL. La API toma ese mismo objeto y lo renderiza a imagen en el servidor. No necesitas clave (de momento).
Endpoint
GET https://banner.cool/api/render?d=<banner>&format=pngUna única ruta GET. Indica el banner con «d» (codificado) o con «id» (plantilla publicada).
Parámetros
dobligatorio (d o id)Banner codificado en base64url. Es justo lo que aparece tras el # en el editor.
id—Alternativa a «d»: id de una plantilla publicada.
formatpngFormato de salida: png o pdf.
w1200Ancho en píxeles (64–4096).
h630Alto en píxeles (64–4096).
El objeto banner
Campos que acepta el modelo. Todos son opcionales: los que falten toman su valor por defecto.
textstring · ""Texto principal (admite \n y emojis).
bgstring · #e63946Color de fondo.
fgstring · #ffffffColor del texto.
fontstring · ""poppins · playfair · bebas · anton · pacifico · lobster
sizenumber · 8Tamaño del texto (1–40).
animstring · nonenone · pulse · shake (no afecta al PNG).
rainstring · ""Emoji de lluvia (no afecta al PNG).
imgstring · ""URL de imagen central (https).
imgSizenumber · 60Tamaño de la imagen en % (10–100).
imgCovernumber · 00 = logo centrado · 1 = fondo a sangre.
htmlstring · ""HTML libre. Si se rellena, no exporta a PNG/PDF.
Cómo obtener «d»
Lo más fácil: diseña en el editor y copia lo que va tras el # en la URL. Para generarlo por código, codifica el JSON en base64url:
const banner = { text: "Hola 👋", bg: "#111", fg: "#fff", font: "anton", size: 12 };
const d = Buffer.from(JSON.stringify(banner), "utf8")
.toString("base64")
.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
// GET https://banner.cool/api/render?d=${d}&format=pngEjemplos
PNG (tamaño por defecto, 1200×630)
/api/render?d=<banner>/api/render?d=<banner>&format=pdfDesde una plantilla publicada
/api/render?id=12&format=pngTamaño personalizado (cuadrado para redes)
/api/render?d=<banner>&w=1080&h=1080Limitaciones
- Las plantillas de HTML libre no se exportan: el motor de render no ejecuta HTML/CSS arbitrario y devuelve 422.
- El PNG es un fotograma estático: no incluye animaciones ni la lluvia de emojis.
- Por ahora la API es abierta y sin límite de uso; en el futuro podría requerir clave.