Generate a presentation

Create a new presentation using AI generation. Returns a job ID to poll for results.

Endpoint

POSThttps://api.nextdocs.io/v0/generate/presentation

Headers

  • Authorization (required) — Bearer <API_KEY>

Request Body

  • title (string, required, 1-200) — Presentation title.
  • prompt (string, required, 10-10000) — Generation prompt.
  • num_pages (integer | null, optional, 1-30) — Number of slides.
  • num_copies (integer, optional, 1-4, default 1) — Number of variations.
  • model ("fast" | "quality", optional, default fast) — Speed/quality.
  • theme_mode (string, optional, default auto) — Theme mode or ID.

Responses

  • 202 — Job created.
  • 422 — Validation error.

Example Request

curl -X POST https://api.nextdocs.io/v0/generate/presentation \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "AI in Healthcare",
    "prompt": "Create a pitch deck about AI in Healthcare, covering current applications, market opportunity, and future trends",
    "num_pages": 5,
    "num_copies": 2,
    "model": "fast",
    "theme_mode": "auto"
  }'
const response = await fetch('https://api.nextdocs.io/v0/generate/presentation', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'AI in Healthcare',
    prompt: 'Create a pitch deck about AI in Healthcare, covering current applications, market opportunity, and future trends',
    num_pages: 5,
    num_copies: 2,
    model: 'fast',
    theme_mode: 'auto',
  }),
});

const data = await response.json();
import requests

response = requests.post(
    'https://api.nextdocs.io/v0/generate/presentation',
    headers={
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json',
    },
    json={
        'title': 'AI in Healthcare',
        'prompt': 'Create a pitch deck about AI in Healthcare, covering current applications, market opportunity, and future trends',
        'num_pages': 5,
        'num_copies': 2,
        'model': 'fast',
        'theme_mode': 'auto',
    }
)

data = response.json()

Example Response

{
  "job_id": "job_123",
  "status": "pending",
  "poll_url": "https://api.nextdocs.io/v0/jobs/job_123"
}