PreviewFile IconPreviewFile.dev
Documentación

Resumen de API

Genera enlaces de vista previa de archivos seguros programáticamente con una API REST simple.

Inicio Rápido

PreviewFile.dev proporciona una API REST simple para generar enlaces de vista previa desde URLs. Crea enlaces de vista previa seguros y con tiempo limitado con solo una llamada API.

110+ Formatos de Archivo Soportados: Vista previa de PDFs, documentos de Office, imágenes, videos, archivos de código y más. Ver Formatos Soportados para la lista completa.

POST /api/u

Crear enlaces de vista previa desde URLs:

curl -X POST https://previewfile.dev/api/u \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -d '{
    "url": "https://example.com/document.pdf",
    "ttlMinutes": 120,
    "watermark": "Confidential",
    "noDownload": true,
    "oneTime": false
  }'

Respuesta:

{
  "success": true,
  "data": {
    "shortUrl": "a1b2c3d4",
    "previewUrl": "https://previewfile.dev/p/a1b2c3d4",
    "expireAt": "2025-10-02T15:30:00Z",
    "status": "READY",
    "ttlMinutes": 120,
    "watermark": "Confidential",
    "noDownload": true,
    "oneTime": false
  }
}

La API genera automáticamente enlaces cortos con nanoid(8) para seguridad y legibilidad.

Referencia de API

Autenticación

Incluye tu clave API en el header x-api-key:

x-api-key: YOUR_API_KEY

Stable OpenAPI (/api/v1)

For long-term integration, prefer the versioned API surface:

  • OpenAPI schema: GET /api/v1/openapi.json
  • Upload file (multipart): POST /api/v1/upload
  • Get preview metadata: GET /api/v1/previews/{shortUrl}
  • Get file access URL (direct or S3 presigned): GET /api/v1/previews/{shortUrl}/file-url

Upload example

curl -X POST https://previewfile.dev/api/v1/upload \
  -H "x-api-key: $API_KEY" \
  -F "file=@./document.pdf" \
  -F "ttlMinutes=60" \
  -F "watermark=Confidential" \
  -F "noDownload=true" \
  -F "oneTime=false"

Fetch file access URL

curl -X GET https://previewfile.dev/api/v1/previews/a1b2c3d4/file-url \
  -H "x-api-key: $API_KEY"

Parámetros de Solicitud

CampoTipoRequeridoPor DefectoDescripción
urlstringSí-URL original para vista previa
ttlMinutesnumberNo60Validez del enlace en minutos (5-1440)
watermarkstringNonullTexto de marca de agua (máx. 120 caracteres)
noDownloadbooleanNofalseDeshabilitar funcionalidad de descarga
oneTimebooleanNofalseExpirar después de la primera vista

Respuesta

Respuesta Exitosa (200):

{
  "success": true,
  "data": {
    "shortUrl": "a1b2c3d4",
    "previewUrl": "https://previewfile.dev/p/a1b2c3d4",
    "expireAt": "2025-10-02T15:30:00Z",
    "status": "READY",
    "ttlMinutes": 120,
    "watermark": "Confidential",
    "noDownload": true,
    "oneTime": false
  }
}

Campos de Respuesta:

CampoTipoDescripción
shortUrlstringIdentificador de URL corta de 8 caracteres
previewUrlstringURL de vista previa completa para compartir
expireAtstringMarca de tiempo de expiración ISO 8601
statusstringEstado de vista previa: READY, PENDING o EXPIRED
ttlMinutesnumberDuración de validez del enlace
watermarkstring | nullTexto de marca de agua si está configurado
noDownloadbooleanEstado de restricción de descarga
oneTimebooleanRestricción de acceso único

Respuesta de Error (4xx/5xx):

{
  "success": false,
  "error": "Mensaje de error"
}

Ejemplos de Uso

cURL

curl -X POST https://previewfile.dev/api/u \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -d '{
    "url": "https://example.com/document.pdf",
    "ttlMinutes": 120,
    "watermark": "Confidential",
    "noDownload": true,
    "oneTime": false
  }'

Node.js (Fetch)

const response = await fetch('https://previewfile.dev/api/u', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    url: 'https://example.com/document.pdf',
    ttlMinutes: 120,
    watermark: 'Confidential',
    noDownload: true,
    oneTime: false
  })
});

const data = await response.json();
console.log(data.data.previewUrl);

Python (Requests)

import requests

response = requests.post(
    'https://previewfile.dev/api/u',
    headers={
        'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
    },
    json={
        'url': 'https://example.com/document.pdf',
        'ttlMinutes': 120,
        'watermark': 'Confidential',
        'noDownload': True,
        'oneTime': False
    }
)

data = response.json()
print(data['data']['previewUrl'])

Características

  • 110+ Formatos de Archivo: Vista previa nativa del navegador para PDFs, documentos de Office, imágenes, videos, código y más (ver lista completa)
  • URLs Cortas: Identificadores de 8 caracteres generados automáticamente con nanoid para seguridad
  • Tiempo Limitado: Establecer expiración de 5 minutos a 24 horas
  • Marcas de Agua: Agregar overlays de texto personalizados a las vistas previas
  • Control de Descarga: Deshabilitar opcionalmente las descargas de archivos
  • Enlaces de Un Solo Uso: Hacer que los enlaces expiren después del primer acceso
  • URL Original Oculta: Los destinatarios nunca ven la URL original del archivo

On this page