Skip to content
pdfconversionapi

ODP to JPG API

POST /v2/convert/odp/to/jpg returns a JPEG of every visible slide in an OpenDocument presentation. At ImageResolution=120 with ConvertAPI's default quality of 75, our composting workshop gave four 1,322 × 744 images of 58,884 to 84,652 bytes.

Endpoint
POST /v2/convert/odp/to/jpg
Accepts
odp
Sample timing
0.858 s 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/odp/to/jpg \
  -H "Authorization: Bearer $PDFCONVERSIONAPI_KEY" \
  -F File=@compost-workshop.odp \
  --form-string ImageResolution=120 \
  --form-string ImageQuality=75 \
  -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 OK0.858 s median4 files, 279 KB
{
  "ConversionCost": 1,
  "ConversionTime": 0.858,
  "Files": [
    {
      "FileName": "compost-workshop-1.jpg",
      "FileExt": "jpg",
      "FileSize": 60764,
      "FileData": "/9j/4AAQSkZJRgABAgEAeAB4…"
    },
    {
      "FileName": "compost-workshop-2.jpg",
      "FileExt": "jpg",
      "FileSize": 84652,
      "FileData": "/9j/4AAQSkZJRgABAgEAeAB4…"
    },
    {
      "FileName": "compost-workshop-3.jpg",
      "FileExt": "jpg",
      "FileSize": 58884,
      "FileData": "/9j/4AAQSkZJRgABAgEAeAB4…"
    },
    … 1 more files
  ]
}

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 compost-workshop-1.jpg, rendered by the API
Input
compost-workshop.odp (40 KB)
Output
compost-workshop-1.jpg (59 KB)compost-workshop-2.jpg (83 KB)compost-workshop-3.jpg (58 KB)compost-workshop-4.jpg (80 KB)
Source
Five OpenDocument slides for a composting workshop at a fictional community garden, with a table, a diagram drawn from shapes and one hidden slide. We made them for this page. (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 150Pixels per inch of slide. The 28 cm (11.02-inch) wide slides are 1,653 × 930 at 150 and 1,322 × 744 at 120; a value you send is stored in the JPEG.Values: 36–600
ImageQualityinteger, default 85JPEG quality. ConvertAPI documents 75 as its default for ODP, which is what the sample sends; ours is 85. The title slide at 150 DPI is 97,508 bytes at 85 and 74,910 at 60.Values: 1–100
ImageWidthintegerExact width; the height keeps the 16:9 shape.Values: 1–20,000
ImageHeightintegerExact height; the width keeps the shape.Values: 1–20,000
PageRangestringWhich visible slides: 2 is the greens-and-browns table.Values: e.g. 2, 3-4
ConvertHiddenSlidesboolean, default falseAlso render the hidden facilitator checklist, as image 4 of 5.
ColorSpaceenum, default defaultgray for one-channel JPEGs.Values: default, rgb, gray, monochrome
PasswordstringFor a password-protected .odp; 422 without it.
FileNamestringStem of the image names, followed by -1.jpg to -4.jpg.

Not supported yet

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

OptionWhat to do instead
ConvertSpeakerNotesNotes are not drawn. Any value but Disabled returns 400 "ConvertSpeakerNotes is not supported yet for ODP files".
PageSizeImages keep the slide's shape; PageSize returns 400.

What carries over, and what doesn't

Kept

  • The cycle diagram's colored boxes, arrows and their soft shadows
  • Table header colors: green for greens, brown for browns
  • The cream background of the title slide
  • Liberation Sans as designed, since the server has the font

Lost or not yet supported

  • Sharp text: JPEG leaves faint noise around letters. PNG keeps them clean.
  • The speaker note on the diagram slide.
  • The hidden facilitator slide, by default.

Limits

  • At most 2,000 images per request.
  • 16,000 pixels per side and 100 million pixels per image; 413 above that.
  • 10 MB on the Free plan or 100 MB on paid plans per request, 120 seconds per conversion.

Where teams use it

Workshop slides in a newsletter or on a notice board site

Post the greens-and-browns table or the cycle diagram as pictures where attachments don't work. PageRange picks single slides.

Course pages that only take images

Learning platforms and forums that accept pictures but not presentations can show each slide as a JPEG; at 120 DPI and quality 75, as in the sample, the four workshop slides total 285,730 bytes.

Questions

Why are the images 1,653 pixels wide by default?

OpenDocument slides here are 28 cm wide, which is 11.02 inches. At the default 150 pixels per inch that comes to 1,653 × 930. Set ImageWidth when you need a round number.

How do I match ConvertAPI's JPEG output settings?

Send ImageQuality=75 and ImageResolution=200, the defaults ConvertAPI documents for ODP to JPG. Ours are 85 and 150. At 200 our slides are 2,204 × 1,240 pixels.

Is the DPI stored in the file?

When you send ImageResolution, yes: the sample's JPEGs say 120 DPI. Without it the header has no DPI.

Convert your first ODP file in a minute.