PDF Blocks
PreçosSuporte
Começar grátis
Abrir a página

Requisições e respostas

O formato que toda chamada compartilha: uma requisição de formulário multipart, uma resposta que é um documento e nenhum estado guardado entre as duas.

Toda ação da API compartilha um mesmo contrato. Você envia uma requisição multipart/form-data com seu PDF em um campo file e recebe de volta o documento processado no corpo da resposta. Não há tarefa para consultar, nem etapa de upload, nem recurso para limpar depois: uma requisição entra, um documento sai. Aprenda esse formato uma vez e todas as páginas de ação passam a se ler da mesma maneira.

Toda requisição tem o mesmo formato

Cada ação é um único POST para /v1/<action> com um corpo multipart/form-data. Três coisas estão sempre presentes:

  • O cabeçalho X-API-Key com sua chave secreta, por HTTPS.
  • Uma parte file com o PDF de entrada.
  • Zero ou mais partes de texto para as opções da ação (por exemplo line_1 ou pages), com os nomes exatos que a referência da ação lista.

Veja uma requisição completa que carimba uma marca-d’água, mostrada como HTTP bruto:

POST /v1/add_text_watermark HTTP/1.1
Host: api.pdfblocks.com
X-API-Key: your_api_key
Content-Type: multipart/form-data; boundary=----PdfBlocksBoundary

------PdfBlocksBoundary
Content-Disposition: form-data; name="file"; filename="input.pdf"
Content-Type: application/pdf

%PDF-1.7
<binary PDF bytes>
------PdfBlocksBoundary
Content-Disposition: form-data; name="line_1"

CONFIDENTIAL
------PdfBlocksBoundary--

Lendo parte por parte:

  • Linha de requisição: POST /v1/add_text_watermark. O nome da ação é o caminho; o método é sempre POST.
  • X-API-Key: sua chave autentica a requisição. Consulte Autenticação.
  • Content-Type: multipart/form-data com uma string delimitadora. O auxiliar multipart de qualquer cliente HTTP define esse cabeçalho e o delimitador para você; raramente você o escreve à mão.
  • A parte file: o PDF de entrada, enviado como binário.
  • Partes de opção: uma parte por opção, aqui line_1. Cada uma é um valor de texto simples.

Você nunca monta esse corpo à mão. O cliente HTTP de qualquer linguagem o constrói a partir de um arquivo aberto e de alguns campos. A mesma requisição em cURL:

cURLbash
curl https://api.pdfblocks.com/v1/add_text_watermark \
  -H 'X-API-Key: your_api_key' \
  -F file=@input.pdf \
  -F line_1='CONFIDENTIAL' \
  -o watermarked.pdf

A URL base padrão é https://api.pdfblocks.com. Para manter o processamento em uma jurisdição específica, troque o host por um host regional. Consulte Regiões e residência de dados. Só o host muda; o caminho, os cabeçalhos e o corpo são idênticos em toda parte.

Toda resposta é o documento

Uma ação de saída única responde com 200 OK e traz no corpo bruto o PDF processado:

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213

%PDF-1.7
<binary PDF bytes>

O corpo é o documento pronto, não um JSON envolvendo uma URL nem uma string base64. Grave-o em fluxo direto em um arquivo ou passe-o para a próxima etapa do seu pipeline. Em cURL, é o -o watermarked.pdf acima; no código, é gravar os bytes de response em disco, exatamente como fazem os exemplos de cada página de ação.

Stateless por design

A API não armazena nada. Seu documento é processado na memória, na região que você endereça, e descartado assim que a resposta é escrita. Não existe um ID de documento para consultar depois nem uma cópia no servidor para excluir. Como nada persiste entre as chamadas, cada requisição precisa levar o seu próprio file de entrada, inclusive quando você encadeia ações e alimenta uma chamada com a saída da anterior (consulte Encadear ações).

Onde o contrato varia

Três coisas se apoiam nessa base, cada uma documentada na sua própria página:

  • Mais de uma entrada. Mesclar documentos recebe uma matriz ordenada de partes file, e Adicionar uma marca-d’água de imagem recebe uma segunda parte binária image. As duas são tratadas em Trabalhar com arquivos.
  • Mais de uma saída. A família de divisão retorna vários documentos, e você escolhe o empacotamento (ZIP, JSON ou multipart) com o cabeçalho Accept. Consulte Formatos de resposta.
  • Falhas. Qualquer erro retorna um corpo application/problem+json seguindo a RFC 7807, nunca um PDF parcial. Consulte Erros.