Skip to content
pdfconversionapi

PPT to Markdown API

POST /v2/convert/ppt/to/md turns the text of a PowerPoint 97-2003 deck into a Markdown outline, with each slide title as a ## heading. The sample's six-slide .ppt gives 671 bytes of Markdown under five headings; its hidden fifth slide is left out.

Endpoint
POST /v2/convert/ppt/to/md
Accepts
ppt
Sample timing
0.605 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/ppt/to/md \
  -H "Authorization: Bearer $PDFCONVERSIONAPI_KEY" \
  -F File=@eastgate-pantry-orientation.ppt \
  -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.605 s median1 file, 671 bytes
{
  "ConversionCost": 1,
  "ConversionTime": 0.605,
  "Files": [
    {
      "FileName": "eastgate-pantry-orientation.md",
      "FileExt": "md",
      "FileSize": 671,
      "FileData": "IyMgVm9sdW50ZWVyIG9yaWVu…"
    }
  ]
}

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.

eastgate-pantry-orientation.md, 28 lines

## Volunteer orientation- Eastgate Community Pantry- A fictional food pantry. Sample deck for pdfconversionapi.com, released under CC0 1.0.## Shifts and what each one does- Shift	Hours	Main task- Morning intake	8:00 to 11:00	Weigh and sort donations- Midday shelves	11:00 to 2:00	Restock rows A to C- Evening pickup	4:00 to 7:00	Pack and hand out boxes## Before your first shift- Sign in at the intake desk  - Your badge is waiting in the blue tray- Wear closed shoes  - Gloves are by the cold room door- Never lift more than 40 pounds alone## Where our food comes from## Find your way around- Rows A to C: dry goods- Cold room- Checkout table
Input
eastgate-pantry-orientation.ppt (80 KB)
Output
eastgate-pantry-orientation.md (671 bytes)
Source
A six-slide volunteer orientation deck for a fictional food pantry, made by us and saved in the PowerPoint 97-2003 format; slide 5 is hidden and slide 3 has speaker notes. (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
ConvertHiddenSlidesboolean, default falseKeep hidden slides in the outline. The sample then adds ## Backup: board budget note (hidden) and its sentence, 780 bytes in all.
PasswordstringDoesn't open encrypted decks yet: our PowerPoint-locked copy of the sample got 422 "the input file is password-protected" with and without it. A deck without a password ignores it.
FileNamestringName of the Markdown file: FileName=orientation-outline returned orientation-outline.md.

Not supported yet

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

OptionWhat to do instead
PageRangeRefused with any value: "PageRange is not supported yet for PPT → MD".
IncludeSpeakerNotesSpeaker notes are left out; true returns 400.
SlideHeadingsTitles are always ## headings; false returns 400.
ListBulletCharBullets are always -.
ImagesPictures are not written; only embed is accepted.

What carries over, and what doesn't

Kept

  • Slide titles as ## headings, one per visible slide, in deck order
  • Text in labels and shapes: the floor-plan slide's three tags become three bullets
  • Nested points, indented by two spaces under their parent bullet
  • Each table row as a bullet with its cells joined by tabs

Lost or not yet supported

  • The pie chart's categories and percentages; only the slide title is kept.
  • Pictures, with no link or placeholder in the Markdown.
  • Speaker notes: the note on slide 3 of the sample is not in the file.
  • Fonts, colors and layout, as in any Markdown outline.

Limits

  • One .ppt per request and up to 10 MB on the Free plan or 100 MB on paid plans per request.
  • A conversion runs for at most 120 seconds, then the API answers 504.
  • Only PowerPoint 97-2003 files: a .pptx renamed to .ppt returns 422 "it could not be opened as PPT".
  • Office options this route can't apply, like ConvertSpeakerNotes=Separate, return 400 "… is not supported yet for PPT files".
  • Password-protected .ppt decks can't be outlined yet (422), even when Password is right.

Where teams use it

Indexing an archive of pre-2007 decks

Convert each .ppt in an archive to Markdown, and your search or retrieval system gets plain text with the slide titles marked, without having to read the binary format itself.

Rewriting old training decks as documents

Start from the outline of an orientation or onboarding deck and edit it into a handbook page. The second-level points arrive as nested lists.

Questions

How does a .ppt become Markdown?

In two steps inside one request: the deck is first saved as .pptx, then the text of each slide is written as an outline. That is why the result looks the same as /v2/convert/pptx/to/md output for a .pptx.

Is there a plain-text route for .ppt?

No; /v2/convert/ppt/to/txt returns 404. Use this route and strip the ## and - markers, or convert the deck with /v2/convert/ppt/to/pptx and send the result to /v2/convert/pptx/to/txt.

Why is my hidden slide missing?

Hidden slides are skipped, as in a slide show. Send ConvertHiddenSlides=true to keep them.

What does the output of the sample look like?

It starts with ## Volunteer orientation followed by - Eastgate Community Pantry, and the shift table becomes four bullets such as - Morning intake, a tab, 8:00 to 11:00, a tab, Weigh and sort donations.

Convert your first PPT file in a minute.