Tools

PPT to Markdown API

Submit any PowerPoint file. Get back slide text, metadata, and slide count as a readable Markdown document.

Try it below:

FILEDrop a file or click to upload

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Turn presentations into Markdown

Upload a PPTX file or submit a URL, get Markdown back.

# Sales Deck Q3 2026

**Kind:** document
**Created:** 2026-07-20T10:00:00.000Z
**MIME Type:** application/vnd.openxmlformats-officedocument.presentationml.presentation
**Size:** 3240000 bytes
**Chunks:** 24

## Document

**Author:** Sales Team
**Pages:** 24
**Created:** 2026-07-18T00:00:00.000Z

What is Exabase's PPT to Markdown API?

Submit a PowerPoint file to the Exabase Extract API and get a Markdown document back instead of JSON. The same extraction pipeline runs: text extraction from slides, metadata parsing, thumbnail generation, and PDF rendering. Pass ?format=markdown when retrieving the result and you get a human-readable Markdown document with the presentation content.

The Markdown output includes the presentation title, author, slide count, creation date, and the text from all slides. Speaker notes are included. No python-pptx, no LibreOffice, no slide-processing pipeline.

What you get back

The Markdown response is a single text document. Presentation metadata appears at the top. Slide text follows as readable content. You can also configure webhooks with webhookFormat: "markdown" so completed jobs POST the Markdown directly to your server.

One multi-modal API

The same POST /v2/extract endpoint handles every content type, and ?format=markdown works across all of them. For PPTX, you get slide metadata and text. For DOCX, you get document text and metadata. For PDFs, you get document metadata and structured data for recognised types. For audio and video, you get the transcript.

The submission flow is identical across all types. The Extract docs cover each content type in detail.

What you can build with it

Feed presentation content directly into your agent's context window as readable Markdown. Build a searchable deck library where slide content is stored as Markdown for retrieval. Power meeting assistants that pair presentation Markdown with meeting transcripts for complete context.

Store extracted presentations as Resources in a Base and the content becomes searchable through Deep Search. Workers can process new uploads as they arrive.

Beyond Markdown

The Extract API also returns JSON (the default) with chunks mapped to slide numbers, plus a rendered PDF and title slide thumbnail. Use Markdown for LLM context and human review, JSON for structured slide-level retrieval. The PPT to JSON tool page covers the JSON output.

How do I use it?

  1. Get your API key

Free, no credit card:

Sign up at exabase.io and copy your API key from the dashboard.

  1. Submit a PowerPoint file

Using the SDK (Node.js):

import { Exabase } from "@exabase/sdk";
import { createReadStream } from "fs";

const api = new Exabase({
  apiKey: process.env.EXABASE_API_KEY,
});

const job = await api.extract.createFromFile({
  file: createReadStream("./sales-deck-q3.pptx"),
  name: "Sales Deck — Q3 2026",
});

console.log(job.id);
console.log(job.state);
  1. Get Markdown back

Poll the job until state reaches completed, or skip polling entirely with webhooks.

curl 'https://api.exabase.io/v2/extract/<jobId>?format=markdown' \
  -H 'X-Api-Key: <EXABASE_API_KEY>'

One API call. No python-pptx, no LibreOffice, no Markdown conversion.

Example output

# Sales Deck Q3 2026

**Kind:** document
**Created:** 2026-07-20T10:00:00.000Z
**MIME Type:** application/vnd.openxmlformats-officedocument.presentationml.presentation
**Size:** 3240000 bytes
**Chunks:** 24

## Document

**Author:** Sales Team
**Pages:** 24
**Created:** 2026-07-18T00:00:00.000Z

API quick reference

Endpoint

Method

Description

/v2/extract

POST

Submit extraction job

/v2/extract

GET

List extraction jobs

/v2/extract/{jobId}

GET

Poll for result

/v2/extract/{jobId}/chunks

GET

Fetch text chunks (JSON only)

/v2/extract-settings

PUT

Configure webhook

Auth: X-Api-Key header on all requests.

File retention: Stored files are retained for 1 day from job creation. Download or copy anything you need before they expire.

Need file extraction or full page content?

Exabase offers a full set of tools to extract content from any media, document or website.

All your data extraction needs in one place.

Why Exabase

Use cases

FAQs

What is Exabase?

Exabase is infrastructure for AI agents. It gives your agents memory, versioned file storage, AI deep search, and context automation through a set of APIs. Store what your agent learns, search inside any content type, and keep knowledge bases current automatically. Built for production use. Give your agent precise context and cut your token spend by up to 81%.

Who uses Exabase?

Developers and teams building AI agents, copilots, and RAG applications. If your agent needs to remember things between sessions, store and retrieve files, search across documents and media, or stay up to date without manual maintenance, Exabase handles that infrastructure so you can focus on your product.

How do I get Markdown instead of JSON?

Add ?format=markdown to the GET /v2/extract/{jobId} request. For webhooks, set webhookFormat: "markdown".

Can I still get JSON?

Yes. JSON is the default. For programmatic processing, Resume to JSON returns typed fields.

Does it handle .ppt files?

The API is optimised for .pptx. Older .ppt files may be supported but .pptx is recommended.

Does it include speaker notes?

Yes. Speaker notes are included in the extraction.

Does it extract text from images in slides?

Text in text boxes and placeholders is extracted. Text embedded in images is not, unless it's a text element. For slide-level OCR, the rendered PDF preserves the visual layout.

How long are files retained?

Stored files are retained for 1 day from job creation, then permanently deleted. Download or copy anything you need before the retention window expires.

Do I have to poll for results?

No. Configure a webhook with webhookFormat: "markdown".

Is there an SDK?

Yes. The @exabase/sdk package for Node.js/TypeScript handles file streaming, job polling, and chunk retrieval. Install with npm install @exabase/sdk. Or call the REST API directly from any language.

What other document types does Extract recognise?

Invoices, contracts and more can also get extracted into Markdown. See the Invoice to JSON and Contract to JSON tool pages. General PDFs return text chunks and metadata without the structured object. The same endpoint also handles images, audio, video, and web pages.

Deciding?

Ask your favourite AI about Exabase:

Cut your token spend and give your agent precise context.

Get started in minutes.

Cut your token spend and give your agent precise context.

Get started in minutes.