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 -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.
/v1/compressCorpo da Requisição (Multipart Form Data)
| Parâmetro | Tipo | Descrição |
|---|---|---|
| file * | Buffer/File | O arquivo binário original do PDF (Max 300MB). |
| profile | String | balanced (Padrão), lossless, ou extreme. |
Exemplo Node.js (Fetch API)
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)
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)
{
"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
- 401UnauthorizedChave de API inválida ou ausente no cabeçalho
Authorization. - 402Payment RequiredVocê estourou sua cota/limite de requisições mensais do Plano Corporativo.
- 413Payload Too LargeO arquivo enviado ultrapassa o limite de 300MB contratado.
- 422Unprocessable EntityO arquivo está corrompido, protegido com senha (sem utilizar endpoint /unlock) ou é de formato não-PDF.