Introducción

Bienvenido a la documentación de la API de Dynamic Canvas. Nuestra API REST te permite generar imágenes dinámicamente mediante programación, perfecto para automatizar tu flujo de trabajo de diseño a escala.

rocket_launch

¿Nuevo en Dynamic Canvas?

Comienza con nuestra guía de Inicio Rápido para hacer tu primera llamada API en minutos.

Inicio Rápido

Comienza con Dynamic Canvas en tres simples pasos.

1Obtén tu API Key

Regístrate para obtener una cuenta gratuita y obtén tu API key desde el dashboard.

$ export DYNAMIC_CANVAS_API_KEY="your-api-key"

2Crea tu primera solicitud

Usa curl o cualquier cliente HTTP para hacer una solicitud de render.

curl -X POST https://api.dynamiccanvas.com/v1/render \
  -H "Authorization: Bearer $DYNAMIC_CANVAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": "social-media-post",
    "modifications": [
      { "name": "title", "text": "Hello World" },
      { "name": "image", "src": "https://example.com/image.jpg" }
    ],
    "format": "png"
  }'

3Recibe tu imagen generada

La API devuelve una URL a tu imagen generada instantáneamente.

{
  "success": true,
  "render_id": "render_abc123",
  "url": "https://cdn.dynamiccanvas.com/renders/abc123.png",
  "width": 1080,
  "height": 1080,
  "format": "png",
  "created_at": "2025-01-15T10:30:00Z"
}

Autenticación

Todas las solicitudes API requieren autenticación usando Bearer tokens. Incluye tu API key en el header Authorization de cada solicitud.

Header de Autorización

Incluye tu API key como un Bearer token:

Authorization: Bearer your-api-key
warning

Nota de Seguridad

Nunca expongas tu API key en código del lado del cliente o repositorios públicos. Usa variables de entorno para almacenar tu key de forma segura.

Descripción General de la API

La API de Dynamic Canvas está organizada alrededor de REST. Nuestra API usa códigos de respuesta HTTP estándar, autenticación y verbos.

URL Base

https://api.dynamiccanvas.com/v1

Endpoints Disponibles

POST/renderGenerar una nueva imagen desde una plantilla
GET/templatesListar todas las plantillas disponibles
GET/templates/:idObtener detalles de una plantilla específica
GET/renders/:idVerificar el estado de un render

Endpoint de Render

El endpoint de render es el núcleo de nuestra API. Envía una solicitud POST con tu ID de plantilla y modificaciones para generar una nueva imagen.

POST/render

Cuerpo de la Solicitud

{
  "template_id": "string (required)",
  "modifications": [
    {
      "name": "string (required) - element name in template",
      "text": "string (optional) - for text elements",
      "src": "string (optional) - for image elements",
      "value": "string (optional) - for color/style elements",
      "visible": "boolean (optional) - show/hide element"
    }
  ],
  "format": "string (optional) - png, jpg, webp, pdf. Default: png",
  "width": "number (optional) - override template width",
  "height": "number (optional) - override template height",
  "scale": "number (optional) - 1x, 2x, 3x. Default: 1x"
}

Ejemplo de Solicitud

{
  "template_id": "instagram-post",
  "modifications": [
    {
      "name": "headline",
      "text": "Summer Sale 50% OFF"
    },
    {
      "name": "product_image",
      "src": "https://example.com/product.jpg"
    },
    {
      "name": "price",
      "text": "$29.99"
    },
    {
      "name": "accent_color",
      "value": "#ff6b6b"
    },
    {
      "name": "disclaimer",
      "visible": false
    }
  ],
  "format": "png",
  "scale": 2
}

Respuesta

{
  "success": true,
  "render_id": "render_xyz789",
  "url": "https://cdn.dynamiccanvas.com/renders/xyz789.png",
  "width": 1080,
  "height": 1080,
  "format": "png",
  "file_size": 245678,
  "created_at": "2025-01-15T14:22:30Z",
  "expires_at": "2025-01-22T14:22:30Z"
}

Plantillas

Las plantillas son la base de tus imágenes dinámicas. Usa el endpoint de plantillas para listar e inspeccionar las plantillas disponibles.

GET/templates
{
  "templates": [
    {
      "id": "instagram-post",
      "name": "Instagram Post",
      "width": 1080,
      "height": 1080,
      "elements": ["headline", "product_image", "price", "cta"],
      "thumbnail": "https://cdn.dynamiccanvas.com/templates/instagram-post.png"
    }
  ],
  "total": 1,
  "page": 1,
  "per_page": 20
}

Modificaciones

Las modificaciones te permiten personalizar los elementos de la plantilla. Cada modificación apunta a un elemento específico por nombre y aplica el cambio deseado.

text_fields

