Editable output, not a screenshot
Text comes back as native PowerPoint text boxes with matched size and color; icons, photos and cards become separate image layers.
Image to PPT API
Send a PNG or JPG with your API key and get back a PPTX whose text is editable and whose visuals are separate layers: the same conversion that powers the EditablePPT web app.
Create an API key, upload an image, poll until the job succeeds, then export the PPTX. Replace <ID> with the id returned by the first request.
# 1. Upload a PNG or JPG and start the conversion
curl -X POST "https://editableppt.com/api/image-conversions?quality=standard&title=Slide%201" \
-H "Authorization: Bearer $EDITABLEPPT_API_KEY" \
-H "Content-Type: image/png" \
--data-binary @slide.png
# → {"code":0,"message":"ok","data":{"id":"<ID>","status":"processing",...}}
# 2. Poll every few seconds until status is success or failed
curl "https://editableppt.com/api/image-conversions?id=<ID>" \
-H "Authorization: Bearer $EDITABLEPPT_API_KEY"
# 3. Download the editable PPTX
curl -X POST "https://editableppt.com/api/image-conversions/export" \
-H "Authorization: Bearer $EDITABLEPPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids":["<ID>"],"title":"Slide 1"}' \
-o slide.pptxText comes back as native PowerPoint text boxes with matched size and color; icons, photos and cards become separate image layers.
Standard for fast text and image layers, Layered for five depth layers with word art kept as its own layer. Pick one per request with the quality parameter.
Each request spends credits from your account: 40 for Standard and 80 for Layered. Failed and canceled jobs are refunded automatically.
The image to PPT API lets your product, script or workflow do what the EditablePPT converter does in the browser. Upload a slide image, a poster, a screenshot or a scanned page; EditablePPT recognizes the text, matches its style, removes it from the background and separates the remaining artwork into layers. When the job finishes, export one image or up to 20 converted images as a single PPTX deck.
Conversion is asynchronous because recognition, background cleanup and layer separation take time: about 1–2 minutes in Standard mode and 3–5 minutes in Layered mode. Start a job, store the returned id and poll its status. Call the API only from your own server, never from a public web page or mobile app, because every request spends your account's credits.
Sign in, open Settings > API Keys and create a key. It starts with sk_ and is sent as a Bearer token.
POST the raw image bytes to /api/image-conversions with an optional quality and title. The response contains the job id.
GET the job until its status is success, then POST its id to /api/image-conversions/export to download the .pptx file.
API reference
Every endpoint except export returns a JSON envelope with code, message and data fields. A code of 0 means success; any other code means the request failed, and message says why. Export returns the PPTX file itself.
Every request needs your API key in the Authorization header. Keys belong to your account and spend its credits; revoke a key in Settings > API Keys if it leaks.
Authorization: Bearer sk_...Send the raw image as the request body, not as multipart form data. Query parameters:
POST https://editableppt.com/api/image-conversionsReturns the job and its current state.
GET https://editableppt.com/api/image-conversions?id=<ID>Send a JSON body with ids (1–20 successful job ids) and an optional title. The response is the .pptx file, with one slide per job in the order given.
POST https://editableppt.com/api/image-conversions/export
{"ids":["<ID-1>","<ID-2>"],"title":"My deck"}Stops a job that is still running and refunds its credits. Use it when a user abandons an upload or your own timeout expires.
DELETE https://editableppt.com/api/image-conversions?id=<ID>Use the HTTP status to decide whether to retry.
PNG and JPG/JPEG, up to 20 MB and 25 megapixels per request. Send one image per conversion, then combine several finished jobs into one deck when you export.
Standard jobs usually finish in 1–2 minutes. Layered jobs take about 3–5 minutes, and fine card splitting adds a few more. Poll every 3–5 seconds instead of holding a connection open.
With the same credits as the web app: 40 per Standard image and 80 per Layered image. Credits are deducted when the job starts and refunded if it fails or you cancel it. A request without enough credits returns HTTP 402.
Yes. Pass up to 20 successful job ids to the export endpoint in the order you want the slides, and you get a single PPTX.
Recognized text is native, editable text. Visual elements are separate pictures with transparency that can be moved, resized or deleted. Charts and tables are not rebuilt as native charts or tables, so review complex slides before you ship them.