PreviewFile IconPreviewFile.dev

Visão Geral da API

Gere links de visualização de arquivos seguros programaticamente com uma API REST simples.

Início Rápido

PreviewFile.dev fornece uma API REST simples para gerar links de visualização a partir de URLs. Crie links de visualização seguros e com tempo limitado com apenas uma chamada de API.

110+ Formatos de Arquivo Suportados: Visualização de PDFs, documentos Office, imagens, vídeos, arquivos de código e mais. Veja Formatos Suportados para a lista completa.

POST /api/u

Criar links de visualização a partir de 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
  }'

Resposta:

{
  "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
  }
}

A API gera automaticamente links curtos com nanoid(8) para segurança e legibilidade.

Referência da API

Autenticação

Inclua sua chave API no cabeçalho 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 Solicitação

CampoTipoObrigatórioPadrãoDescrição
urlstringSim-URL original para visualização
ttlMinutesnumberNão60Validade do link em minutos (5-1440)
watermarkstringNãonullTexto da marca d'água (máx. 120 caracteres)
noDownloadbooleanNãofalseDesabilitar funcionalidade de download
oneTimebooleanNãofalseExpirar após primeira visualização

Resposta

Resposta de Sucesso (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 Resposta:

CampoTipoDescrição
shortUrlstringIdentificador de URL curta de 8 caracteres
previewUrlstringURL de visualização completa para compartilhar
expireAtstringTimestamp de expiração ISO 8601
statusstringStatus de visualização: READY, PENDING ou EXPIRED
ttlMinutesnumberDuração de validade do link
watermarkstring | nullTexto da marca d'água se configurado
noDownloadbooleanStatus de restrição de download
oneTimebooleanRestrição de acesso único

Resposta de Erro (4xx/5xx):

{
  "success": false,
  "error": "Mensagem de erro"
}

Exemplos 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'])

Recursos

  • 110+ Formatos de Arquivo: Visualização nativa do navegador para PDFs, documentos Office, imagens, vídeos, código e mais (ver lista completa)
  • URLs Curtas: Identificadores de 8 caracteres gerados automaticamente com nanoid para segurança
  • Tempo Limitado: Definir expiração de 5 minutos a 24 horas
  • Marcas d'Água: Adicionar overlays de texto personalizados às visualizações
  • Controle de Download: Desabilitar opcionalmente downloads de arquivos
  • Links de Uso Único: Fazer links expirarem após primeiro acesso
  • URL Original Ocultada: Destinatários nunca veem a URL original do arquivo

On this page