Documentación del API de Causas CDN

Aprende a subir archivos de forma remota utilizando tu API Key (SHA256), asignando nombres personalizados (Admins) y obteniendo la URL directa y la velocidad de subida en tiempo real.

1. Autenticación por Header

Cada usuario autorizado/admin posee una API Key SHA256 visible en su Panel de Control. Debes enviar esta clave en las peticiones cURL o en tu software de automatización.

x-api-key: TU_API_KEY_SHA256

2. Subida Estándar por cURL (Uploader / Admin)

Ejemplo para subir un archivo especificando el tiempo de expiración (24h, 7d, 30d, o never):

curl -X POST https://cdn.apicausas.xyz/api/upload \
  -H "x-api-key: TU_API_KEY_SHA256" \
  -F "file=@/ruta/a/mi_foto.png" \
  -F "expiration=7d"

3. Nombre de Archivo Personalizado con Formato ose.nose (Exclusivo Admin)

Si eres usuario con rol admin, puedes enviar el campo opcional custom_name o filename con cualquier nombre y extensión que desees con formato nombre.extension (por ejemplo ose.nose, log.txt, musica.mp3, etc.):

curl -X POST https://cdn.apicausas.xyz/api/upload \
  -H "x-api-key: TU_API_KEY_ADMIN_SHA256" \
  -F "file=@/ruta/a/cualquier_archivo.bin" \
  -F "custom_name=ose.nose" \
  -F "expiration=never"

4. Respuesta JSON con URL y Velocidad de Subida (Speed Test)

El servidor procesa el archivo, calcula el rendimiento de la red del cliente en megabits por segundo (Mbps), guarda el recurso y responde inmediatamente con la URL directa:

{
  "success": true,
  "file": "cualquier_archivo.bin",
  "saved_filename": "ose.nose",
  "url": "https://cdn.apicausas.xyz/f/ose.nose",
  "size_bytes": 10485760,
  "size_human": "10 MB",
  "upload_speed": {
    "duration_ms": 182,
    "duration_sec": 0.182,
    "mbps": 460.88,
    "mb_s": 57.61,
    "human_speed": "57.61 MB/s"
  },
  "uploaded_by": "admin",
  "expires_at": "Never"
}

5. Política de Seguridad y Control de Intentos

El sistema cuenta con prevención contra ataques de fuerza bruta por IP. Tras 5 intentos fallidos de inicio de sesión se aplica un bloqueo de 15 minutos, y tras 10 fallos la IP queda baneada permanentemente.