Saltar al contenido
WbizTool

API v2 (beta)

Medios

El Directorio de medios guarda los archivos de tu espacio de trabajo: listas de precios, menús, folletos, fotos de productos. Sube un archivo una vez y luego envíalo tantas veces como quieras con "media": {"media_id": …} en un mensaje o un recordatorio. Es el mismo directorio que la página Directorio de medios del panel, así que los archivos subidos allí también aparecen aquí.

OperaciónEndpointPermiso
Subir un archivoPOST /api/v2/mediamedia
Listar archivosGET /api/v2/mediamedia
Obtener un archivoGET /api/v2/media/{id}media
Eliminar un archivoDELETE /api/v2/media/{id}media

Subir un archivo#

POSThttps://wbiztool.com/api/v2/media

Cuerpo: multipart/form-data

Envía un archivo por solicitud como multipart/form-data, en el campo file. Es el único endpoint de v2 que no acepta JSON. La respuesta es 201 con el objeto Media.

  • Hasta 64 MB por archivo.
  • Tipos: el tipo se deduce de la extensión al final del nombre del archivo, así que no la quites.
ClaseExtensiones
Imágenes.jpg, .jpeg, .jpe, .png, .gif, .webp, .bmp
Documentos.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .csv, .txt
Audio.mp3, .m4a, .wav, .ogg, .oga, .aac
Vídeo.mp4, .mov, .avi
Archivos comprimidos.zip, .rar
  • Almacenamiento: todos los archivos del espacio de trabajo juntos pueden ocupar lo que permite su plan, de 250 MB a 10 GB (consulta Almacenamiento por plan). Un archivo que no cabe se rechaza con storage_full.
  • Un archivo de imagen (type image) se envía como imagen por defecto; cualquier otro, como archivo.
  • Envía una Idempotency-Key para que un reintento después de un tiempo de espera agotado no guarde el archivo dos veces.
curl -X POST https://wbiztool.com/api/v2/media \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Idempotency-Key: price-list-2026-10" \
  -F "file=@./price list.pdf"

Respuesta (201):

{
  "id": 3301,
  "name": "price list.pdf",
  "type": "file",
  "mime_type": "application/pdf",
  "size": 182344,
  "url": "https://media.wbiztool.com/media/org_5012/media_5012_17608123450000_0.pdf",
  "created_at": "2026-10-18T10:31:40.120Z"
}

Después, envíalo:

{
  "to": { "phone": "+919876543210" },
  "text": "Here is our new price list.",
  "media": { "media_id": 3301 }
}

El destinatario ve el nombre con el que se subió (price list.pdf); indica media.file_name en el mensaje para mostrar otro.

Errores al subir#

HTTPCódigoCuándo
400validation_failedNo hay ningún archivo en el campo file, o hay más de uno
413file_too_largeEl archivo supera los 64 MB
415unsupported_file_typeLa extensión no es uno de los tipos anteriores
415unsupported_content_typeLa solicitud no es multipart/form-data (por ejemplo, es JSON)
422storage_fullEl archivo no cabe en el almacenamiento del plan; used y limit indican cuánto, en bytes
502upload_failedNo se pudo guardar el archivo. Inténtalo de nuevo (con la misma Idempotency-Key)

Listar archivos#

GEThttps://wbiztool.com/api/v2/media

Los archivos del espacio de trabajo, primero los más recientes, en páginas (limit de 1 a 100, 25 por defecto, y cursor).

curl "https://wbiztool.com/api/v2/media?limit=100" \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

La respuesta es {"data": [Media, …], "next_cursor": "…" or null}.

Obtener un archivo#

GEThttps://wbiztool.com/api/v2/media/{id}
curl https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Un archivo que no existe o que se eliminó responde 404 media_not_found.

Eliminar un archivo#

DELETEhttps://wbiztool.com/api/v2/media/{id}

Elimina el archivo del Directorio de medios y del almacenamiento, así que su url deja de funcionar. Los mensajes ya enviados conservan su copia en el teléfono del destinatario.

Se rechaza mientras algo vaya a enviar todavía el archivo: un mensaje que espera para salir (también los de una campaña), un recordatorio activo o un disparador activo de Google Sheets. En ese caso la respuesta es 409 media_in_use, y count indica cuántos hay. Cancélalos o cámbialos antes, o espera a que los mensajes hayan salido.

curl -X DELETE https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "id": 3301, "deleted": true }
HTTPCódigoCuándo
404media_not_foundNo existe ese archivo
409media_in_useTodavía lo usa un mensaje en espera, un recordatorio activo o un disparador de Google Sheets

El objeto Media#

CampoTipoDescripción
idintegerEl ID del archivo: el media_id con el que se envía.
namestringEl nombre con el que se subió.
typestringimage para los archivos de imagen, file para todo lo demás.
mime_typestringComo application/pdf o image/jpeg.
sizeintegerTamaño en bytes.
urlstringUn enlace público al archivo. Cualquiera que tenga el enlace puede abrirlo, así que no subas archivos que deban seguir siendo privados.
created_atstringCuándo se subió.

Relacionado#