Saltar al contenido
Wbiztool

API de medios

API para obtener un archivo multimedia

Obtén los detalles y la URL de descarga de un archivo de tu biblioteca de medios a partir de su ID. Úsala para comprobar que un archivo sigue existiendo antes de enviarlo.

GEThttps://wbiztool.com/api/v1/media/{media_id}/

Cuerpo: Query string, o un cuerpo JSON con POST

Sustituye {media_id} en la ruta por el id que devolvió Subir medios o Listar medios, por ejemplo /api/v1/media/5122/.

Ejemplo rápido#

curl -G https://wbiztool.com/api/v1/media/5122/ \
  --data-urlencode client_id=12345 \
  --data-urlencode api_key=YOUR_API_KEY

Sustituye 12345 y YOUR_API_KEY por tus propios valores. Consulta Autenticación para saber dónde encontrarlos.

Parámetros de la solicitud#

Envía client_id y api_key en la query string de una solicitud GET, o como cuerpo JSON en una solicitud POST. Si client_id está en la query string, el cuerpo JSON se ignora.

Ruta

media_idintegerobligatorio

ID del archivo multimedia. Debe ser un número entero; cualquier otro valor devuelve una respuesta HTML de «page not found» en lugar de JSON.

Autenticación

client_idintegerobligatorio

Tu ID de cliente de la API, de Configuración → Claves API.

api_keystringobligatorio

Tu clave API, de esa misma página.

Respuesta#

{
  "status": 1,
  "message": "Media file retrieved successfully",
  "data": {
    "id": 5122,
    "file_name": "media_12345_17895804001234.pdf",
    "original_file_name": "invoice-4821.pdf",
    "file_url": "https://wbiztool-static.s3.ap-southeast-1.amazonaws.com/media/org_12345/media_12345_17895804001234.pdf",
    "file_type": "file",
    "file_size": 248312,
    "file_size_display": "242.5 KB",
    "mime_type": "application/pdf",
    "is_image": false,
    "file_extension": "pdf",
    "created_at": "2026-09-16T10:20:31.512934+00:00",
    "modified_at": "2026-09-16T10:20:31.512961+00:00",
    "uploaded_by": "[email protected]"
  }
}
CampoTipoDescripción
statusinteger1 si todo va bien, 0 si la solicitud falló.
messagestringMedia file retrieved successfully; en caso contrario, el error.
data.idintegerID del archivo multimedia.
data.file_namestringNombre con el que se guarda el archivo.
data.original_file_namestringEl nombre que tenía el archivo cuando se subió.
data.file_urlstringURL de descarga directa. Úsala como img_url o file_url al enviar.
data.file_typestringimage o file.
data.file_sizeintegerTamaño en bytes.
data.file_size_displaystringTamaño legible con un decimal, por ejemplo 242.5 KB.
data.mime_typestringTipo MIME, por ejemplo application/pdf.
data.is_imagebooleantrue cuando file_type es image.
data.file_extensionstringExtensión en minúsculas de original_file_name, sin el punto.
data.created_atstringFecha y hora de subida, en ISO 8601 en UTC con un desfase +00:00.
data.modified_atstringCuándo se modificó por última vez el registro del archivo, en el mismo formato.
data.uploaded_bystring or nullNombre de usuario de inicio de sesión (normalmente la dirección de correo electrónico) del miembro del equipo que subió el archivo.

Errores#

Los errores también devuelven HTTP 200, con status con valor 0:

{ "status": 0, "message": "Media file not found" }

Una excepción: si media_id no es un número, la URL no coincide con ningún endpoint y recibes una página HTML 404 en lugar de JSON.

MensajeCómo solucionarlo
client_id is requiredAñade client_id.
api_key is requiredAñade api_key.
client_id must be a valid integerEnvía client_id como número.
Invalid API keyComprueba que la clave existe y que no se ha eliminado ni desactivado.
Invalid client_id for this API keyLa clave pertenece a otro client_id.
Media file not foundNo existe ningún archivo con este ID en el espacio de trabajo de la clave API, o se eliminó.
Error retrieving media file: …Algo falló por nuestra parte. Vuelve a intentarlo.

Comprobar un archivo antes de enviarlo#

Obtén el archivo por su ID, detente si ya no existe y luego envía su file_url: como img_url con msg_type 1 para imágenes, o como file_url con msg_type 2 para todo lo demás.

Enviar un archivo multimedia guardado
import requests

BASE = "https://wbiztool.com/api/v1"
AUTH = {"client_id": 12345, "api_key": "YOUR_API_KEY"}

result = requests.get(f"{BASE}/media/5122/", params=AUTH, timeout=60).json()
if result["status"] != 1:
    raise SystemExit("Can't use this file: " + result["message"])

media = result["data"]
message = {
    **AUTH,
    "whatsapp_client": 678,
    "country_code": "91",
    "phone": "9876543210",
    "msg": "Here is the document you asked for.",
}
if media["is_image"]:
    message.update(msg_type=1, img_url=media["file_url"])
else:
    message.update(msg_type=2, file_url=media["file_url"], file_name=media["original_file_name"])

print(requests.post(f"{BASE}/send_msg/", json=message, timeout=60).json())

Los archivos que no son imágenes, como .doc, .ppt, .csv, .zip, .wav y .mov, se entregan con .pdf añadido al nombre, y las imágenes de más de 16 MB no se pueden enviar. Consulta Subir medios → Subir y enviar.

Consejos#

  • Los archivos eliminados devuelven Media file not found, aunque su file_url todavía permita descargarlos. Compruébalo con este endpoint en lugar de descargar la URL. Las URL de los archivos subidos son públicas y permanentes; consulta Subir medios → Subir y enviar.
  • Los archivos son de cada espacio de trabajo. Un archivo subido en un espacio de trabajo no se puede leer con una clave API de otro.
  • ¿No conoces el ID? Busca por nombre con Listar medios.