PDFDispatch Docs

Metadata

Read the document properties of PDFs as JSON, or set title, author, keywords and other properties.

Read

POST https://api.pdfdispatch.com/v1/pdf/metadata/read

FieldTypeDefaultWhat it does
files requiredfile(s)–One or more PDFs. Each is handled on its own; several come back as a ZIP.

The answer is JSON: one object per file, by file name.

curl --fail-with-body \
  --header "Authorization: Bearer $PDD_KEY" \
  --form files=@offer.pdf \
  https://api.pdfdispatch.com/v1/pdf/metadata/read
{
  "offer.pdf": {
    "Author": "Acme d.o.o.",
    "CreateDate": "2026:10:26 18:38:24+00:00",
    "Creator": "Mozilla/5.0 (X11; Linux x86_64) ... HeadlessChrome/156.0.0.0 Safari/537.36",
    "FileType": "PDF",
    "Keywords": ["offer", "web"],
    "MIMEType": "application/pdf",
    "ModifyDate": "2026:10:26 18:38:24+00:00",
    "PDFVersion": 1.4,
    "PageCount": 6,
    "Producer": "Skia/PDF m156",
    "Subject": "Website redesign",
    "Title": "Offer 2026-118"
  }
}

The keys depend on what is in the file (this one was made from HTML and then given its title, author, subject and keywords with the write route below). A read does not work with a webhook: there is no file to send.

Write

POST https://api.pdfdispatch.com/v1/pdf/metadata/write

FieldTypeDefaultWhat it does
files requiredfile(s)–The PDFs to change.
metadata requiredJSON object–The properties to set, for example {"Title": "Offer 2026-118", "Author": "Acme d.o.o.", "Keywords": ["offer", "2026"]}.
curl --fail-with-body \
  --header "Authorization: Bearer $PDD_KEY" \
  --form files=@offer.pdf \
  --form 'metadata={"Title": "Offer 2026-118", "Author": "Acme d.o.o.", "Subject": "Website redesign", "Keywords": ["offer", "web"]}' \
  --output offer.pdf \
  https://api.pdfdispatch.com/v1/pdf/metadata/write

Keys are tag names as ExifTool knows them. The usual ones are Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate and Trapped; XMP tags work with a group prefix, such as XMP-dc:Rights. Values are strings, numbers, booleans, or a list of strings for tags that take several. Dates are written as 2026:10:26 09:00:00+01:00.

The metadata field works on every conversion route too, so a new PDF can get its title and author straight away. The HTML, URL and Markdown routes take the title from the page’s <title> by themselves.