Changelog
2026-11-04
Fixed
Document properties in cut and split PDFs
- Office, Visio and Apple files converted to PDF with
PageRangenow namePDF Conversion APIas theProducer, as conversions of the whole file do, and no longer carry the office suite'sCreator. The document's title, author and other properties stay. pdf/to/split,pdf/to/extractandpdf/to/delete-pageskeep the document information of the PDF you send: title, author, subject, keywords, creator, producer, dates and any entries of your own, as they were. Each output is a little larger for it.pdf/to/mergestill writes no document information.
Fixed
PNG compression keeps the profile, DPI and frames
png/to/compresswithoutImageWidthorImageHeight, on a PNG with an EXIF orientation, compresses the pixels as they are again. The color profile, the DPI and every frame of an animated PNG stay. The EXIF data keeps only the orientation, so viewers still show the image upright; other EXIF entries are left out, as on every compressed PNG. A 306 × 396 PNG with orientation 6 comes back as 306 × 396 pixels with orientation 6.- With
ImageWidthorImageHeight, the image is still turned upright before it is resized, and comes back without EXIF data.
Fixed
Compression checks the input format
png/to/compresschecks that the file is a PNG before anything else, also when you sendImageWidthorImageHeight. A JPEG sent withImageWidth=100gets 422the input file could not be read: it is not a PNG imageinstead of a compressed file. Without a size, the message used to endit is not a PNG file.jpg/to/compresssent a PNG always returns a JPEG. When the JPEG came out larger than the PNG, it used to return the PNG unchanged under a.jpgname.
Fixed
Sharper page edges
- Pages rendered to JPG, PNG, TIFF and WebP, from PDFs and from other documents, are drawn at their exact scale again. An edge pixel that the page covers at least halfway counts as part of the page, and
BackgroundColorgoes under it. WithBackgroundColor=black, a white page keeps white edges, also at 300 DPI, and shapes that line up with whole pixels at 72 DPI meet without a blended column between them. - A background or shape that stops less than 0.1 point inside the page edge, as slide backgrounds in some presentations do, is drawn to the edge, so a dark slide has no light line along its right and bottom edges.
- Image sizes don't change, but every page image differs a little from before. The first page of our PDF to JPG sample at 72 DPI went from 64,803 to 65,272 bytes.
Changed
Page images without an alpha channel
- Pages rendered to PNG, TIFF and WebP from PDFs, Illustrator files and office documents, such as Word, Excel and PowerPoint files, are RGB images without an alpha channel, so the files are smaller. The first page of our PDF to PNG sample went from 183,845 to 168,876 bytes.
TransparentColorstill adds an alpha channel, and withColorSpace=grayit gives a gray PNG with alpha. - Any image without transparency written as WebP is RGB too. The file keeps its size, but it no longer says it has an alpha channel.
Changed
Passwords on PDF tools
- A PDF that opens without a password, sent with a
Passwordthat isn't its owner password, is now converted as if no password was sent, on every PDF tool. For a PDF with restrictions,pdf/to/compressconverts it, PDF to DOCX, PPTX, HTML, RTF and Markdown andpdf/to/extract-imagesanswer 422this PDF's permissions don't allow copying text and images; ...,pdf/to/cropanswers 422this PDF's permissions don't allow page changes; send the owner password in Password, or remove the restrictions with /v2/convert/pdf/to/unprotect and the owner password, andpdf/to/protectanswers 422this PDF's permissions don't allow changing security; ....pdf/to/metadescribes the file, withopened_as_ownerset tofalse. Several of these used to answer 422the input file is password-protected. - A PDF that has only an owner password and restricts nothing, such as one made by
pdf/to/protectwithAllowEverything=trueand noUserPassword, comes back without encryption from every PDF tool that writes a PDF, with its owner password, another password or none, andpdf/to/pdfaconverts it. WithoutPassword, tools such aspdf/to/compress,pdf/to/cropandpdf/to/repairused to return it still encrypted. - The open password of a PDF that restricts nothing, such as one made by
pdf/to/protectwithAllowEverything=true, now opens it on the PDF tools that write a new PDF, and the PDF comes back without a password.pdf/to/pdfaconverts such a PDF instead of answering 422, and PDF to DOCX, PPTX, HTML, RTF and Markdown takePageRangewith its open password. pdf/to/protectopens a protected PDF as the other tools do. With the owner password, or the open password of a PDF that restricts nothing, it protects the opened copy with the passwords you send. A PDF that has only an owner password and restricts nothing needs noPassword; it used to get 422this PDF's permissions don't allow changing security; ....pdf/to/unprotectreturns a PDF that has only an owner password and restricts nothing without encryption, with or withoutPassword. A PDF with restrictions sent with a wrong password gets 422removing this PDF's protection needs the owner password; send the owner password in Passwordinstead ofthe input file is password-protected. A PDF with no password and no restrictions gets 422this PDF isn't protected: it has no password or restriction to remove, where the message used to say the file could not be read.
Changed
ColorSpace=TrueColors is accepted
ColorSpace=TrueColorson conversions whose own default isdefault, such as SVG to SVG and PSD, BMP and GIF to PDF, gives the same file as leavingColorSpaceout. It used to get 400ColorSpace is not supported yet for .... Other values are still refused there.- Office documents converted to PDF and images accept it too, as they accept
ColorSpace=Default. PUB to PDF withColorSpace=TrueColorsgives the same file as without it, where it used to get 400ColorSpace is not supported yet for PUB files.
Changed
Message wording
- Messages write the format as WebP, for example
ImageQuality is not supported yet for PPT → WebP. - Numbers in messages have thousands separators, in ranges such as
ImageWidth must be between 1 and 20,000andOffsetY must be between -100,000 and 100,000, and in limits such asthe CSV has more than 1,048,576 rows,the archive has more than 10,000 entriesandrendering is limited to 2,000 pages per request. - The hint at the end of a size limit names only what you sent.
the image is 20,000×10,000 pixels, above the limit of 100,000,000 pixels; lower ImageWidth or ImageHeightends with the hint only when you sentImageWidthorImageHeightand the conversion applied it. A page too large to draw getspage 3 is too large to draw at 16,666×8,333 pixels; lower ImageResolutionwhen the resolution set its size, and ends with; lower ImageWidth or ImageHeightwhen those did. It used to name all three options.pdf/to/rasterizenames its own option:page 1 is too large to draw at 16,666×16,666 pixels; lower Resolution. - Tracing an image of more than 12,000,000 pixels to SVG gets 413
vectorizing is limited to 12,000,000 pixels, and this image is 4,000×3,001; set ImageWidth or ImageHeight to scale it down, or...; lower ImageWidth or ImageHeightwhen the size you sent is still too large. It used to name onlyImageWidth. - An XCF image whose canvas is larger than 67,108,864 pixels gets 413
XCF images can be at most 67,108,864 pixels, and this one's canvas is larger, and one wider or taller than 300,000 pixels gets 413XCF images can be at most 300,000 pixels on a side, and this one is 300,001×100. Both used to get a 422. - Messages about a PDF tool or
file/to/zipname its path, for exampleAutoRotate is not supported yet for pdf/to/rotate,Password is not supported yet for file/to/zipandPageRange can't be combined with the open password yet for pdf/to/text-watermark; .... They used to writeFILE → ZIPandPDF → ROTATE. Conversions from one format to another still readPDF → DOCX. - More files we can't read get a plain reason after
the input file could not be read:, for exampleit is not a TGA image, or one whose color type can't be read,the image is cut short: its data ends before its last pixel,PFM (floating-point) images can't be read yet,not a Word document,this is not an EPUBandDWG: the file is cut short or damaged. - A file that isn't in the format its path names says so:
it is not a PNG image,it is not a JPG image,it is not an XCF file,it is not a DWG file,this is not a MOBI book, orit could not be opened as NUMBERSfor Apple Numbers. A file we can't read yet says what stops it, for exampleTIFF images with a color palette can't be read yet,ICO images whose pictures are PNGs without an alpha channel can't be read yetorit is an AVIF image, and AVIF images can't be read yet. These used to quote the decoders' own wording. - PPTX to PDF and PPTX to PPTX, sent a file that isn't a PPTX presentation, such as a renamed PPT file, get 422
the input file could not be read: it is not a PPTX presentation, or one that can't be read. The message used to name our temporary file.
2026-11-03
New
Password opens protected files on more conversions
- A protected DOCX, XLSX or PPTX file opens with
Passwordin conversions that take one file, for example DOCX to PDF, DOCX to PNG and XLSX to CSV. - A PDF that needs a password to open opens with
Passwordin PDF to image conversions and the PDF tools. Illustrator (.ai) conversions takePasswordthe same way. pdf/to/mergeopens every protected file it gets with the onePasswordyou send. When a file doesn't open, the 422 names it by position and file name:file 2 (locked.pdf) is password-protected; send its password in Password, orfile 2 (locked.pdf) is password-protected, and Password does not open it. Restriction, signature and read errors on one file start the same way, for examplefile 1 (a.pdf): this PDF has permission restrictions; ....- A protected XLS file opens on XLS to PDF, XLSX and images. Protected DOC and ODT files, and XLS files on other conversions, get a 400 that says so, for example
password-protected DOC files can't be converted to PDF yet. - A missing or wrong password gets 422
the input file is password-protected. A PDF opened with its user password keeps its owner's restrictions. file/to/zipwithPasswordgets 400Password is not supported yet for FILE → ZIP, with one file or several. It doesn't encrypt archives yet. Since 2026-11-04, the message names the path:Password is not supported yet for file/to/zip.
Changed
The owner password lifts a PDF's restrictions
pdf/to/merge,pdf/to/split,pdf/to/extract,pdf/to/delete-pages,pdf/to/rotate,pdf/to/resize,pdf/to/rasterizeandpdf/to/txtnow convert a PDF that has permission restrictions when you send its owner password inPassword. Without it, or with a wrong one, they still answer 422, and the message now says what to send:this PDF has permission restrictions; send the owner password in Password, or remove them with /v2/convert/pdf/to/unprotect and the owner password. Onpdf/to/txtit startsthis PDF's permissions don't allow copying its text; send the owner password in Password.- The owner password also opens a protected PDF on
pdf/to/compress,pdf/to/ocr, the watermark tools,pdf/to/crop,pdf/to/flatten,pdf/to/pdfa,pdf/to/repair,pdf/to/pdf,pdf/to/extract-imagesand PDF to DOCX, PPTX, HTML, RTF and Markdown. The PDF that comes back has no password and no restrictions. With the open password, these work as before. - PDF to DOCX, PPTX, HTML, RTF and Markdown take
PageRangetogether with the owner password. With the open password,PageRangegets 400PageRange can't be combined with the open password yet for PDF → HTML; send the owner password in Password, or remove the protection with /v2/convert/pdf/to/unprotect first. Since 2026-11-04, the open password of a PDF that restricts nothing works withPageRangetoo. A PDF whose permissions don't allow copying, sent without its owner password, gets 422this PDF's permissions don't allow copying text and images; send the owner password in Password, or ...with or withoutPageRange. WithPageRangeandPasswordthis used to be a 400. pdf/to/unprotecttakes the open password of a PDF made withAllowEverything=trueand returns it unencrypted. A PDF with restrictions still needs its owner password:removing this PDF's protection needs the owner password; send the owner password in Password.- Permissions are read the way the PDF specification defines them: allowing changes includes assembling pages, allowing comments includes filling in forms, and allowing copying includes copying for accessibility. A PDF made by
pdf/to/protectwithAllowEverything=truecan now be split, rotated and merged with its open password.
New
file/to/pdf, file/to/md and office/to/pdf
- These paths take the format from the uploaded file's name, so
report.docxsent tofile/to/pdfconverts as it would ondocx/to/pdf. Options are checked as on that path. - An upload whose name doesn't end in a format gets a 400. A format with no such conversion gets that conversion's 404, for example
conversion from ps to pdf is not supported. office/to/pdftakes Word, Excel and PowerPoint files and templates, and WPD, RTF, LOG and CSV files. Other formats get a 400 that names the path to use.- The three paths are not listed in
GET /v2/info.
New
Apple Pages and Numbers, OpenDocument charts, slides to Markdown
- Apple Pages to PDF, DOCX, JPG, PNG, TIFF and WebP.
- Apple Numbers to PDF, JPG, PNG, TIFF and WebP.
- OpenDocument charts (
odc) to PDF, JPG, PNG, TIFF and WebP. - PPT, PPS, PPSX, POTX and ODP to Markdown, from the slide outline, as PPTX to Markdown does.
That brings the total to 556 conversions. Keynote files are still not supported.
New
Sheet, page and slide options
- Spreadsheets to PDF and images:
WorksheetIndex,WorksheetName,ActiveWorksheetOnly,ClearPrintArea,HeaderOnEachPage,PageSize,PageOrientation,ScaleandFitToPage. ActiveWorksheetOnlyon XLSX and XLS to CSV and Markdown, and on XLSB to CSV.Pdfa=truewithPdfaVersionon XLSX, XLS and CSV to PDF:PdfaVersionsets the PDF/A level. It used to get a 400.- Images to PDF, DOCX and PPTX:
Rotateturns each image, and without it a photo follows its EXIF orientation.MarginHorizontalandMarginVerticalset the margins. ConvertHiddenSlideson presentations. PPTX to TXT and Markdown now leave hidden slides out by default, as ConvertAPI does; sendConvertHiddenSlides=trueto include them.
New
Size and color options on images
- Pages rendered to JPG, PNG, TIFF or WebP, from PDFs and from Word, Excel, PowerPoint and other documents, apply
ImageWidthandImageHeight, withScaleProportions,ScaleIfLargerandScaleImage. A Letter page withImageWidth=300gives an image of 300 × 388 pixels. The side you leave out is worked out from the page's exact size, at anyImageResolution: a 16:9 slide of 720 × 405 points gives 1920 × 1080 pixels withImageWidth=1920, and 960 × 540 withImageHeight=540. ColorSpacetakesrgb,grayandmonochromeon image output, andcmykgets a 400. Withrgb, PNG and TIFF output leave out an alpha channel that no pixel uses. Since 2026-11-04, pages rendered from PDFs and office documents have no alpha channel without it too, unless you sendTransparentColor.ImageResolutionon image to image conversions is written into JPEG, PNG, TIFF and BMP files as their DPI. The pixels are not resampled.ImageInterpolationis accepted. It doesn't change the output.
Fixed
Errors that were 500s
- An image larger than its output format allows gets a 413 that states the limit, for example
WebP images can be at most 16384 pixels on a side, and this one is 20000×1000; lower ImageWidth or ImageHeight. The part after the semicolon appears only when you sentImageWidthorImageHeightand the conversion applies it. JPEG allows 65,500 pixels a side, the most that common JPEG decoders read, and GIF and TGA allow 65,535. Since 2026-11-04, the numbers in these messages have thousands separators:16,384and20,000×1,000. ColorSpace=grayormonochromeon an image with transparency, converted to TIFF, gives an RGBA TIFF with gray values.png/to/compresswithoutImageWidthorImageHeight, sent an image in another format such as a JPEG, gets 422the input file could not be read: it is not a PNG file. Since 2026-11-04, it getsit is not a PNG imageafter the colon, with or withoutImageWidthorImageHeight.- A Data Matrix code with too much data gets 400
this data is too long for a datamatrix barcode. Other data a barcode type can't hold gets a 400 without the name of an internal error in it, for examplethis data cannot be a code128 barcode: Contents length should be between 1 and 80 characters, but got 100. - Tracing an image to SVG with
GradientStep=0, on an image that can't be traced that way, gets 422this image could not be traced with GradientStep=0; use 1 or more.
Fixed
Image output
- Page images: when a page's size at the chosen DPI is a whole number of pixels, the image has that size. A Letter page at 150 DPI is now 1275 × 1650 pixels, one pixel taller than before.
- Image to image conversions, tracing to SVG,
jpg/to/compresswithImageWidth,png/to/compressandimages/to/jointurn a photo upright by its EXIF orientation, as images to PDF already did. A 306 × 396 PNG with orientation 6 came back frompng/to/compressas 396 × 306 pixels, without the orientation tag. Since 2026-11-04,png/to/compressturns the pixels only when you sendImageWidthorImageHeight, and otherwise keeps them and the orientation as they are. ColorSpace=monochromegives only black and white pixels in PNM and ICO output, also where transparency was flattened.- PNM output is binary PPM (P6), or PGM (P5) with
ColorSpace=grayormonochrome. It used to be PAM (P7). - TGA output is uncompressed.
- An opaque image converted to BMP is a 24-bit BMP with the common 40-byte header. A BMP with transparency stays 32-bit and now opens on macOS.
- Multi-page TIFFs keep gray pages gray.
MultiPage=truemakes one multi-page TIFF from OpenDocument, RTF, TXT, CSV, WordPerfect, XLSB, DOT and XLTX files too; without it they still give one TIFF per page.
Fixed
Spreadsheets
ScaleandFitToPageon a sheet without its own page setup keep the A4 page instead of switching to Letter.ActiveWorksheetOnly=trueonxlsb/to/csvconverts instead of getting a 400.- On spreadsheet to CSV, JSON and Markdown conversions, XLSB included, a
WorksheetIndexpast the last sheet says how many sheets the workbook has:WorksheetIndex is 9, but the workbook has 3 worksheets, or1 worksheetfor a one-sheet workbook. A value above 2000 getsWorksheetIndex must be between 1 and 2000. Since 2026-11-04, it readsWorksheetIndex must be between 1 and 2,000.
Changed
File metadata and messages
- SVG files traced from images no longer start with a comment that names the tracing program.
- PDFs made from images and SVG files, and
pdf/to/rasterizeoutput, no longer name the program that wrote their XMP metadata. zip/to/extract,email/to/extractandpdf/to/extract-attachmentsreturn each file byte for byte as it was stored. They no longer replace the program name in the metadata of the PDFs and office files they unpack.- Word 2003 XML files (DOCX, DOC and ODT to XML) no longer have an
Editorproperty. - DOCX and PPTX files no longer get the title "input", the name of our temporary file. JPG and PNG to DOCX and PPTX, for example, now have no title.
pdf/to/htmlgives the page the PDF's own title, also withPageRange. A PDF without a title gets the uploaded file's name without its extension, sospring-flyer.pdfgives<title>spring-flyer</title>, or theFileNameyou send:FileName=may-flyergives<title>may-flyer</title>. Both used to be "input".png/to/qrdataandjpg/to/qrdataon an image without a QR code answer 422no readable QR code was found in the image, withoutthe input file could not be read:in front.zip/to/extracton a file that isn't a ZIP archive answers 422the input file could not be read: it is not a ZIP archive, without the decoder's own wording. An archive with encrypted files sent withPasswordgets 400password-protected ZIP archives can't be opened yet; withoutPasswordit still gets 422the input file is password-protected.
2026-11-02
New
Free API keys, self-serve
Anyone can get a free API key by signing in with Google or GitHub at app.pdfconversionapi.com. We keep only your verified email address and your account id at Google or GitHub. Each verified email address has one account.
- The key is shown once. We store only its SHA-256 hash and its last four characters.
- "Replace the key" makes a new key and revokes the old one, which stops working within about a minute.
- Deleting your account, on the same page, deletes the key, and it stops working within about a minute.
GET /v2/usagereturns your plan, the conversions included, used and remaining, and the period they count for.
The Free plan allows 250 conversions a month, files up to 10 MB and 1 conversion at a time. Billing is not open yet, so the Free plan is the only one you can start yourself. For higher limits before billing opens, write to sales@pdfconversionapi.com.
Changed
Plan limits are enforced
The gateway now applies each plan's limits to conversion requests:
- Conversions a month. The count runs for a calendar month in UTC, and failed requests don't count. On the Free plan, requests stop at the limit with a 429 that says this month's conversions on the Free plan are used up and gives the date the count starts again.
- Upload size. A request larger than the plan's upload limit, all files together, gets a 413 that names the limit.
- Conversions at once. A conversion sent while all of the plan's conversions at once are running gets a 429 that says how many the plan runs at a time. The limit of 600 requests a minute per account still applies and also answers 429.
- Paused plans. If we pause conversions on a plan to stop abuse, its requests get a 503 that asks you to try again later.
Changed
Converted files carry the API's name in their metadata
Where the software that made a file used to write its own name, files now say PDF Conversion API:
- PDFs made from other formats: the
Producerfield and the matching XMP entry. ACreatorfield that named that software is left out. - Word, Excel, PowerPoint and OpenDocument files: the application name in the document properties. A "last modified by" entry that named the software is left out.
- HTML and RTF files: a generator tag that named the software is left out.
When the input is a PDF, as in pdf/to/compress, we don't replace its own Producer and Creator. Titles, authors and the rest of the document's own properties are not changed. Error messages that used to quote the name of the program that failed now say "the engine".
Breaking change
PDF tools refuse restricted and signed PDFs
pdf/to/merge, pdf/to/split, pdf/to/extract, pdf/to/delete-pages, pdf/to/rotate, pdf/to/resize and pdf/to/rasterize now answer 422 instead of returning a file when:
- the PDF has permission restrictions:
this PDF has permission restrictions; remove them with /v2/convert/pdf/to/unprotect and the owner password first - the PDF is digitally signed:
this PDF is digitally signed, and rewriting it would invalidate the signature
pdf/to/txt answers 422 when the PDF's permissions don't allow copying its text. Rendering pages as images with pdf/to/png, pdf/to/jpg, pdf/to/tiff, pdf/to/webp and pdf/to/svg still works on restricted and signed PDFs.
On pdf/to/docx, pdf/to/pptx, pdf/to/html, pdf/to/rtf and pdf/to/md, sending PageRange with Password gets a 400 when the PDF's permissions don't allow copying. Remove the restrictions with pdf/to/unprotect first.
Changed
PageRange takes last, and refuses pages past the end
PageRangeacceptslast, as in1-last, orlaston its own. Open ranges such as2-still run to the last page.- A page on its own, or the first page of a range, that lies past the end of the document gets a 400, for example
PageRange asks for page 3, but the document has 2 pages. The end of a range can still go past the last page and stops there, so ConvertAPI's default1-2000works on any document.
Changed
PDF tool errors give the reason
When a PDF's permissions block one of the conversions listed under PDF tools and OCR, the 422 names the permission that is missing. On pdf/to/text-watermark, for example: this PDF's permissions don't allow changes to the document; send the owner password in Password, or remove the restrictions with /v2/convert/pdf/to/unprotect and the owner password. These messages no longer start with the name of an internal processing step, and those that aren't about reading the file no longer start with the input file could not be read:.
On pdf/to/protect, a password that the PDF engine refuses gets a 400 that names UserPassword and OwnerPassword, for example UserPassword and OwnerPassword must be different (PDF readers treat the two as the same password). Every permission option is now read, so sending several together, such as PrintDocument and PrintFaithfulCopy, no longer gets a 400 for the one the other covers.
Fixed
Word to image applies field and markup options
DOCX, DOC, ODT and RTF to PNG, JPG, TIFF and WebP now apply UpdateFields, UpdateTableOfContents, UpdateReferences and IncludeMarkup, as Word to PDF does.
New
Page options on Markdown to PDF
md/to/pdf now applies PageSize, PageOrientation, MarginTop, MarginRight, MarginBottom, MarginLeft and FontName.
PageSize: A3 to A9, B3 to B5, Letter, Legal and Ledger. A0 to A2 and B0 to B2 get a 400.FontName:arial,calibri,cambria,timesNewRomanorcourierNew. The server doesn't have those fonts, so each is drawn with an installed font that has the same character widths: Liberation Sans, Carlito, Caladea, Liberation Serif and Liberation Mono. Any other font name gets a 400.- YAML front matter and footnotes come out as plain text.
Changed
PDF/A validation checks the level the file claims
pdfa/to/validate with ExpectedConformance=auto, or without ExpectedConformance, checks the file against the PDF/A level that its XMP metadata claims. A file that claims no level gets "compliant": false and "level": null. A file that claims PDF/A-1a, 1b, 2a, 2u, 3a, 3u or 4 gets a 422, because only 2b and 3b can be validated yet; send ExpectedConformance=pdfA2b or pdfA3b to check it against one of those.
Fixed
Page limit for HTML that needs a browser
HTML to PDF for pages that need a browser now has the same 2,000-page limit as HTML laid out without one. A page that prints to more pages gets a 413, for example the document lays out to 2010 pages; the limit is 2000.
Fixed
EPUB books with accented text
EPUB to PDF and EPUB to images now convert books whose text isn't plain ASCII, for example books with accented letters.
Fixed
Outlook MSG bodies and errors
- An HTML body that Outlook stores as binary data (the
PR_HTMLproperty) is now read. Its character set comes from the HTML'smetatag. Without one, the body is read as UTF-8 when it is valid UTF-8, and as Windows-1252 otherwise. The message's code page property (PR_INTERNET_CPID) isn't read yet. - When a message's only body is RTF, the HTML that Outlook wrapped in it (marked
\fromhtml1) is used. Other RTF bodies give their text. - Files we can't read get a 422 that says why, after
the input file could not be read:. An Office file that isn't a message getsthis is not an Outlook message, a damaged file getsthe Outlook message is damaged, and a message saved with 4096-byte sectors getsOutlook messages saved with 4096-byte sectors are not supported yet. - Still a limit: older MSG files can store text in an 8-bit code page. A subject or body stored that way is dropped when its bytes aren't valid UTF-8, so accented text in such a file can go missing.
Fixed
Plain-text email bodies
An EML message whose body is plain text is shown as written: < and & stay as typed, and line breaks and spaces are kept. email/to/metadata reports has_html_body as false for it.
Changed
Error messages and options
- Messages quote values as you sent them, for example
IncludeMarkup must be true or false, not 'Maybe', and use US spelling ("color", "recognized"). - A color the API can't read gets a 400 that lists the accepted forms:
'teal-ish' is not a color (use white, black, red, green, blue, gray, #RRGGBB or R,G,B). images/to/pdfnames the image it couldn't read, by position and file name, for exampleimage 3 (scan.png) could not be read: ....- On spreadsheet to CSV, JSON and Markdown conversions, sending both
WorksheetNameandWorksheetIndexgets a 400:send WorksheetName or WorksheetIndex, not both. ScaleImage,ScaleProportionsandScaleIfLargersent withoutImageWidthorImageHeightare accepted and change nothing.
2026-11-01
New
A cleanup job deletes expired stored files
With StoreFile=true, the download link still works for 3 hours. A cleanup job now runs every 15 minutes and deletes stored files whose links have expired. A storage rule that removes any stored file older than 1 day stays as a backstop.
Changed
Stored files stay in the US
Results stored with StoreFile=true are kept in our cloud provider's object storage, in its US jurisdiction. The subprocessor list names the provider.
Changed
ConvertAPI default values are accepted
These values, which ConvertAPI documents as defaults, are now accepted: PageOrientation=default on image to PDF conversions, Preset=none on image to SVG, CompressionLevel=Extreme on png/to/compress and CompressionLevel=Medium on file/to/zip.
New
BackgroundColor on PDF to image conversions
When PDF pages become images with pdf/to/png, pdf/to/jpg or pdf/to/tiff, BackgroundColor is painted behind each page and shows wherever the page has no background of its own. DWG and DXF to image conversions refuse it with a 400 that names it.
Changed
PageRange and Password on PDF conversions
On PDF to DOCX, PPTX, HTML, RTF and Markdown, and on the PDF watermark, crop, image extraction and OCR tools, PageRange works together with Password when the PDF opens without a password and only restricts what you can do with it. If the PDF needs a password to open, sending both gets a 400 that asks you to remove the password first with pdf/to/unprotect. Since 2026-11-02, sending both to PDF to DOCX, PPTX, HTML, RTF or Markdown also gets a 400 when the PDF's permissions don't allow copying.
Changed
Error messages use documented parameter names
Messages name a parameter the way the documentation writes it, for example UpdateTableOfContents must be true or false, not 'maybe'.
Fixed
Clearer answer for copy-restricted PDFs
A PDF that opens without a password but restricts copying no longer gets the 422 the input file is password-protected. Where a conversion would copy the PDF's content, for example on pdf/to/docx, the 422 now says so: this PDF's permissions don't allow copying text and images, followed by what to do. Sending the owner password as Password lifts the restriction.
New
Office re-saves, Office passwords, JPEG XL, MOBI and more
New conversions:
- Re-saving Word, PowerPoint and Excel files:
docx/to/docx,pptx/to/pptx,xlsx/to/xlsxandxls/to/xls. pdf/to/pdf, which sets document properties and how the PDF opens (first page and zoom).- Password protection for Word, PowerPoint and Excel files:
docx/to/protect,pptx/to/protectandxlsx/to/protect, with Office's AES-256 encryption. log/to/txt,pdf/to/extract-attachmentsandsvg/to/svg.- JPEG XL output:
jpg/to/jxlandheic/to/jxl. - MOBI e-books to PDF, JPG, PNG, TIFF and WebP.
mhtml/to/docx, which turns a saved web page into a Word file with its pictures and style sheets.
That brings the total to 535 conversions. 272 of the 328 endpoints ConvertAPI documents work here with the same {from}/to/{to} path and do the same job.
New
The gateway
The API runs behind a gateway on our cloud provider's network:
- Keys are checked against SHA-256 hashes kept in the provider's key-value store, and are accepted only in the
Authorization: Bearerheader. - Each account can send 600 conversion requests a minute. Above that the API answers 429 with
Retry-After: 10. - Conversions run in three container pools, each with a different set of converters. HTML that needs a browser is passed to the browser pool automatically.
StoreFile=trueresults are stored in the provider's object storage behind links that expire after 3 hours. Only the account that created a file can delete it early, withDELETE /v2/d/{FileId}.- Every response has an
x-request-idheader.
New
Apple Numbers and Pages, and ODF formulas
numbers/to/xlsx: one worksheet per table. Numbers, dates, durations, true or false values and text keep their types.numbers/to/csv: one CSV file per table.pages/to/txt: the document's text.- ODF formula files (
odf) to PDF, JPG, PNG, TIFF and WebP.
Keynote files are not supported.
Breaking change
Options are refused instead of ignored
If a request sets one of the options ConvertAPI documents for a conversion to a value other than its default, and our converter doesn't handle that option, the API answers 400 and names it. Options ConvertAPI doesn't document for a conversion are ignored.
Options added in the same change:
ScaleImage=falsecrops toImageWidthandImageHeightinstead of scaling.MultiPage: several pages of TIFF output go into one multi-page TIFF, which is ConvertAPI's default.TransparentColor, andAlphaColorwith#RRGGBBAAcolors.UpdateReferenceson Word conversions.- Image to SVG tracing:
ColorMode,Layering,GradientStep,CurveMode,SegmentLengthandSpliceThreshold.
New
Email, EPUB, DICOM, barcodes and more
New conversions:
- PDF to SVG,
pdf/to/rasterize, andpdf/to/resizeto a paper size. - Adobe Illustrator files (
.ai, saved with PDF compatibility) to JPG, PNG, PNM, SVG, TIFF and WebP. - SVG to PDF as vectors, and
images/to/join. - DICOM medical images to JPG, PNG and PDF, one image or page per frame. DICOM files compressed with JPEG 2000 or JPEG-LS are not supported yet.
- Barcodes: create Code 128, Code 39, EAN, UPC, ITF-14, Data Matrix, PDF417, Aztec and QR codes, and read them from images and PDFs with
barcode/to/dataandqrcode/to/data. - XLSX and XLS to Markdown tables.
- EML and Outlook MSG: metadata (
email/to/metadata), attachments (email/to/extract), and conversion to PDF and images with inline pictures embedded. - EPUB to PDF and images. Books with DRM are refused.
- Text from JPG, PNG and TIFF images with OCR (English), and JPG and PNG to DOCX and PPTX.
- TXT to images, and LOG to PDF and DOCX.
- PPTX to TXT and Markdown, from the slide outline.
- HTML tables to XLSX and XLS; DOCX, DOC and ODT to Word 2003 XML, and Word 2003 XML to DOCX.
QR codes now default to SVG at 600 px, as in ConvertAPI.
New
HTML, office and photo formats
- HTML to PDF, JPG and PNG. Most pages are laid out without a browser. Pages that need one, for example because they run scripts or use
UserJsorWaitElement, are rendered in a headless browser. Neither path loads anything from the network. - HTML to PDF lays the page out for the paper size by default. Send
RespectViewport=truefor ConvertAPI's viewport layout. - XLSX, XLS, XLSB, XLTX, ODS, CSV, PPT, PPS, PPSX, POTX, ODP, VSD, VSDX, PUB, ODG, DOTX, DOT and WPD convert to PDF (including PDF/A-1b, 2b and 3b) and to images, XLS converts to XLSX, and older PowerPoint formats convert to PPTX. Each run of the office engine gets a new profile with macros turned off.
- HEIC, HEIF, PSD, PSB, XCF, KRA, ORA, PDN, EXR and HDR images can be read.
- When a conversion reaches its time limit, the engine is stopped together with every helper process it started.
New
PDF tools and OCR
New PDF tools and conversions: compress, protect, unprotect, text, image and PDF watermarks, crop, metadata, flatten, PDF/A-2b and 3b with validation, repair, image extraction, OCR (English), and PDF to DOCX, PPTX, HTML, RTF and Markdown. A second file a tool needs, such as ImageFile for an image watermark or OverlayFile for a PDF watermark, goes in a form field of that name. Options they can't honor are refused with a 400, and their error messages reach you without server paths.
New
First build
POST /v2/convert/{from}/to/{to}withmultipart/form-data, and ConvertAPI-style JSON responses withConversionCost,ConversionTimeandFiles.- Converters for images, PDF tools and page rendering, spreadsheets, Markdown and HTML, QR codes and ZIP archives.
- Conversions for Word, PowerPoint and CAD files.
StoreFile=truereturns a download link instead of the file.- Limits on upload size, image size in pixels and page count.