Pluslide LogoPluslide

Overview

Generate beautiful, customizable PPTX presentations through a simple REST API.

Key Features

FeatureDescription
Instant ResponseSingle API call returns download URL directly
Smart CompressionFiles optimized up to 70% smaller
No-Code EditorVisual template design with drag-and-drop
Responsive LayoutsCSS-like flexbox for dynamic content
High ScalabilityHandle 10,000+ concurrent requests

Example Request

curl -X POST "https://api.pluslide.com/v1/project/export" \  -H "Authorization: Bearer YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "projectId": "YOUR_PROJECT_ID",    "presentation": {      "slideList": [        {          "templateKey": "title-slide",          "content": {            "title": "Hello, Pluslide!",            "subtitle": "My first presentation"          }        }      ]    }  }'
const response = await fetch('https://api.pluslide.com/v1/project/export', {  method: 'POST',  headers: {    'Authorization': 'Bearer YOUR_API_KEY',    'Content-Type': 'application/json',  },  body: JSON.stringify({    projectId: 'YOUR_PROJECT_ID',    presentation: {      slideList: [        {          templateKey: 'title-slide',          content: {            title: 'Hello, Pluslide!',            subtitle: 'My first presentation'          }        }      ]    }  })});const { url } = await response.json();console.log('Download URL:', url);
import requestsresponse = requests.post(    'https://api.pluslide.com/v1/project/export',    headers={        'Authorization': 'Bearer YOUR_API_KEY',        'Content-Type': 'application/json',    },    json={        'projectId': 'YOUR_PROJECT_ID',        'presentation': {            'slideList': [                {                    'templateKey': 'title-slide',                    'content': {                        'title': 'Hello, Pluslide!',                        'subtitle': 'My first presentation'                    }                }            ]        }    })data = response.json()print('Download URL:', data['url'])
<?php$ch = curl_init('https://api.pluslide.com/v1/project/export');curl_setopt_array($ch, [    CURLOPT_RETURNTRANSFER => true,    CURLOPT_POST => true,    CURLOPT_HTTPHEADER => [        'Authorization: Bearer YOUR_API_KEY',        'Content-Type: application/json',    ],    CURLOPT_POSTFIELDS => json_encode([        'projectId' => 'YOUR_PROJECT_ID',        'presentation' => [            'slideList' => [                [                    'templateKey' => 'title-slide',                    'content' => [                        'title' => 'Hello, Pluslide!',                        'subtitle' => 'My first presentation'                    ]                ]            ]        ]    ])]);$response = curl_exec($ch);curl_close($ch);$data = json_decode($response, true);echo 'Download URL: ' . $data['url'];
package mainimport (    "bytes"    "encoding/json"    "fmt"    "net/http")func main() {    payload := map[string]interface{}{        "projectId": "YOUR_PROJECT_ID",        "presentation": map[string]interface{}{            "slideList": []map[string]interface{}{                {                    "templateKey": "title-slide",                    "content": map[string]string{                        "title":    "Hello, Pluslide!",                        "subtitle": "My first presentation",                    },                },            },        },    }    body, _ := json.Marshal(payload)    req, _ := http.NewRequest("POST", "https://api.pluslide.com/v1/project/export", bytes.NewBuffer(body))    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")    req.Header.Set("Content-Type", "application/json")    client := &http.Client{}    resp, _ := client.Do(req)    defer resp.Body.Close()    var result map[string]interface{}    json.NewDecoder(resp.Body).Decode(&result)    fmt.Println("Download URL:", result["url"])}
require 'net/http'require 'json'require 'uri'uri = URI('https://api.pluslide.com/v1/project/export')http = Net::HTTP.new(uri.host, uri.port)http.use_ssl = truerequest = Net::HTTP::Post.new(uri)request['Authorization'] = 'Bearer YOUR_API_KEY'request['Content-Type'] = 'application/json'request.body = {  projectId: 'YOUR_PROJECT_ID',  presentation: {    slideList: [      {        templateKey: 'title-slide',        content: {          title: 'Hello, Pluslide!',          subtitle: 'My first presentation'        }      }    ]  }}.to_jsonresponse = http.request(request)data = JSON.parse(response.body)puts "Download URL: #{data['url']}"
import java.net.http.*;import java.net.URI;public class Main {    public static void main(String[] args) throws Exception {        String json = """            {                "projectId": "YOUR_PROJECT_ID",                "presentation": {                    "slideList": [                        {                            "templateKey": "title-slide",                            "content": {                                "title": "Hello, Pluslide!",                                "subtitle": "My first presentation"                            }                        }                    ]                }            }            """;        HttpClient client = HttpClient.newHttpClient();        HttpRequest request = HttpRequest.newBuilder()            .uri(URI.create("https://api.pluslide.com/v1/project/export"))            .header("Authorization", "Bearer YOUR_API_KEY")            .header("Content-Type", "application/json")            .POST(HttpRequest.BodyPublishers.ofString(json))            .build();        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());        System.out.println("Response: " + response.body());    }}

Getting Started

  1. Create an account at pluslide.com
  2. Design templates using the no-code editor
  3. Generate API key from your dashboard
  4. Make API calls to generate presentations

Ready to start? Follow the Quick Start Guide.

On this page