Skip to main content
POST
/
api
/
partner
/
v1
/
templates
/
from-slideshow
/
{slideshowId}
curl --request POST \
  --url https://www.genviral.io/api/partner/v1/templates/from-slideshow/2ab58bb0-0c39-45c0-a4d5-b6852f9d7fc0 \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Converted Winner",
  "description": "Built from a high-performing slideshow",
  "visibility": "workspace",
  "preserve_text": true
}'
{
  "ok": true,
  "code": 201,
  "message": "Template created",
  "data": {
    "id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
    "name": "Converted Winner",
    "description": "Built from a high-performing slideshow",
    "visibility": "workspace",
    "preview_url": null,
    "use_count": 0,
    "last_used_at": null,
    "created_at": "2026-02-14T10:05:00.000Z",
    "updated_at": "2026-02-14T10:05:00.000Z",
    "is_owner": true,
    "config": {
      "version": 1,
      "structure": {
        "slides": [
          {
            "type": "pack",
            "id": "11111111-1111-1111-1111-111111111111",
            "pinnedImageUrl": null,
            "textElements": [
              {
                "id": "22222222-2222-2222-2222-222222222222",
                "content": "Hook text",
                "x": 50,
                "y": 25,
                "fontSize": 48,
                "width": 70
              }
            ]
          }
        ]
      },
      "content": {
        "mode": "manual",
        "productId": null,
        "language": "en",
        "slideshowType": "educational"
      },
      "visuals": {
        "packId": null,
        "aspectRatio": "4:5",
        "textSettings": {
          "fontSize": "default",
          "preset": "tiktok",
          "width": "default"
        }
      }
    }
  }
}
Builds a template from an existing slideshow in key scope.

Path Parameters

slideshowId
string
required
Source slideshow UUID.

Body Parameters

name
string
Optional template name (1-100 chars). If omitted, API auto-generates one.
description
string
Optional description (<=500 chars).
visibility
string
Optional: private or workspace. Default: private.
preserve_text
boolean
Optional. Default: true. Controls whether text is kept in converted config.
Empty body is valid ({} behavior). The API will generate a name and apply defaults.
curl --request POST \
  --url https://www.genviral.io/api/partner/v1/templates/from-slideshow/2ab58bb0-0c39-45c0-a4d5-b6852f9d7fc0 \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Converted Winner",
  "description": "Built from a high-performing slideshow",
  "visibility": "workspace",
  "preserve_text": true
}'
{
  "ok": true,
  "code": 201,
  "message": "Template created",
  "data": {
    "id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
    "name": "Converted Winner",
    "description": "Built from a high-performing slideshow",
    "visibility": "workspace",
    "preview_url": null,
    "use_count": 0,
    "last_used_at": null,
    "created_at": "2026-02-14T10:05:00.000Z",
    "updated_at": "2026-02-14T10:05:00.000Z",
    "is_owner": true,
    "config": {
      "version": 1,
      "structure": {
        "slides": [
          {
            "type": "pack",
            "id": "11111111-1111-1111-1111-111111111111",
            "pinnedImageUrl": null,
            "textElements": [
              {
                "id": "22222222-2222-2222-2222-222222222222",
                "content": "Hook text",
                "x": 50,
                "y": 25,
                "fontSize": 48,
                "width": 70
              }
            ]
          }
        ]
      },
      "content": {
        "mode": "manual",
        "productId": null,
        "language": "en",
        "slideshowType": "educational"
      },
      "visuals": {
        "packId": null,
        "aspectRatio": "4:5",
        "textSettings": {
          "fontSize": "default",
          "preset": "tiktok",
          "width": "default"
        }
      }
    }
  }
}

Error Responses

  • 400 missing_slideshow_id - path param missing
  • 400 invalid_json - body is not valid JSON
  • 422 invalid_payload - schema validation failed
  • 404 slideshow_not_found - source slideshow not found in key scope
  • 409 template_name_conflict - name already exists for owner
  • 422 invalid_template_config - generated/normalized config failed validation
  • 401 - authentication failed (missing/invalid/revoked token)
  • 402 subscription_required - active Creator/Professional/Business plan required
  • 403 tier_not_allowed - Scheduler tier cannot use Partner API
  • 500 template_create_failed - unexpected conversion failure