Deckup is the conversion API you wish Aspose was. Drop a deck, get structured SVG plus a JSON sidecar in seconds — built for canvas editors, LMS platforms, and AI agents who need PPTX as a first-class input.

Text stays text. Shapes stay shapes. Layers preserved. Drop straight into Fabric.js, Konva, or any custom canvas — no mystery flattening.
Public tiers, published overage rates, free tier you can actually integrate against. Test keys free forever. Watermark removed at Starter.
Real curl samples. SDKs in Python, Node, and Go. HMAC-signed webhooks with retry queue. Developer-led support in hours, not days.
No SDK required for v1 — though Python, Node, and Go ship before public launch. Send a multipart upload, choose sync or async, get back signed URLs plus the JSON sidecar that tells you exactly what rendered and what didn't.
curl POST "https://api.deckup.io/v1/convert?mode=sync" \ -H "Authorization: Bearer sk_live_…" \ -F "file=@quarterly-review.pptx" # → 200 OK # { # "id": "conv_01HXR3…", # "slides": [{ "svg_url": "…", "title": "Q4 results" }, …], # "skipped": [{ "slide": 4, "kind": "smartart" }] # }
import requests with open("quarterly-review.pptx", "rb") as f: r = requests.post( "https://api.deckup.io/v1/convert", params={"mode": "sync"}, headers={"Authorization": "Bearer sk_live_…"}, files={"file": f}, ) conv = r.json() for slide in conv["slides"]: print(slide["title"], slide["svg_url"]) # Skipped elements are listed honestly: print(conv["skipped"]) # [{'slide': 4, 'kind': 'smartart', 'reason': 'unsupported in v1'}]
import fs from "node:fs"; const body = new FormData(); body.append("file", new Blob([fs.readFileSync("quarterly-review.pptx")]), "quarterly-review.pptx"); const r = await fetch("https://api.deckup.io/v1/convert?mode=sync", { method: "POST", headers: { Authorization: `Bearer ${process.env.DECKUP_KEY}` }, body, }); const conv = await r.json(); for (const slide of conv.slides) { console.log(slide.title, slide.svg_url); } // conv.skipped tells you exactly what didn't render.
import ( "bytes" "encoding/json" "mime/multipart" "net/http" "os" ) f, _ := os.Open("quarterly-review.pptx") defer f.Close() var buf bytes.Buffer w := multipart.NewWriter(&buf) part, _ := w.CreateFormFile("file", "quarterly-review.pptx") io.Copy(part, f) w.Close() req, _ := http.NewRequest("POST", "https://api.deckup.io/v1/convert?mode=sync", &buf) req.Header.Set("Authorization", "Bearer "+os.Getenv("DECKUP_KEY")) req.Header.Set("Content-Type", w.FormDataContentType()) resp, _ := http.DefaultClient.Do(req) var conv Conversion json.NewDecoder(resp.Body).Decode(&conv)
Each element from the source deck lands as its own SVG node with its original position, type, and z-order. Your editor can hit-test individual shapes, restyle text runs, and round-trip metadata — without ever touching OOXML.
The whole shape of the integration. From file upload to webhook callback, everything around it — queues, retries, signed URLs, dead-lettering — is ours to operate.
Multipart upload to a single endpoint. Pick sync for files under ~40 slides, async with a webhook URL for anything bigger.
Provisioned serverless capacity, no cold starts. Typical 30-slide deck: 5–10 seconds. Larger decks stream a webhook in under 60s.
Signed URLs expire in 5 minutes; assets live in your bucket if you want them to. The sidecar JSON tells you exactly what rendered and what was skipped.
We're not trying to replicate every Aspose feature. We're nailing the 80% of use cases that actually matter, with an experience that respects you. Honest comparison, no marketing hand-waving.
We don't have feature parity with Aspose. We have a better experience for the 80% of use cases people actually have. If you need SmartArt rendered today, Aspose is your tool — for now.
I'd been paying Aspose for six years to convert PowerPoint into SVG for our procedure editor at Thruline. It worked. It was also the most painful integration in our stack. So I built the thing I wished existed — Deckup is what Aspose should have been if it had been built by people who actually use APIs.

Three categories of customer drive most v1 traffic — editor-builders, AI/RAG pipelines, and compliance scanners. All have one thing in common: PowerPoint is a required input and rolling your own converter is a quarter you don't have.
LMS, training, and SOP platforms with Fabric.js or Konva editors. Customers walk in with hundreds of existing decks — they're not going to redraw them.
Document-processing automation that needs structured slide content for embeddings, prompts, or analysis. Get SVG for visual reference and JSON for everything else.
Scanning customer documents for sensitive content. Your scanner operates on clean SVG and metadata — not undocumented OOXML internals.
25 free conversions a month to evaluate — plus a one-time +100 bonus credit when you upgrade. No card to start. Test keys free forever. Developer-led support that responds in hours, not days.