Skip to content
pdfconversionapi

ODT to TIFF API

Send an .odt file to POST /v2/convert/odt/to/tiff and get one uncompressed TIFF for each page. The sample asks for page 1 at 72 DPI in grayscale and gets a 612 × 792 image of 484,902 bytes with its resolution tags set to 72.

Endpoint
POST /v2/convert/odt/to/tiff
Accepts
odt
Sample timing
38 ms median of 5 runsHow we measure
Request size
Up to 10 MB on the Free plan or 100 MB on paid plans, all files together

Request and response

Every sample below ran against the API before this page was published. Set PDFCONVERSIONAPI_KEY to your key and run it as is.

curl -sS -X POST \
  https://api.pdfconversionapi.com/v2/convert/odt/to/tiff \
  -H "Authorization: Bearer $PDFCONVERSIONAPI_KEY" \
  -F File=@garden-plot-guide.odt \
  --form-string PageRange=1 \
  --form-string ImageResolution=72 \
  --form-string ColorSpace=gray \
  -o response.json

# FileData is base64. Save the first file in converted/,
# or print the JSON error.
if jq -e '.Files' response.json > /dev/null; then
  mkdir -p converted
  name=$(jq -r '.Files[0].FileName' response.json)
  jq -r '.Files[0].FileData' response.json \
    | base64 --decode > "converted/$name"
else
  cat response.json
fi
200 OK38 ms median1 file, 474 KB
{
  "ConversionCost": 1,
  "ConversionTime": 0.038,
  "Files": [
    {
      "FileName": "garden-plot-guide-1.tiff",
      "FileExt": "tiff",
      "FileSize": 484902,
      "FileData": "SUkqAHhlBwBIAAAAAQAAAEgA…"
    }
  ]
}

Response from our test run on 2026-11-03. ConversionTime shows the median of 5 runs. FileData is shortened here; the real response carries the whole file as base64.

The sample, converted

The same file the code sends. Download the input and the output and compare them yourself.

First page of garden-plot-guide-1.tiff, rendered by the API
Input
garden-plot-guide.odt (35 KB)
Output
garden-plot-guide-1.tiff (474 KB)
Source
A two-page plot holder guide for a fictional community garden, with a fee table, a plot map, lists, a footnote and a page-numbered footer. We wrote it for these pages as an OpenDocument text file. (CC0-1.0). How it was made
Made by
2026-11-04, API build 9eeeb0640aba

Parameters

Send these as form fields next to the file. Names are case-insensitive. If you set one of the documented options below that we don't support yet, the request fails with a 400 that names it instead of returning a file made without it.

ParameterWhat it does
ImageResolutioninteger, default 150How finely each page is drawn, in dots per inch. When sent, it is also stored in the XResolution and YResolution tags with inches as the unit; when left out, those tags say 1 with no unit. At 150 a Letter page is 1,275 × 1,650 pixels, at 200 it is 1,700 × 2,200.Values: 36–600
ColorSpaceenum, default defaultPixel format of the TIFF. By default each pixel is 3 bytes of RGB. gray stores 1 byte per pixel, which cut the sample's page from 1,454,338 to 484,902 bytes at 72 DPI. monochrome also uses 1 byte per pixel but only black and white values. rgb gives the same file as the default. cmyk returns 400.Values: default, rgb, gray, monochrome
PageRangestringChoose pages, for example 1 as in the sample, 2 or 1-last. Each page is a separate TIFF named with its number, unless MultiPage=true joins them.
MultiPageboolean, default falsetrue puts every page in one TIFF named after the document, garden-plot-guide.tiff, stored with lossless LZW compression: the sample's 2 pages at 72 DPI take 153,330 bytes in color and 90,654 in gray, where one uncompressed color page alone is 1,454,338. With a single page selected, as in PageRange=1, you still get the uncompressed garden-plot-guide-1.tiff.
ImageWidthintegerScale each page to this many pixels across, keeping its shape.Values: 1–20000
ImageHeightintegerScale each page to this many pixels tall, or with ImageWidth, fit it inside both.Values: 1–20000
TransparentColorstringAdds an alpha channel and makes every pixel of exactly this color transparent. white cleared 92.1% of page 1 at 72 DPI, and the uncompressed page grew from 1,454,338 to 1,939,046 bytes: 4 bytes per pixel instead of 3.Values: white, black, red, green, blue, gray, #RRGGBB or R,G,B
BackgroundColorstringFill color under each page, visible in its margins and empty areas.Values: Same as TransparentColor
FileNamestringStem of the page files: FileName=plots with PageRange=1 gives plots-1.tiff.
StoreFileboolean, default falseReturn links to the TIFFs, kept for 3 hours, instead of the data. Worth using for large pages, which make large responses.

What carries over, and what doesn't

Kept

  • The same page layout as the ODT to PDF route, one TIFF per page unless you send MultiPage=true
  • Exact pixels: a single page is stored without compression and a MultiPage=true file with lossless LZW, so nothing is lost
  • The DPI you send, in the resolution tags with the unit set to inches
  • Gray values for the colored parts when ColorSpace=gray is sent: the green table header, the red warning and the map turn into shades of gray

Lost or not yet supported

  • Small files, unless you join the pages with MultiPage=true. Single pages are uncompressed: one Letter page in color is 6,311,516 bytes at the default 150 DPI and 11,220,306 bytes at 200 DPI.
  • The page numbers in the footer, which show the stored "page 2 of 2" on page 1, and the footnote, which is not read.
  • The ODT's heading styles and table column widths: headings are drawn in dark blue Carlito instead of bold green, and the four table columns come out equal, as in the PDF.
  • True 1-bit images: monochrome keeps 8 bits per pixel with only the values 0 and 255.

Limits

  • At most 2,000 pages per request and 16,000 pixels per side or 100 million pixels per page; above those the API returns 413.
  • A password-protected ODT returns 422 without Password and 400 "password-protected ODT files can't be converted to TIFF yet" with it.
  • Requests up to 10 MB on the Free plan or 100 MB on paid plans; 120 seconds per conversion before a 504. Color TIFFs are large, so a long document at high DPI makes a large response.

Where teams use it

Loading documents into imaging and records systems

When a document management or archiving system takes page images as TIFF, send ImageResolution so each file records its DPI, and ColorSpace=gray to cut the size to a third.

Input for OCR or image processing

An uncompressed TIFF needs no image codec to read, only a TIFF parser. Render at 200 DPI or more when another tool will run text recognition on the pages, and use StoreFile=true to keep the response small.

Questions

Why are the TIFF files so large?

They are stored without compression, as 3 bytes per pixel (red, green and blue) unless you ask for gray. A Letter page at 150 DPI is 1,275 × 1,650 pixels, so 6.3 million bytes. Lower ImageResolution, send ColorSpace=gray to divide the size by three, or send MultiPage=true: the sample's two pages then come back as one LZW-compressed file of 390,518 bytes at 150 DPI.

Can I get all pages in one multi-page TIFF?

Yes. Send MultiPage=true and the response holds one file, garden-plot-guide.tiff, with a page for each page of the document; it is LZW-compressed, so the sample's two color pages at 72 DPI take 153,330 bytes. Without it, which is our default for ODT input, every page comes back as its own uncompressed file (garden-plot-guide-1.tiff, garden-plot-guide-2.tiff).

Can I make a black-and-white TIFF for fax-style archives?

ColorSpace=monochrome turns every pixel black or white, but stores it in 8-bit grayscale, uncompressed or LZW with MultiPage=true, rather than as a 1-bit CCITT image. Systems that require Group 4 TIFF need a further conversion step on your side.

Convert your first ODT file in a minute.