Overview
Generate beautiful, customizable PPTX presentations through a simple REST API.
Quick Links
Quick Start
Generate your first presentation in 5 minutes.
API Reference
Complete endpoint documentation with examples.
Key Features
| Feature | Description |
|---|---|
| Instant Response | Single API call returns download URL directly |
| Smart Compression | Files optimized up to 70% smaller |
| No-Code Editor | Visual template design with drag-and-drop |
| Responsive Layouts | CSS-like flexbox for dynamic content |
| High Scalability | Handle 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
- Create an account at pluslide.com
- Design templates using the no-code editor
- Generate API key from your dashboard
- Make API calls to generate presentations
Ready to start? Follow the Quick Start Guide.
