---
title: "LEGACY: MagicSlides writes the deck copy from a topic (uses MagicSlides AI credits)"
method: POST
path: "/gpt/create-presentation"
tags: ["Studio"]
---

# LEGACY: MagicSlides writes the deck copy from a topic (uses MagicSlides AI credits)

`POST /gpt/create-presentation`

## Request

- Base URL: `https://www.magicslides.app/api`
- URL: `https://www.magicslides.app/api/gpt/create-presentation`
- Auth: API key in header `x-api-key`

Use ONLY if the user explicitly asks MagicSlides to write the content. PREFERRED path: call getStudioTemplateSchema, write every slot yourself, then createStudioPresentationFromSlots — that uses your own model and is free. Builds a designed deck from a topic and returns preview image, live slideshow URL, edit URL and PDF. Takes up to ~40s. On `status: out_of_credits`, give the user `createUrl`.

## Request body

- object
  - `topic` string, required: What the presentation is about. Be specific.
  - `templateKey` string: A templateKey from listStudioTemplates.
  - `slides` integer
  - `language` string
  - `audience` string: Optional target audience.

## Response `200`

The finished deck.

- object
  - `status` string
  - `previewImageUrl` string, uri: PNG of the first slide.
  - `previewUrl` string, uri: Live slideshow.
  - `shareUrl` string, uri
  - `editUrl` string, uri: Open in MagicSlides Studio.
  - `pdfUrl` string, uri
  - `slideCount` integer
  - `templateKey` string
  - `conversationId` string

## Other responses

- `400`: Invalid or missing parameters. Note: legacy endpoints answer missing parameters with 404, not 400.
- `500`: Generation failed. Safe to retry once.

---

[API](https://skmtc.dev/magicslides/apis/magicslides-api.md) · [All operations](https://skmtc.dev/magicslides/apis/magicslides-api/llms.txt) · [OpenAPI document](https://skmtc.dev/magicslides/apis/magicslides-api/revisions/bb1173e74e5f?raw)
