Slide deck
A teaching slide deck from your topic, outline or material, as editable PowerPoint and PDF.
- Price2 credits (20p) per deck
- Typical time2 min to 10 min
- Scope
media:write - Runs asA background job
Run slide deck in the sandbox
No key and nothing to pay. The sandbox returns a realistic example in a couple of seconds; no AI runs and no data is kept.
- Queued202 and a job id, straight away
- ProcessingPoll, stream or wait for a webhook
- SucceededResult and files on the job
Writes the deck with EduMark Slides: quick (6–12 slides) or deep (10–24 slides, researched and reviewed as a teacher would). Licensed stock pictures are used where they help and AI pictures are drawn where none fits; each AI picture drawn costs slides.image (up to the deck's picture budget, reserved up front, unused pictures are not charged). Saves slides.pptx, slides.pdf (choose with formats) and deck.json. Anything the planner could not support from your material is listed in notes.
Requires media:write. Costs 2 credits per deck. Send a unique Idempotency-Key; reuse it with the identical body when retrying. Returns 202 with a job: poll GET /jobs/{job_id}, stream GET /jobs/{job_id}/events, or use a signed webhook.
Slide deck
POST/v1/slides
Scope media:write
Headers
| Field | Details |
|---|---|
Idempotency-Key | stringRequiredA unique key per new operation; reuse it with the identical body when retrying. |
EduMark-Version | enumAPI version. Defaults to the latest.One of 2026-10-21 |
Request body
| Field | Details |
|---|---|
topic | string, optionalWhat the deck teaches.Up to 300 characters |
audience | string, optionalUp to 300 characters |
objective | string, optionalUp to 600 characters |
notes | string, optionalAnything else the planner should know.Up to 2,000 characters |
outline | string, optionalYour own outline. When given, the deck follows it.Up to 12,000 characters |
source_text | string, optionalMaterial the facts must come from (up to 10,000 words).Up to 60,000 characters |
document | FileReference or DocumentInput, optionalA PDF, DOCX or TXT the facts must come from. |
file_iddocument.file_id | stringRequiredThe id returned by POST /v1/files, after POST /v1/files/{id}/complete reported ready.When sending FileReferencePattern ^file_[a-f0-9]{32}$ |
filenamedocument.filename | stringRequiredWhen sending DocumentInputUp to 200 characters |
base64document.base64 | stringRequiredWhen sending DocumentInputUp to 27,962,028 characters |
mime_typedocument.mime_type | string, optionalWhen sending DocumentInputUp to 150 characters |
mode | enumquick: 6–12 slides. deep: 10–24 slides, researched and reviewed.One of quick, deepDefault "quick" |
slide_count | integer, optional3 to 30 |
theme | enumOne of classic, chalk, editorial, bold, bright, minimal, warm, contrastDefault "classic" |
accent | string, optionalAccent colour as #RRGGBB.Pattern ^#[0-9A-Fa-f]{6}$ |
stock_pictures | booleanUse licensed stock pictures where they help.Default true |
ai_pictures | booleanDraw AI pictures where no stock picture fits (charged per picture drawn).Default true |
formats | array of enum1 to 2 items |
speaker_notes | booleanInclude speaker notes in the files.Default true |
Responses
| Status | Meaning |
|---|---|
| 202 | Successful Response |
| 400 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 401 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 402 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 403 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 404 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 409 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 410 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 413 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 415 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 422 | Validation Error |
| 429 | Request rejected. Inspect error.code and request_id; failed work is not billed. |
| 503 | Request rejected. Inspect error.code and request_id; failed work is not billed. |