POST /presentations

Creates a new presentation with a default structure.

application/json

Body

  • title string

    The title of the presentation

    Minimum length is 1, maximum length is 200.

  • slides array[object]
    Hide slides attributes Show slides attributes object
    • id string
    • elements array[object]
      Hide elements attributes Show elements attributes object
      • type string
      • id string
      • left number
      • top number
      • width number
      • height number
      • viewBox array[integer]
      • path string
      • fill string
      • fixedRatio boolean
      • opacity number
      • rotate integer
      • flipV boolean
      • lineHeight number
      • content string
      • defaultFontName string
      • defaultColor string
      • start array[integer]
      • end array[integer]
      • points array[string]
      • color string
      • style string
      • wordSpace integer
    • background object
      Hide background attributes Show background attributes object
      • type string
      • color string

Responses

  • 200 application/json

    success

    Hide response attributes Show response attributes object
    • success boolean
    • code integer(int32)
    • message string
    • data object

      Presentation response schema matching the /presentations/{id} GET endpoint

      Hide data attributes Show data attributes object
      • id string

        Unique identifier for the presentation

      • title string

        Title of the presentation

      • createdAt string(date-time)

        Timestamp when the presentation was created

      • updatedAt string(date-time)

        Timestamp when the presentation was last updated

      • slides array[object]

        Array of slides in the presentation

        Hide slides attributes Show slides attributes object
        • id string
        • elements array[object]
          Hide elements attributes Show elements attributes object
          • type string
          • id string
          • left number
          • top number
          • width number
          • height number
          • viewBox array[integer]
          • path string
          • fill string
          • fixedRatio boolean
          • opacity number
          • rotate integer
          • flipV boolean
          • lineHeight number
          • content string
          • defaultFontName string
          • defaultColor string
          • start array[integer]
          • end array[integer]
          • points array[string]
          • color string
          • style string
          • wordSpace integer
        • background object
          Hide background attributes Show background attributes object
          • type string
          • color string
  • 500 application/json

    Internal Server Error

    Hide response attributes Show response attributes object
    • success boolean
    • code integer
    • errorCode string
    • message string
    • timestamp string(date-time)
POST /presentations
curl \
 --request POST 'http://localhost:8080/api/presentations' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"title":"My First Presentation","slides":[{"id":"string","elements":[{"type":"string","id":"string","left":42.0,"top":42.0,"width":42.0,"height":42.0,"viewBox":[42],"path":"string","fill":"string","fixedRatio":true,"opacity":42.0,"rotate":42,"flipV":true,"lineHeight":42.0,"content":"string","defaultFontName":"string","defaultColor":"string","start":[42],"end":[42],"points":["string"],"color":"string","style":"string","wordSpace":42}],"background":{"type":"string","color":"string"}}]}'
Request examples
{
  "title": "My First Presentation",
  "slides": [
    {
      "id": "string",
      "elements": [
        {
          "type": "string",
          "id": "string",
          "left": 42.0,
          "top": 42.0,
          "width": 42.0,
          "height": 42.0,
          "viewBox": [
            42
          ],
          "path": "string",
          "fill": "string",
          "fixedRatio": true,
          "opacity": 42.0,
          "rotate": 42,
          "flipV": true,
          "lineHeight": 42.0,
          "content": "string",
          "defaultFontName": "string",
          "defaultColor": "string",
          "start": [
            42
          ],
          "end": [
            42
          ],
          "points": [
            "string"
          ],
          "color": "string",
          "style": "string",
          "wordSpace": 42
        }
      ],
      "background": {
        "type": "string",
        "color": "string"
      }
    }
  ]
}
Response examples (200)
{
  "success": true,
  "code": 200,
  "message": "string",
  "data": {
    "id": "12345",
    "title": "My Awesome Presentation",
    "createdAt": "2025-08-30T10:30:00Z",
    "updatedAt": "2025-08-30T15:45:00Z",
    "slides": [
      {
        "id": "string",
        "elements": [
          {
            "type": "string",
            "id": "string",
            "left": 42.0,
            "top": 42.0,
            "width": 42.0,
            "height": 42.0,
            "viewBox": [
              42
            ],
            "path": "string",
            "fill": "string",
            "fixedRatio": true,
            "opacity": 42.0,
            "rotate": 42,
            "flipV": true,
            "lineHeight": 42.0,
            "content": "string",
            "defaultFontName": "string",
            "defaultColor": "string",
            "start": [
              42
            ],
            "end": [
              42
            ],
            "points": [
              "string"
            ],
            "color": "string",
            "style": "string",
            "wordSpace": 42
          }
        ],
        "background": {
          "type": "string",
          "color": "string"
        }
      }
    ]
  }
}
Response examples (500)
{
  "success": false,
  "code": 42,
  "errorCode": "string",
  "message": "string",
  "timestamp": "2025-05-04T09:42:00Z"
}