Encelade API Docs

Public Generation

Generate a complete project (plan + generate in one call)

POST
/api/public/v1/projects/generate
x-api-key<token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://loading/api/public/v1/projects/generate" \  -H "Content-Type: application/json" \  -d '{    "outlineHints": [      "string"    ],    "verbosity": "concise",    "model": "gpt-5.4",    "pageCount": "auto",    "includeCallToAction": true,    "deepResearch": false  }'
{
  "sessionId": "string",
  "status": "planning"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Generate a project outline

POST
/api/public/v1/projects/plan
x-api-key<token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://loading/api/public/v1/projects/plan" \  -H "Content-Type: application/json" \  -d '{    "outlineHints": [      "string"    ],    "verbosity": "concise",    "model": "gpt-5.4",    "pageCount": "auto",    "includeCallToAction": true,    "deepResearch": false  }'
{
  "plan": {
    "title": "string",
    "tone": "string",
    "audience": "string",
    "summary": "string",
    "callToAction": "string",
    "pages": [
      {
        "title": "string",
        "objective": "string",
        "keyPoints": [
          "string"
        ],
        "slideType": "narrative",
        "contentDensity": "minimal",
        "mediaRole": "none",
        "narrativeBeat": "setup",
        "headlineStyle": "insight",
        "recommendedRoadmapStyles": [
          "OPTION1"
        ],
        "recommendedStatisticsStyles": [
          "CENTERED"
        ],
        "supportingPacketIds": [
          "string"
        ],
        "userContent": "string"
      }
    ]
  },
  "questions": [
    {
      "id": "string",
      "question": "string",
      "reason": "string",
      "inputType": "text",
      "choices": [
        "string"
      ],
      "placeholder": "string"
    }
  ],
  "sessionId": "string",
  "events": [
    {
      "type": "string",
      "message": "string",
      "data": null
    }
  ],
  "usage": {
    "property1": 0,
    "property2": 0
  }
}
{
  "sessionId": "string",
  "events": [
    {
      "type": "string",
      "message": "string",
      "data": null
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}

Generate project content from a supplied plan

POST
/api/public/v1/projects/generate-from-plan
x-api-key<token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://loading/api/public/v1/projects/generate-from-plan" \  -H "Content-Type: application/json" \  -d '{    "plan": {      "title": "string",      "tone": "string",      "audience": "string",      "summary": "string",      "pages": [        {          "title": "string",          "objective": "string",          "keyPoints": [            "string"          ],          "slideType": "narrative",          "contentDensity": "minimal",          "mediaRole": "none"        }      ]    }  }'
{
  "project": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "pid": "string",
    "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    "name": "string",
    "theme": "default",
    "pageLayersScrollable": true,
    "pageAspectRatio": "16:9",
    "pageGridEnabled": false,
    "pageGridType": "12-column",
    "pageNumbersEnabled": false,
    "linkShareToken": "string",
    "linkAccess": "tenant",
    "linkRole": "owner",
    "publishSlug": null,
    "isPublished": false,
    "publishedAt": null,
    "ogImageUrl": null,
    "publishDescription": null,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "pinnedAt": null,
    "pages": [
      {
        "pageBackground": "floating-lines",
        "pageBackgroundColor": "rgba(0, 0, 0, 0)",
        "pageBackgroundAnimatedGradient": null,
        "pageBackgroundSettings": null,
        "presentModeAnimation": "layers-staggered",
        "currentSelectedLayerId": null,
        "currentSelectedLayerType": null,
        "selectedLayoutId": null,
        "layoutSlotOccupancy": {},
        "speakerNotes": "",
        "watermarkEnabled": false,
        "watermarkText": "",
        "watermarkShowOnAllPages": false,
        "layout": [],
        "isPageLayoutLocked": false,
        "hide": false,
        "layerVisibilityDefaults": null,
        "showLayoutBounds": true,
        "fluidLayout": null,
        "narrativeBeat": null,
        "pageTypeId": "string",
        "pageTypeVariantId": "string",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string",
        "slug": "string",
        "position": 0
      }
    ],
    "members": [
      {
        "id": "string",
        "userId": "string",
        "name": "string",
        "email": "string",
        "avatar": "string",
        "role": {
          "id": "owner",
          "name": "string"
        }
      }
    ]
  },
  "sessionId": "string",
  "events": [
    {
      "type": "string",
      "message": "string",
      "data": null
    }
  ],
  "metrics": {
    "durationMs": 9007199254740991,
    "toolInvocationCount": 9007199254740991,
    "eventCount": 9007199254740991
  }
}
{
  "sessionId": "string",
  "events": [
    {
      "type": "string",
      "message": "string",
      "data": null
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}