---
title: "Genera una imagen desde un prompt (handler de imágenes activo del workspace)"
method: POST
path: "/workspaces/{workspaceId}/images/generate"
tags: ["Images"]
---

# Genera una imagen desde un prompt (handler de imágenes activo del workspace)

`POST /workspaces/{workspaceId}/images/generate`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/workspaces/{workspaceId}/images/generate`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Genera una imagen desde un prompt con el proveedor que el workspace tenga activo, **debitando Energía** — no necesitas contratar ni configurar un proveedor externo, va con la misma key. El proveedor y sus límites salen del catálogo de nodos.

## Path parameters

- `workspaceId` number, required

## Request body

- GenerateImageDto
  - `aspect_ratio` string
  - `model` string
  - `prompt` string, required

## Response `201`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` ImageResultDto, required
    - `format` string, required: Tipo MIME del archivo generado.
    - `model` string, required: Modelo que la generó, resuelto (el que pediste, o el default del handler).
    - `size_bytes` number: Peso del archivo en bytes. Ausente si el proveedor no lo informa.
    - `url` string, required: URL del archivo generado, ya alojado por Meteor (no la URL temporal del proveedor). Es el **original**, a resolución completa: úsalo para el visor a pantalla completa y para la descarga. Para mostrarlo en chico —una miniatura, una fila de lista, un avatar— pide la versión ya dimensionada agregando `?width=…&height=…` a la ruta de render de Storage, en vez de descargar megabytes para pintar un cuadradito. Si el almacenamiento no está disponible, viene como `data:` URI en línea.

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `402`: El workspace se quedó sin Energía y esta operación la consume. No es un bloqueo de la cuenta: las lecturas y el resto de la API siguen respondiendo. Recarga Energía en la página que trae `error.recharge_url` (Facturación del panel) y reintenta; reintentar antes no cambia nada.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `409`: La operación entra en conflicto con el estado actual o con un Idempotency-Key en uso. No reintentes con el mismo key y un body distinto.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/5d9ca294295c?raw)
