Maison Mise API

Everything you can do in the app, you can do over HTTP. Create a key in Settings and send it as a Bearer token.

Create a slideshow

POST /api/v1/slideshows returns once slides are written and illustrated (usually 30 to 90s). The virality score is computed in the background.

curl -X POST https://maisonmise.com/api/v1/slideshows \
  -H "Authorization: Bearer sm_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "5 underrated apps for students who procrastinate",
    "format": "underrated-apps",
    "style": "clean",
    "aspect": "9:16",
    "slides": 6,
    "language": "English",
    "imageSource": "photos"
  }'

# → { "id": "s_8f2c…", "url": "/app/s/s_8f2c…" }

Parameters

prompt
string, required. What the slideshow is about (max 600 chars).
format
underrated-apps, things-i-wish, news-explainer, hidden-history, study-says, pov-relationship, before-after, neighborhood-guide, mistakes, book-app-pairing, product-roundup, free
style
maison, tiktok, news, editorial, clean, research (defaults to the format's style)
aspect
4:5 (default), 9:16, 1:1
slides
3 to 10
language
English, Spanish, Portuguese, French, German, Italian, Japanese, Korean, Indonesian, Hindi, Arabic, Turkish, Dutch, Polish, Vietnamese, Chinese (Simplified)
imageSource
photos (CC-licensed, default) or ai
clone
{ url?, caption?, slideText? }: copy a viral post's structure

Other endpoints

GET  /api/v1/slideshows                 # list (?q= to search)
GET  /api/slideshows/:id                 # full slideshow incl. analysis
POST /api/slideshows/:id/edit            # { "instruction": "shorter hook" }
POST /api/slideshows/:id/analyze         # re-score now
GET  /api/slideshows/:id/slides/:n       # slide PNG (?w=540 preview)
GET  /api/slideshows/:id/download?type=zip|mp4

Errors return { "error": "…" } with 400 (bad input), 401 (missing key), 402 (monthly quota used) or 502 (AI provider error).