REST API Reference

A API do PDF Pro permite que você integre nosso robusto motor de processamento de documentos diretamente no seu software, fluxos de CI/CD ou aplicativos internos.

Pré-Requisito de Token

A chave de API é exclusiva para assinantes do Plano Corporativo. Você pode gerar o seu Personal Access Token na página de configurações do painel.

Auth

O PDF Pro autentica a API via Bearer Token. O seu token deve estar presente no cabeçalho Authorization em todas as requisições API.

Aviso: Mantenha seu Access Token em segredo (ex: Use variáveis de ambiente).

cURL
curl -X POST https://api.pdf.dmzdigital.com/v1/compress \
  -H "Authorization: Bearer pdfpro_live_xxxxxxxxxxxxxxxxxxxx"

Rate Limits

Para garantir a estabilidade da plataforma, a API impõe limites baseados no seu plano e janela de processamento.

  • 120 requisições por minuto por chave de API ativa.
  • Limite rígido de payload de 300 MB por requisição de PDF via Multipart.

Se você exceder a cota contratada mensal (`402 Payment Required`) ou os minutos (`429 Too Many Requests`), receberá um erro padronizado nos headers.

Comprimir PDF

Reduz massivamente o tamanho de um documento PDF através de sub-amostragem inteligente de imagens e otimização de fontes e objetos lógicos da página. Retorna a URL segura de download validada por 60 min.

POST/v1/compress

Corpo da Requisição (Multipart Form Data)

ParâmetroTipoDescrição
file *Buffer/FileO arquivo binário original do PDF (Max 300MB).
profileStringbalanced (Padrão), lossless, ou extreme.

Exemplo Node.js (Fetch API)

JavaScript
const fs = require('fs');
const form = new FormData();

form.append('file', fs.createReadStream('./relatorio-anual.pdf'));
form.append('profile', 'balanced');

const response = await fetch('https://api.pdf.dmzdigital.com/v1/compress', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer pdfpro_live_your_token_here'
  },
  body: form
});

const result = await response.json();
console.log("Download URL:", result.url);

Exemplo Python (Requests)

Python
import requests

url = 'https://api.pdf.dmzdigital.com/v1/compress'
headers = { 'Authorization': 'Bearer pdfpro_live_your_token_here' }

with open('./relatorio_pesado.pdf', 'rb') as f:
    files = { 'file': f }
    data = { 'profile': 'extreme' }
    
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())

Resposta de Sucesso (200 OK)

JSON
{
  "success": true,
  "original_size": 15420010,
  "compressed_size": 2405321,
  "savings_percentage": 84.4,
  "url": "https://pdf.dmzdigital.com/storage/v1/object/public/pdfs/tmp_823a-f111.pdf",
  "expires_in": 3600
}

Status Codes de Erro

  • 401
    UnauthorizedChave de API inválida ou ausente no cabeçalho Authorization.
  • 402
    Payment RequiredVocê estourou sua cota/limite de requisições mensais do Plano Corporativo.
  • 413
    Payload Too LargeO arquivo enviado ultrapassa o limite de 300MB contratado.
  • 422
    Unprocessable EntityO arquivo está corrompido, protegido com senha (sem utilizar endpoint /unlock) ou é de formato não-PDF.