Skip to content
Seal
Esc
↑↓navigate↵open⌘Jpreview

Produce a password-protected copy of a draft PDF

Encrypts the PDF via convert-worker pdfengines (qpdf) and stores an encrypted artifact; download_url fetches it. The working draft stays unencrypted — Seal’s own pipeline cannot read encrypted PDFs. Honours the org egress.allow_convert gate.

POST/documents/pdf/protect
Authorization
AuthorizationBearer token · headerrequired

Pass your API key as a Bearer token. API keys are scoped to specific operations — configure scopes in your organization's Settings → Developer → API Keys.

Request body
requiredapplication/json
idstringrequired
user_passwordstring

Password required to open the PDF

max length 128
owner_passwordstring

Password granting full access (defaults to user)

max length 128
allow_printingboolean
allow_copyingboolean
allow_modifyingboolean
allow_annotatingboolean
allow_filling_formsboolean
allow_assemblingboolean
Responses
200

Protected copy created

successboolean
storage_idstring
sizeinteger
download_urlstring | null
Try it
Server
Authorization
Bodyapplication/json
Request
curl -X POST "https://api.seal.nyc/api/v1/documents/pdf/protect" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "string",
  "user_password": "string",
  "owner_password": "string",
  "allow_printing": true,
  "allow_copying": true,
  "allow_modifying": true,
  "allow_annotating": true,
  "allow_filling_forms": true,
  "allow_assembling": true
}'
Response
{
  "success": true,
  "storage_id": "string",
  "size": 0,
  "download_url": "string"
}