Documentación

Medios

Las imágenes y los videos de tus anuncios: generados a partir de una descripción, al precio vigente del catálogo, con cargo a tu Saldo publicitario ( amount_charged ; la imagen está incluida en la tarifa de gestión; si el saldo no alcanza, 402 con deposit_url ; si la generación falla, se devuelve), o imágenes subidas por ti. Consulta el medio hasta que status sea ready y úsalo en creatives .

Generar una imagen o un video#

POST /api/v1/media/generate Bearer

Cobra la generación a tu Saldo publicitario y la genera aparte: una imagen, o un video de 5, 10 o 15 segundos cuya fotografía dibuja el modelo de imagen y el renderizador de video pone en movimiento, con las palabras que nombres.

Content-Type: application/json

Cuerpo de la solicitud

prompt string requerido

Qué mostrar, hasta 2000 caracteres.

type string

image (por defecto) o video .

imagevideo

aspect_ratio string

Imagen: 1:1 , 4:3 (por defecto), 3:4 , 16:9 , 9:16 o 4:5 .

duration_seconds integer

Video: 5 , 10 (por defecto) o 15 .

resolution string

Video: horizontal (por defecto), vertical o cuadrado.

1920x10801080x19201080x1080

reference_media_ids array

Hasta 3 imágenes tuyas ( /media , ready ) de las que el modelo compone.

headline string

Video: el título en pantalla, hasta 40 caracteres.

text string

Video: el texto en pantalla, hasta 90 caracteres.

call_to_action_text string

Video: el llamado a la acción en pantalla, hasta 25 caracteres.

Devuelve · 201 con el medio ( pending ) · 402 insufficient_balance con details.deposit_url · 400 media_not_priced (el precio se define en Consola › Productos) · 400 video_model_not_configured · 422 con errors .

cURL
curl -X POST https://edge.datil.com/api/v1/media/generate \
  -H "Authorization: Bearer $DATIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "Una notaria sonriente firmando en su tableta, luz cálida"
}'
Respuesta · 201
{
  "id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
  "object": "media",
  "type": "image",
  "source": "generated",
  "status": "pending",
  "prompt": "Una notaria sonriente firmando en su tableta, luz cálida",
  "mime": null,
  "width": null,
  "height": null,
  "amount_charged": "0.50",
  "refunded": false,
  "error": null,
  "created_at": "2026-09-27T14:03:01Z",
  "updated_at": "2026-09-27T14:03:01Z"
}

Subir una imagen#

POST /api/v1/media Bearer

Guarda una imagen PNG o JPEG de hasta 10 MB, lista al instante.

Content-Type: application/json

Cuerpo de la solicitud

data string requerido

La imagen en base64.

Devuelve · 201 con el medio ( ready ) · 422 con errors .

cURL
curl -X POST https://edge.datil.com/api/v1/media \
  -H "Authorization: Bearer $DATIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "data": "iVBORw0KGgoAAAANSUhEUgAA…"
}'
Respuesta · 201
{
  "id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
  "object": "media",
  "type": "image",
  "source": "uploaded",
  "status": "ready",
  "prompt": null,
  "mime": "image/png",
  "width": 1024,
  "height": 768,
  "amount_charged": "0.00",
  "refunded": false,
  "error": null,
  "created_at": "2026-09-27T14:03:01Z",
  "updated_at": "2026-09-27T14:03:01Z"
}

Listar medios#

GET /api/v1/media Bearer

De la más antigua a la más reciente, por páginas: limit (1 a 100, 25 por defecto) y after (el next_cursor de la página anterior).

Parámetros

status string

pending , processing , ready o failed .

limit integer

Cuántos por página, de 1 a 100.

after string

El next_cursor de la página anterior.

Devuelve · 200 con la lista ( data , has_more , next_cursor ) · 422 con un filtro inválido.

cURL
curl "https://edge.datil.com/api/v1/media" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "object": "list",
  "data": [
    {
      "id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
      "object": "media",
      "type": "image",
      "source": "generated",
      "status": "ready",
      "prompt": "Una notaria sonriente firmando en su tableta, luz cálida",
      "mime": "image/png",
      "width": 1024,
      "height": 768,
      "amount_charged": "0.50",
      "refunded": false,
      "error": null,
      "created_at": "2026-09-27T14:03:01Z",
      "updated_at": "2026-09-27T14:03:01Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Consultar un medio#

GET /api/v1/media/:id Bearer

Un objeto de tu organización, con su estado de entrega.

Parámetros

id string requerido

El id del objeto.

Devuelve · 200 con el objeto · 404 not_found para uno que no es de tu organización.

cURL
curl "https://edge.datil.com/api/v1/media/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
  "object": "media",
  "type": "image",
  "source": "generated",
  "status": "ready",
  "prompt": "Una notaria sonriente firmando en su tableta, luz cálida",
  "mime": "image/png",
  "width": 1024,
  "height": 768,
  "amount_charged": "0.50",
  "refunded": false,
  "error": null,
  "created_at": "2026-09-27T14:03:01Z",
  "updated_at": "2026-09-27T14:03:01Z"
}
Sin conexión — reintentando…

Esenciales

Sesión, seguridad, idioma y tema. Sin ellas el sitio no funciona.

Siempre activas