Modificación de Texto

Cambia el contenido de texto de los elementos de texto en tu plantilla.

{ "name": "headline", "text": "Your Title Here" }
image

Modificación de Imagen

Reemplaza imágenes en tu plantilla con URLs a tus propias imágenes.

{ "name": "photo", "src": "https://example.com/image.jpg" }
palette

Modificación de Color

Actualiza los colores de los elementos usando códigos de color hex.

{ "name": "accent_color", "value": "#ff6b6b" }
visibility

Modificación de Visibilidad

Muestra u oculta elementos dinámicamente.

{ "name": "watermark", "visible": false }

Formatos de Salida

Dynamic Canvas soporta múltiples formatos de salida para satisfacer tus necesidades.

PNGPNG

Mejor para imágenes con transparencia. Compresión sin pérdida.

JPGJPEG

Mejor para fotos. Tamaño de archivo menor con compresión con pérdida.

WEBPWebP

Formato moderno con excelente compresión. Genial para web.

PDFPDF

Perfecto para materiales impresos y documentos.

Manejo de Errores

La API usa códigos de respuesta HTTP convencionales para indicar el éxito o fracaso de una solicitud.

401 UnauthorizedError de Autenticación

Tu API key falta o es inválida. Verifica el header Authorization.

404 Not FoundNo Encontrado

El recurso solicitado (plantilla o render) no fue encontrado.

422 Unprocessable EntityError de Validación

El cuerpo de la solicitud contiene parámetros inválidos o campos requeridos faltantes.

429 Too Many RequestsLímite de Tasa Excedido

Has excedido el límite de tasa de tu plan. Espera y reintenta.

500 Internal Server ErrorError del Servidor

Ocurrió un error inesperado en nuestros servidores. Por favor intenta más tarde.

Crear Plantillas

Crea plantillas usando nuestro editor visual en el dashboard. Las plantillas definen el diseño base que será modificado vía API.

Pasos para Crear una Plantilla

  1. 1Ve al Dashboard y haz clic en 'Crear Plantilla'
  2. 2Diseña tu plantilla usando el editor visual
  3. 3Nombra cada elemento que quieras modificar dinámicamente
  4. 4Guarda y anota tu ID de plantilla para llamadas API

Imágenes Dinámicas

Reemplaza imágenes en tus plantillas dinámicamente. Las imágenes se obtienen de URLs que proporcionas.

Formatos de Imagen Soportados

JPGPNGWEBPGIFSVGBMP

Texto Dinámico

Modifica elementos de texto en tus plantillas con contenido dinámico.

Mejores Prácticas para Texto Dinámico

  • check_circleUsa cajas de texto que puedan acomodar longitudes de texto variables
  • check_circleConsidera el comportamiento de desbordamiento de texto en tu diseño
  • check_circlePrueba con contenido realista para asegurar el formato correcto

Procesamiento por Lotes

Genera múltiples imágenes eficientemente iterando a través de tus datos.

# Example: Generate multiple social posts
templates = [
  { "title": "Product A", "image": "product-a.jpg" },
  { "title": "Product B", "image": "product-b.jpg" },
  { "title": "Product C", "image": "product-c.jpg" },
]

for item in templates:
  response = requests.post(
    "https://api.dynamiccanvas.com/v1/render",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
      "template_id": "instagram-post",
      "modifications": [
        { "name": "headline", "text": item["title"] },
        { "name": "product_image", "src": item["image"] }
      ]
    }
  )
  print(response.json()["url"])

n8n

Conecta Dynamic Canvas a flujos de trabajo de n8n para automatización poderosa. Usa el nodo HTTP Request para llamar nuestra API.

Pasos de Configuración

  1. 1.Agrega un nodo HTTP Request a tu flujo de trabajo
  2. 2.Establece el método a POST y la URL a nuestro endpoint de render
  3. 3.Agrega tu API key en los headers y configura el body

Zapier

Integra Dynamic Canvas con más de 5000 apps usando Zapier. Crea Zaps que generen imágenes basadas en triggers de otras apps.

Make (Integromat)

Usa Make (antes Integromat) para crear escenarios de automatización complejos con Dynamic Canvas.

SDKs y Librerías

Usa nuestros SDKs oficiales para una integración más rápida en tu lenguaje preferido.

Node.js

npm install @dynamic-canvas/sdk

Python

pip install dynamic-canvas

Límites de Tasa

Los límites de tasa varían por plan. Exceder los límites resultará en errores 429.

PlanSolicitudes/minRenders/mes
Gratis10100
Pro605,000
Enterprise500Ilimitado

Precios

Dynamic Canvas ofrece precios flexibles para adaptarse a tus necesidades.

info

Visita la página de precios en nuestro sitio web para información detallada de planes y funciones.