Prezent AutoGenerator API
Long-running and synchronous endpoints that generate and manipulate AI-authored presentations from prompts, files, and assets.
Long-running and synchronous endpoints that generate and manipulate AI-authored presentations from prompts, files, and assets.
openapi: 3.1.0
info:
title: Prezent Platform Audiences AutoGenerator API
version: 1.0.0
summary: Agent-ready REST API for Prezent's content-generation and template-conversion services.
description: "The Prezent Platform API exposes Prezent's AutoGenerator, Template Converter,\nAudiences, Themes, and File-upload services as a uniform JSON HTTP API.\n\nThis contract describes the **target agent-ready shape** of the API: every\ndocumented endpoint returns a uniform success envelope `{ \"success\": true,\n\"data\": { ... } }` or a uniform error envelope `{ \"success\": false,\n\"data\": null, \"error\": { \"code\": \"...\", \"message\": \"...\", \"details\": { ... } } }`.\nError codes are drawn from a stable catalog (see `ErrorCode`). The contract\nis additive: handlers may continue to emit legacy keys alongside the\ndocumented ones for backwards compatibility, so schemas explicitly allow\nadditional properties at the envelope and data levels.\n\nSeveral endpoints kick off long-running background work and return a\n`callback_id` that the client polls against a corresponding status\nendpoint. The canonical async polling endpoint for the Template Converter\nfamily is **`GET /api/v2/template-converter/status/{callback_id}`** which\nuses strict HTTP-status mapping (200 only on workflow success, 4xx/5xx on\nworkflow failure). The v1 polling endpoint at\n`/api/v1/template-converter/status/{callbackId}` (and its REST alias\n`GET /api/v1/template-conversions/{callback_id}`) continues to be served\nwith legacy semantics (HTTP 200 with `status` field) and is intentionally\nomitted from this documentation.\n\n**REST resource aliases (v1.1).** AutoGenerator and Template Converter\nendpoints are documented here under their REST-resource path names\n(`/api/v1/autogenerations`, `/api/v1/template-conversions`). The legacy\nRPC-style paths under `/api/v1/autogenerator/*` and\n`/api/v1/template-converter/*` continue to be served indefinitely; they\nreturn a `Deprecation: true` header pointing to the successor alias.\n\n**Conventions that apply to every endpoint** (full reference in the\ncompanion guides on this documentation site):\n\n- **Auth:** API key as a Bearer token — `Authorization: Bearer <key>`.\n Each key is scoped to an allow-list of endpoint paths; an out-of-scope\n call returns `404 ENDPOINT_NOT_FOUND`.\n- **Rate limits:** gateway throttle 10 req/s sustained, 5 burst,\n 1,000 req/day per key; per-company per-category 60-second sliding\n windows; annual quotas (50,000 slide generations/yr, 1,000,000\n downloads/yr). Limit breaches return `429` with `error.code`\n `TOO_MANY_REQUESTS` (gateway), `RATE_LIMIT_EXCEEDED` (per-category),\n or `USAGE_LIMIT_EXCEEDED` (annual).\n- **Errors:** every error uses the `{ success:false, data:null, error:{\n code, message, details } }` envelope with stable, documented `code`\n values.\n- **Idempotency & pagination:** mutating requests accept an\n `Idempotency-Key`; list endpoints accept opt-in `limit`/`cursor`\n paging.\n\n**Building with an AI agent?** Prezent ships a first-class Model Context\nProtocol (MCP) server. The hosted endpoint is\n`https://mcp.myprezent.com/mcp` (OAuth 2.1, works with Claude.ai Custom\nConnectors); a local stdio server is published on PyPI as\n`prezent-mcp-server` and plugs into Claude Desktop, Cursor, Cline,\nContinue, and Zed. The MCP tools wrap the same REST endpoints\ndescribed here.\n\n**Official SDKs.** Typed REST clients are published for Python and\nTypeScript (`prezent-sdk`) — generated from and versioned against this\nspec. For other languages, generate a client from this document.\n\n**Out of scope of this document:** SCIM endpoints under `/api/v1/scim/*`.\nThose endpoints conform to RFC 7644 (SCIM 2.0) and follow a different\nenvelope (`schemas`, `Resources`, `totalResults`, etc.). They are\ndocumented separately at /docs/scim-user-management.\n"
x-out-of-scope-note: 'SCIM endpoints (`/api/v1/scim/*`) are NOT included in this spec. They
follow RFC 7644 (SCIM 2.0) and are documented in a separate document at
/docs/scim-user-management.
'
contact:
name: Prezent API Support
email: support@prezent.ai
url: https://prezent.ai
license:
name: Proprietary - Prezent, Inc.
url: https://prezent.ai/terms
servers:
- url: https://api.prezent.ai
description: Production (canonical)
- url: https://uatstage-api.myprezent.com
description: UAT (user acceptance testing)
- url: https://devstage-api.myprezent.com
description: Development
security:
- BearerAuth: []
tags:
- name: AutoGenerator
description: Long-running and synchronous endpoints that generate and manipulate AI-authored presentations from prompts, files, and assets.
paths:
/api/v1/autogenerations:
post:
tags:
- AutoGenerator
summary: Create an AutoGenerator job
description: 'Kicks off a background pipeline that turns the supplied prompt,
context files, and assets into a Prezent presentation. Returns a
`callback_id` that the caller polls via
`GET /api/v1/autogenerations/{callback_id}` until `status` is
`success` or `failed`.
'
operationId: createAutogeneration
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorStartRequest'
responses:
'200':
description: Job accepted; client must poll for completion.
headers:
Idempotency-Replayed:
$ref: '#/components/headers/IdempotencyReplayed'
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorStartResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/IdempotencyConflict'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}:
get:
tags:
- AutoGenerator
summary: Read an AutoGenerator job
description: 'Returns the current state of a previously started AutoGenerator job.
The `status` field in the response data is one of
`in_progress`, `success`, or `failed`. Once `success`, the payload
also contains the generated slides, extracted images, theme/audience
metadata, and other context required to display or further edit
the deck.
For the same `callback_id`, polling after `status=success` returns
the same cached payload.
'
operationId: getAutogeneration
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
- in: query
name: deck_callback_id
required: false
description: Original deck callback id when polling a regenerate sub-job.
schema:
type: string
- in: query
name: operation
required: false
description: Sub-operation hint (used by regenerate flows).
schema:
type: string
- in: query
name: status_auto_polling
required: false
description: Pass `true` to indicate the caller is auto-polling; affects how stalled jobs are surfaced.
schema:
type: string
enum:
- 'true'
- 'false'
responses:
'200':
description: Current job status returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorStatusResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/lookups:
post:
tags:
- AutoGenerator
summary: Look up multiple AutoGenerator jobs in one call
description: 'Returns layout metadata for each `callback_id` in the request. Use
when rendering a list view that needs many decks at once.
'
operationId: createAutogenerationLookup
x-rate-limit-category: autogenerator
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorStatusBulkRequest'
responses:
'200':
description: Bulk status returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorStatusBulkResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerator/meta:
post:
tags:
- AutoGenerator
summary: Fetch slide-metadata for asset IDs
description: 'Returns slide-level metadata (titles, layout codes, thumbnails) for
each asset id provided. Used by editors that need to enrich a slide
list without re-running generation.
'
operationId: getAutoGeneratorMeta
x-rate-limit-category: autogenerator
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorMetaRequest'
responses:
'200':
description: Metadata returned for each asset id.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorMetaResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/downloads:
post:
tags:
- AutoGenerator
summary: Create a download artefact for an AutoGenerator deck
description: 'Synchronously merges all slides for the given `callback_id` into a
single PowerPoint (or PDF, depending on `outputFormat`) and returns
a signed download URL. The merge step can take up to 60 seconds.
Subject to the `AUTO_GEN_DOWNLOAD` usage limit in addition to the
normal rate limits.
'
operationId: createAutogenerationDownload
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorDownloadRequest'
responses:
'200':
description: Merged deck produced; signed URL returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorDownloadResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/regenerations:
post:
tags:
- AutoGenerator
summary: Create a regeneration of an AutoGenerator deck
description: 'Re-runs a portion of an existing AutoGenerator deck — typically a
slide, node, or section — and returns a new `callback_id` to poll.
Counted as a fresh generation against the `AUTO_GEN` usage cap.
'
operationId: createAutogenerationRegeneration
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
- in: query
name: operation
required: true
description: The regenerate sub-operation (for example `node_change`, `slide_regenerate`).
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorRegenerateRequest'
responses:
'200':
description: Regenerate job accepted; poll the returned `new_callback_id`.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorRegenerateResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/node-changes:
post:
tags:
- AutoGenerator
summary: Create a node-level change on an AutoGenerator slide
description: 'Mutates a single node (text, image, shape) within a slide of an
existing deck. Returns the updated slide payload synchronously.
'
operationId: createAutogenerationNodeChange
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorNodeChangeRequest'
responses:
'200':
description: Node change applied.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorGenericDataResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerator/slide-data:
post:
tags:
- AutoGenerator
summary: Fetch slide data for a single slide callback
description: 'Returns the raw slide-data document (text, images, layout,
speaker notes) for the given `slide_callback_id`.
'
operationId: getAutoGeneratorSlideData
x-rate-limit-category: autogenerator
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorSlideDataRequest'
responses:
'200':
description: Slide data returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorGenericDataResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/image-extractions:
post:
tags:
- AutoGenerator
summary: Create an image-extraction for an AutoGenerator deck
description: 'Reads the PowerPoint at the given S3 location and returns the list
of embedded images. If `force_update` is true, re-runs extraction
even when cached results exist.
'
operationId: createAutogenerationImageExtraction
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorExtractImagesRequest'
responses:
'200':
description: Image list returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorGenericDataResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerator/brand-image-search:
post:
tags:
- AutoGenerator
summary: Search the caller's brand-image library
description: 'Returns brand images that match the query string, ordered by
relevance. Supports `skip` and `limit` for pagination.
'
operationId: searchAutoGeneratorBrandImages
x-rate-limit-category: autogenerator
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorBrandImageSearchRequest'
responses:
'200':
description: Matching brand images returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorMessageDataResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerator/library-image-search:
post:
tags:
- AutoGenerator
summary: Search the configured stock-image library
description: 'Searches the configured stock image provider (Adobe Stock or
Freepik, depending on company configuration). Supports
`limit`/`offset` pagination. If `searchKey` is omitted, the
handler infers it from the supplied slide context.
'
operationId: searchAutoGeneratorLibraryImages
x-rate-limit-category: autogenerator
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorLibraryImageSearchRequest'
responses:
'200':
description: Matching library images returned.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorMessageDataResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/image-replacements:
post:
tags:
- AutoGenerator
summary: Create an image replacement on an AutoGenerator slide
description: 'Swaps an image on a slide with a new image sourced from the
caller''s workspace, Adobe Stock, Freepik, a previously uploaded
file, an extracted image, or S3.
'
operationId: createAutogenerationImageReplacement
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorReplaceImageRequest'
responses:
'200':
description: Image replacement completed.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorMessageDataResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/reactions:
post:
tags:
- AutoGenerator
summary: Create a reaction on an AutoGenerator deck
description: 'Persists a user reaction (like) or qualitative feedback against a
previously generated deck/slide. When `type` is `feedback`,
`shareDetails` must be provided.
'
operationId: createAutogenerationReaction
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorReactionFeedbackRequest'
responses:
'200':
description: Reaction/feedback stored.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorReactionFeedbackResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
/api/v1/autogenerations/{callback_id}/slide-actions:
post:
tags:
- AutoGenerator
summary: Create a per-slide action on an AutoGenerator deck
description: 'Performs one of four actions against a slide: `duplicate`,
`delete`, `add_sources_to_slides_note`, or `speaker_notes`. The
required body fields depend on `action`.
'
operationId: createAutogenerationSlideAction
x-rate-limit-category: autogenerator
parameters:
- $ref: '#/components/parameters/CallbackIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorSlideActionsRequest'
responses:
'200':
description: Slide action completed.
content:
application/json:
schema:
$ref: '#/components/schemas/AutoGeneratorSlideActionsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
components:
schemas:
AutoGeneratorStartResponse:
description: Response body for `POST /api/v1/autogenerator`.
allOf:
- $ref: '#/components/schemas/CallbackEnvelope'
AutoGeneratorMetaRequest:
type: object
description: Request body for `POST /api/v1/autogenerator/meta`.
required:
- assetIds
- callbackID
properties:
assetIds:
type: array
description: Asset ids to look up metadata for.
minItems: 1
items:
type: string
callbackID:
type: string
description: Parent deck callback id. (Legacy camelCase preserved for backwards compatibility; new clients should also continue to send this field.)
additionalProperties: true
AutoGeneratorStatusBulkRequest:
type: object
description: Request body for `POST /api/v1/autogenerator/status-bulk`.
required:
- callback_ids
properties:
callback_ids:
type: array
description: Callback ids to look up.
minItems: 1
items:
type: string
additionalProperties: true
CallbackEnvelope:
description: Async-start envelope. `data.callback_id` is the value the client polls.
allOf:
- $ref: '#/components/schemas/SuccessEnvelope'
- type: object
properties:
data:
type: object
required:
- callback_id
properties:
callback_id:
type: string
description: Server-issued opaque identifier.
token:
type: string
description: Optional one-time token used by callback-id-scoped URLs (for example status polling when no Bearer key is available).
additionalProperties: true
ErrorCode:
type: string
description: 'Stable identifier for an error condition. Codes never change
meaning or HTTP status once published.
'
enum:
- INVALID_API_KEY
- EXPIRED_API_KEY
- UNAUTHORIZED
- FORBIDDEN
- ENDPOINT_NOT_FOUND
- RESOURCE_NOT_FOUND
- NOT_FOUND
- METHOD_NOT_ALLOWED
- UNSUPPORTED_FILE_TYPE
- INVALID_INPUT
- UNPROCESSABLE_ENTITY
- RATE_LIMIT_EXCEEDED
- USAGE_LIMIT_EXCEEDED
- TOO_MANY_REQUESTS
- THROTTLED
- BAD_REQUEST
- INVALID_JSON
- MISSING_REQUIRED_FIELD
- MISSING_QUERY_PARAM
- MISSING_CALLBACK_ID
- MISSING_SLIDES_ARRAY
- MISSING_PROMPT
- MISSING_TEMPLATE_ID
- MISSING_FILE_CONTENT
- MISSING_SHARE_DETAILS
- INVALID_TYPE
- INVALID_DATA
- INVALID_DATA_TYPE
- INVALID_PAYLOAD
- INVALID_REQUEST
- API_REQUEST_FAILED
- FILE_UPLOAD_FAILED
- MAX_RETRIES_EXCEEDED
- EXTERNAL_SERVICE_ERROR
- INTERNAL_SERVER_ERROR
- SERVICE_UNAVAILABLE
- GATEWAY_TIMEOUT
AutoGeneratorReactionFeedbackResponse:
description: Response body for `POST /api/v1/autogenerator/reaction-feedback`.
allOf:
- $ref: '#/components/schemas/SuccessEnvelope'
- type: object
properties:
data:
type: object
properties:
uuid:
type: string
description: Target asset uuid.
type:
type: string
enum:
- liked
- feedback
description: Reaction kind.
value:
description: Recorded value.
oneOf:
- type: boolean
- type: string
message:
type: string
description: Human-readable confirmation.
additionalProperties: true
AutoGeneratorRegenerateRequest:
type: object
description: Request body for `POST /api/v1/autogenerator/regenerate`.
required:
- callback_id
properties:
callback_id:
type: string
description: Existing deck callback id.
audience:
type: string
description: Override audience for the regenerated portion.
template_code:
type: string
description: Override template code for the regenerated portion.
slide_override:
type: object
description: Slide-level overrides.
additionalProperties: true
story_content_override:
type: object
description: Narrative-content overrides.
additionalProperties: true
context:
type: object
description: Additional context to inject into the regenerate pass.
additionalProperties: true
duration:
type: string
description: Desired duration for the regenerated section.
voice_settings:
type: object
description: Voice/tone settings.
additionalProperties: true
data_sour
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/prezent/refs/heads/main/openapi/prezent-autogenerator-api-openapi.yml