In this comprehensive guide, you’ll learn how to programmatically edit existing presentations using Presenton’s powerful API. Whether you need to make dynamic updates, personalize content for different audiences, or modify slides after generation, this tutorial will get you up and running quickly.
Before diving in, make sure you’ve already generated a presentation using Presenton’s API. If you haven’t, check out our Generate Presentation Guide first.

Understanding the Edit Endpoint

The magic happens through a single, powerful endpoint:
POST /api/v1/ppt/presentation/from-template
This endpoint allows you to:
  • Update specific slides by their index position
  • Modify any content field within a slide
  • Export the updated presentation in your preferred format
  • Make multiple slide edits in a single request

How It Works

The editing process follows a simple three-step flow:
  1. Identify the presentation you want to edit using its unique ID
  2. Specify which slides to update and what content to change
  3. Receive a new presentation file with your updates applied
Remember that slide indices are zero-based, meaning the first slide is index 0, the second slide is index 1, and so on.

Request Structure

Here’s the anatomy of a typical edit request:
{
  "presentation_id": "your_presentation_unique_uuid",
  "data": [
    {
      "index": 0,
      "content": {
        "title": "Updated Slide Title",
        "bullets": [
          "New point A",
          "New point B", 
          "Final thoughts"
        ]
      }
    }
  ],
  "export_as": "pptx"
}
Let’s break down each component:

Request Parameters

ParameterTypeRequiredDescription
presentation_idstringThe unique identifier of your existing presentation
dataarrayList of slide modifications to apply
data[].indexintegerZero-based slide number to update
data[].contentobjectNew content matching the slide’s schema
export_asstringExport format: pptx (default) or pdf
The content object must match the original slide template’s schema. Each slide type has specific fields that can be updated.

Getting Your Presentation Data

Before editing, you’ll often want to see the current state of your presentation. Use this endpoint to retrieve all presentation details:
POST /api/v1/ppt/presentation?id=your_presentation_id
Make sure to include the id query parameter with your presentation’s unique identifier to fetch the specific presentation data you want to edit.
Example Response Structure:
{
  "id": "b4fa04dc-0151-4a4d-a2e0-40a51d569afe",
  "title": "AI Solutions Overview",
  "slides": [
    {
      "id": "b97cd5cb-7a3e-432e-aaee-9f873fa2059d",
      "index": 5,
      "layout": "modern:market-validation-slide",
      "content": {
        "companyName": "AI Solutions Inc.",
        "title": "Advantages of Using AI",
        "description": "Explore the advantages of integrating AI...",
        "comparisonData": [
          {
            "label": "Manual Processing",
            "metricLabel": "Task Completion Time", 
            "value": 160
          }
        ]
      }
    }
  ],
  "layout": {
    "slides": [
      {
        "json_schema": {
          "type": "object",
          "properties": {
            "companyName": {"type": "string"},
            "title": {"type": "string"}
          }
        }
      }
    ]
  }
}

Key Information You’ll Need:

  • Slide Index: Found in slides[].index - tells you which slide to target
  • Current Content: Available in slides[].content - shows what can be modified
  • Schema: Located in layout.slides[].json_schema - defines valid content structure

Practical Example: Updating Company Information

Let’s walk through a real-world example. Suppose you have a slide with this content:
{
  "index": 5,
  "content": {
    "companyName": "AI Solutions Inc.",
    "title": "Advantages of Using AI",
    "description": "Explore the advantages of integrating AI to boost business performance.",
    "comparisonData": [
      {
        "label": "Manual Processing",
        "metricLabel": "Task Completion Time",
        "value": 160
      },
      {
        "label": "AI Automation", 
        "metricLabel": "Task Completion Time",
        "value": 40
      }
    ]
  }
}
To update just the company name to “ABC Company”, here’s how you’d structure your request:
curl -X POST http://localhost:5000/api/v1/ppt/presentation/from-template \
  -H "Content-Type: application/json" \
  -d '{
    "presentation_id": "b4fa04dc-0151-4a4d-a2e0-40a51d569afe",
    "data": [
      {
        "index": 5,
        "content": {
          "companyName": "ABC Company"
        }
      }
    ],
    "export_as": "pptx"
  }'

Understanding the Response

When your request succeeds, you’ll receive a response like this:
{
  "presentation_id": "new_unique_presentation_id",
  "path": "/app_data/exports/ABC Company Presentation.pptx",
  "edit_path": "/presentation?id=new_unique_presentation_id"
}

Response Fields Explained:

  • presentation_id: A new unique ID for your updated presentation
  • path: Server file path where your updated presentation is saved
  • edit_path: URL path to continue editing in Presenton’s web interface
Use the edit_path to open your updated presentation in Presenton’s visual editor for further refinements using the intuitive drag-and-drop interface.

Advanced Use Cases

Updating Multiple Slides at Once

You can modify several slides in a single request:
{
  "presentation_id": "your_presentation_id",
  "data": [
    {
      "index": 0,
      "content": {
        "title": "New Introduction Title"
      }
    },
    {
      "index": 2, 
      "content": {
        "companyName": "Updated Company",
        "revenue": 2500000
      }
    },
    {
      "index": 5,
      "content": {
        "bullets": [
          "Updated point 1",
          "Updated point 2", 
          "Updated point 3"
        ]
      }
    }
  ],
  "export_as": "pptx"
}

Updating Complex Data Structures

For slides with arrays or nested objects, you can update the entire structure:
{
  "presentation_id": "your_presentation_id",
  "data": [
    {
      "index": 3,
      "content": {
        "chartData": [
          {"quarter": "Q1", "revenue": 125000, "growth": 15},
          {"quarter": "Q2", "revenue": 143750, "growth": 18},
          {"quarter": "Q3", "revenue": 168125, "growth": 22},
          {"quarter": "Q4", "revenue": 201750, "growth": 25}
        ]
      }
    }
  ]
}

Next Steps

Now that you’ve mastered presentation editing via API, you can:
  1. Download and Share: Use the returned file path to download your updated presentation
  2. Continue Editing: Use the edit_path to make visual adjustments in Presenton’s web interface

Ready to Generate Your First Presentation?

If you haven’t created a presentation yet, start with our Generate Presentation Guide to learn the basics.

That’s it! You’ve successfully edited a professional-looking presentation through an easy-to-use API endpoint. If you have more questions or want to explore further, the complete documentation is always here to help you.