Skip to content
pdfconversionapi

TIFF to TIFF API

POST a TIFF to /v2/convert/tiff/to/tiff and get its first page back as a simple, uncompressed TIFF. Use it to resize, to turn the page gray or black and white, or to record a DPI; the sample does both of the last two.

Endpoint
POST /v2/convert/tiff/to/tiff
Accepts
tiff
Sample timing
2 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/tiff/to/tiff \
  -H "Authorization: Bearer $PDFCONVERSIONAPI_KEY" \
  -F File=@bin-label-c14.tiff \
  --form-string ColorSpace=gray \
  --form-string ImageResolution=200 \
  -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 OK2 ms median1 file, 117 KB
{
  "ConversionCost": 1,
  "ConversionTime": 0.002,
  "Files": [
    {
      "FileName": "bin-label-c14.tiff",
      "FileExt": "tiff",
      "FileSize": 120198,
      "FileData": "SUkqANjUAQDIAAAAAQAAAMgA…"
    }
  ]
}

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 bin-label-c14.tiff, rendered by the API
Input
bin-label-c14.tiff (42 KB)
Output
bin-label-c14.tiff (117 KB)
Source
A two-page warehouse bin label and cycle-count sheet we drew for this page, saved as an LZW-compressed TIFF at 200 dpi. (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
ColorSpaceenum, default defaultgray, as in the sample, writes one 8-bit channel (photometric min-is-black), cutting the label to 120,198 bytes. monochrome writes the same layout with only 0 and 255. A TIFF with alpha keeps it: the output stays RGBA with gray values, as a 120 × 80 RGBA test file did at 38,614 bytes. cmyk returns 400.Values: default, rgb, gray, monochrome
ImageResolutionintegerWritten into the resolution tags with the unit inch. Without it the output says 1 × 1 with no unit, whatever the input declared.Values: 10–800
ImageWidthintegerNew width; 200 gave a 200 × 150 TIFF of 90,210 bytes.Values: 1–20000
ImageHeightintegerNew height, or with ImageWidth a box the page must fit.Values: 1–20000
ScaleProportionsboolean, default truefalse resizes to the exact box even if the page gets distorted.
ScaleIfLargerboolean, default falsetrue limits resizing to pages bigger than the box.
ScaleImageboolean, default truefalse crops the box out of the top-left corner without resampling.
TransparentColorstringMakes one exact color transparent and the TIFF RGBA: the label's paper gave 51,575 transparent pixels and 480,214 bytes.Values: Color name, #RRGGBB or R,G,B
MultiPageboolean, default trueAccepted with either value. The input's first page is the only one converted, so there is nothing to combine.
ImageInterpolationboolean, default falseAccepted; scaling always uses the Lanczos filter.
FileNamestringOutput name. The result keeps the input's name, bin-label-c14.tiff, unless you set one.
StoreFileboolean, default falsetrue stores the result for 3 hours and returns Files[].Url.

Not supported yet

Setting one of these to anything but its default returns 400.

OptionWhat to do instead
ImageQualityAny value but 75, ConvertAPI's default, returns 400 'ImageQuality is not supported yet for TIFF → TIFF'. Output is never JPEG-compressed.

What carries over, and what doesn't

Kept

  • The page's pixels: a default conversion has the same RGB values as page 1, and the gray sample uses one 8-bit channel.
  • The DPI you ask for: the sample's tags read 200 × 200 pixels per inch.
  • 16 bits per sample: a 16-bit gray TIFF was written back as 16-bit gray.
  • The page size, 400 × 300.
  • The Orientation tag's effect: a 300 × 200 TIFF tagged 6 was rewritten as an upright 200 × 300 page, with no Orientation tag left to apply twice.

Lost or not yet supported

  • Every page after the first. The input had two pages; the output has one directory.
  • Compression. The output is always uncompressed: the 42,928-byte LZW input became 360,210 bytes in RGB and 120,198 in gray.
  • The input's own DPI, unless you send it again with ImageResolution.
  • CMYK, which becomes RGB, plus ICC profiles and any tags beyond the basic image description.
  • A labeled alpha channel. RGBA output has 4 samples but no ExtraSamples tag, so strict TIFF tools warn; three other readers we tried still treated it as transparency.

Limits

  • One TIFF per request, and only its first page is read.
  • Requests up to 10 MB on the Free plan or 100 MB on paid plans, all files and fields together.
  • 100,000,000 pixels per page; larger pages return 413.
  • Palette TIFFs return 422.
  • 120 seconds per conversion, then 504.

Where teams use it

Normalizing TIFFs for older readers

TIFF allows many compressions and color models. Files that arrive as JPEG-in-TIFF, Group 4 fax, Deflate or CMYK can be rewritten as plain uncompressed RGB or gray that minimal TIFF readers handle.

Gray archive copies at a stated DPI

A scan of a text page doesn't need three color channels. ColorSpace=gray with ImageResolution gives a one-channel TIFF that says how large it should print, as in the sample.

Resizing without changing format

Make smaller TIFF copies for a viewer or a thumbnail column while the pipeline downstream keeps reading TIFF.

Questions

Can I compress the output with LZW, Deflate or JPEG?

No. Output TIFFs are always uncompressed, and ImageQuality other than 75 returns 400. For a smaller lossless copy, convert to PNG or WebP instead: the label was 31,866 bytes as PNG and 20,700 as WebP.

Does this merge or keep all pages?

No. Only the first page is read, and MultiPage has nothing to combine. The two-page sample came back as a one-page TIFF.

Why does my output say 1 dpi?

Without ImageResolution, the resolution tags are written as 1 × 1 with no unit. Send the value you want, such as 200 or 300, and the unit is set to inches.

Does the output keep 16-bit data?

Yes for the depth we tested: a 16-bit grayscale TIFF came back 16-bit. Gray and RGB pages keep their channel count unless you change ColorSpace.

Convert your first TIFF file in a minute.