Topic to PPT

Generate PowerPoint presentations from any topic using the MagicSlides API.

Endpoint

POST https://api.magicslides.app/public/api/ppt_from_topic

Request Parameters

topic

The topic you want to generate a presentation about.

Type: string

Required: Yes

extraInfoSource

Additional context or specific focus areas for the presentation.

Type: string

Required: No

email

Your registered email address.

Type: string

Required: Yes

accessId

Your API access ID.

Type: string

Required: Yes

template

Presentation template style.

Type: string

Required: No

Default: "bullet-point1"

language

Target language for the presentation.

Type: string

Required: No

Default: "en"

slideCount

Number of slides to generate (1-50).

Type: number

Required: No

Default: 10

aiImages

Enable AI-generated images.

Type: boolean

Required: No

Default: false

imageForEachSlide

Include images on every slide.

Type: boolean

Required: No

Default: true

googleImage

Use Google Images instead of AI images.

Type: boolean

Required: No

Default: false

googleText

Use Google search for content enhancement.

Type: boolean

Required: No

Default: false

model

AI model to use - "gpt-4" or "gpt-3.5".

Type: string

Required: No

Default: "gpt-4"

presentationFor

Target audience for the presentation.

Type: string

Required: No

Example Request

{
  "topic": "Artificial Intelligence in Healthcare",
  "extraInfoSource": "Focus on recent developments and future prospects",
  "email": "your-email@example.com",
  "accessId": "your-access-id",
  "template": "bullet-point1",
  "language": "en",
  "slideCount": 10,
  "aiImages": false,
  "imageForEachSlide": true,
  "googleImage": false,
  "googleText": false,
  "model": "gpt-4",
  "presentationFor": "healthcare professionals"
}

Example Response

{
  "success": true,
  "data": {
    "url": "https://example.com/path/to/presentation.pptx",
    ...
  },
  "message": "Presentation generated successfully"
}

Code Examples

TypeScript

import axios from 'axios';

async function generateFromTopic() {
  try {
    const response = await axios.post(
      'https://api.magicslides.app/public/api/ppt_from_topic',
      {
        topic: 'Artificial Intelligence in Healthcare',
        extraInfoSource: 'Focus on recent developments and future prospects',
        email: 'your-email@example.com',
        accessId: 'your-access-id',
        template: 'bullet-point1',
        language: 'en',
        slideCount: 10,
        aiImages: false,
        imageForEachSlide: true,
        googleImage: false,
        googleText: false,
        model: 'gpt-4',
        presentationFor: 'healthcare professionals'
      },
      {
        headers: {
          'Content-Type': 'application/json'
        }
      }
    );

    console.log('Presentation URL:', response.data.data.url);
    return response.data;
  } catch (error) {
    console.error('Error generating presentation:', error);
    throw error;
  }
}

Python

import requests

def generate_from_topic():
    try:
        response = requests.post(
            'https://api.magicslides.app/public/api/ppt_from_topic',
            json={
                'topic': 'Artificial Intelligence in Healthcare',
                'extraInfoSource': 'Focus on recent developments and future prospects',
                'email': 'your-email@example.com',
                'accessId': 'your-access-id',
                'template': 'bullet-point1',
                'language': 'en',
                'slideCount': 10,
                'aiImages': False,
                'imageForEachSlide': True,
                'googleImage': False,
                'googleText': False,
                'model': 'gpt-4',
                'presentationFor': 'healthcare professionals'
            },
            headers={
                'Content-Type': 'application/json'
            }
        )
        response.raise_for_status()
        data = response.json()
        print('Presentation URL:', data['data']['url'])
        return data
    except requests.exceptions.RequestException as e:
        print('Error:', e)
        raise

cURL

curl -X POST https://api.magicslides.app/public/api/ppt_from_topic \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "Artificial Intelligence in Healthcare",
    "extraInfoSource": "Focus on recent developments and future prospects",
    "email": "your-email@example.com",
    "accessId": "your-access-id",
    "template": "bullet-point1",
    "language": "en",
    "slideCount": 10,
    "aiImages": false,
    "imageForEachSlide": true,
    "googleImage": false,
    "googleText": false,
    "model": "gpt-4",
    "presentationFor": "healthcare professionals"
  }'