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=png

Una ú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.

formatpng

Formato de salida: png o pdf.

w1200

Ancho en píxeles (64–4096).

h630

Alto 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 · #e63946

Color de fondo.

fgstring · #ffffff

Color del texto.

fontstring · ""

poppins · playfair · bebas · anton · pacifico · lobster

sizenumber · 8

Tamaño del texto (1–40).

animstring · none

none · pulse · shake (no afecta al PNG).

rainstring · ""

Emoji de lluvia (no afecta al PNG).

imgstring · ""

URL de imagen central (https).

imgSizenumber · 60

Tamaño de la imagen en % (10–100).

imgCovernumber · 0

0 = 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=png

Ejemplos

PNG (tamaño por defecto, 1200×630)

/api/render?d=<banner>

PDF

/api/render?d=<banner>&format=pdf

Desde una plantilla publicada

/api/render?id=12&format=png

Tamaño personalizado (cuadrado para redes)

/api/render?d=<banner>&w=1080&h=1080

Limitaciones

  • 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.
Probar en el editor