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
  • Scopemedia:write
  • Runs asA background job
Try it

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.

What the deck teaches.
Anything else the planner should know.
Your own outline. When given, the deck follows it.
Material the facts must come from (up to 10,000 words).
quick: 6–12 slides. deep: 10–24 slides, researched and reviewed.
Accent colour as #RRGGBB.
Use licensed stock pictures where they help.
Draw AI pictures where no stock picture fits (charged per picture drawn).
Include speaker notes in the files.
  1. Queued202 and a job id, straight away
  2. ProcessingPoll, stream or wait for a webhook
  3. SucceededResult and files on the job
Every AI request runs as a background job, so nothing times out.

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

Slide deck: headers
FieldDetails
Idempotency-KeystringRequiredA unique key per new operation; reuse it with the identical body when retrying.
EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

Request body

Slide deck: request body
FieldDetails
topicstring, optionalWhat the deck teaches.Up to 300 characters
audiencestring, optionalUp to 300 characters
objectivestring, optionalUp to 600 characters
notesstring, optionalAnything else the planner should know.Up to 2,000 characters
outlinestring, optionalYour own outline. When given, the deck follows it.Up to 12,000 characters
source_textstring, optionalMaterial the facts must come from (up to 10,000 words).Up to 60,000 characters
documentFileReference or DocumentInput, optionalA PDF, DOCX or TXT the facts must come from.
file_iddocument.file_idstringRequiredThe id returned by POST /v1/files, after POST /v1/files/{id}/complete reported ready.When sending FileReferencePattern ^file_[a-f0-9]{32}$
filenamedocument.filenamestringRequiredWhen sending DocumentInputUp to 200 characters
base64document.base64stringRequiredWhen sending DocumentInputUp to 27,962,028 characters
mime_typedocument.mime_typestring, optionalWhen sending DocumentInputUp to 150 characters
modeenumquick: 6–12 slides. deep: 10–24 slides, researched and reviewed.One of quick, deepDefault "quick"
slide_countinteger, optional3 to 30
themeenumOne of classic, chalk, editorial, bold, bright, minimal, warm, contrastDefault "classic"
accentstring, optionalAccent colour as #RRGGBB.Pattern ^#[0-9A-Fa-f]{6}$
stock_picturesbooleanUse licensed stock pictures where they help.Default true
ai_picturesbooleanDraw AI pictures where no stock picture fits (charged per picture drawn).Default true
formatsarray of enum1 to 2 items
speaker_notesbooleanInclude speaker notes in the files.Default true

Responses

StatusMeaning
202Successful Response
400Request rejected. Inspect error.code and request_id; failed work is not billed.
401Request rejected. Inspect error.code and request_id; failed work is not billed.
402Request rejected. Inspect error.code and request_id; failed work is not billed.
403Request rejected. Inspect error.code and request_id; failed work is not billed.
404Request rejected. Inspect error.code and request_id; failed work is not billed.
409Request rejected. Inspect error.code and request_id; failed work is not billed.
410Request rejected. Inspect error.code and request_id; failed work is not billed.
413Request rejected. Inspect error.code and request_id; failed work is not billed.
415Request rejected. Inspect error.code and request_id; failed work is not billed.
422Validation Error
429Request rejected. Inspect error.code and request_id; failed work is not billed.
503Request rejected. Inspect error.code and request_id; failed work is not billed.