Colossyan Templates API
Generates videos from reusable Colossyan templates, supplying dynamic variables to populate text, avatars, and media placeholders.
Generates videos from reusable Colossyan templates, supplying dynamic variables to populate text, avatars, and media placeholders.
openapi: 3.0.1
info:
title: Colossyan API
description: >-
REST API for the Colossyan AI avatar and video generation platform. Generate
studio-quality videos from a script combined with AI avatars and voices via
asynchronous video-generation jobs, list avatars/presenters and voices,
create custom Instant avatars, generate from templates, and receive
completion notifications via webhook callbacks. All requests and responses
use JSON. API access requires a Business or Enterprise plan; the API token
is found in the workspace Settings. Endpoint paths, request fields, and
response fields below reflect Colossyan's public documentation
(docs.colossyan.com); exact JSON schemas are not fully published, so request
and response bodies are described as free-form objects where the schema is
not documented.
termsOfService: https://www.colossyan.com/terms-and-conditions
contact:
name: Colossyan Support
url: https://www.colossyan.com/contact
version: '1.0'
servers:
- url: https://app.colossyan.com/api/v1
description: Stable v1 API
- url: https://app.colossyan.com/api
description: Experimental (non-versioned) endpoints
security:
- bearerAuth: []
tags:
- name: Video Generation
description: Create and manage asynchronous video-generation jobs.
- name: Generated Videos
description: Retrieve and delete completed videos.
- name: Avatars
description: List avatars/presenters and create custom Instant avatars.
- name: Voices
description: List available AI voices.
- name: Experimental
description: Non-versioned, experimental endpoints subject to change.
paths:
/video-generation-jobs:
post:
operationId: createVideoGenerationJob
tags:
- Video Generation
summary: Create a video-generation job
description: >-
Submits an asynchronous job that renders a video from a video creative
descriptor (scenes, tracks, avatars, scripts, voices). Optionally
supply a callback URL to be notified on completion and dynamic
variables for substitution.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VideoGenerationJobRequest'
responses:
'200':
description: Job created.
content:
application/json:
schema:
$ref: '#/components/schemas/VideoGenerationJob'
/video-generation-jobs/{videoGenerationJobId}:
get:
operationId: getVideoGenerationJob
tags:
- Video Generation
summary: Get a video-generation job
description: Retrieves the status and progress of a video-generation job.
parameters:
- $ref: '#/components/parameters/VideoGenerationJobId'
responses:
'200':
description: Job retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/VideoGenerationJob'
delete:
operationId: cancelVideoGenerationJob
tags:
- Video Generation
summary: Cancel a video-generation job
description: Cancels an in-progress video-generation job.
parameters:
- $ref: '#/components/parameters/VideoGenerationJobId'
responses:
'200':
description: Job cancelled.
/video-generation-jobs/template-jobs:
post:
operationId: createTemplateVideoGenerationJob
tags:
- Video Generation
summary: Create a video-generation job from a template
description: >-
Generates a video from an existing Colossyan template, supplying
dynamic variables to populate template placeholders.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateVideoGenerationJobRequest'
responses:
'200':
description: Template job created.
content:
application/json:
schema:
$ref: '#/components/schemas/VideoGenerationJob'
/generated-videos/{videoId}:
get:
operationId: getGeneratedVideo
tags:
- Generated Videos
summary: Get a generated video
description: Retrieves details and download URLs for a generated video.
parameters:
- $ref: '#/components/parameters/VideoId'
responses:
'200':
description: Video retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/GeneratedVideo'
delete:
operationId: deleteGeneratedVideo
tags:
- Generated Videos
summary: Delete a generated video
description: Deletes a generated video.
parameters:
- $ref: '#/components/parameters/VideoId'
responses:
'200':
description: Video deleted.
/assets/actors:
get:
operationId: listAvatars
tags:
- Avatars
summary: List avatars
description: >-
Returns the avatars/presenters available to the workspace. Avatar types
include Studio (provided by Colossyan), Scenario (provided by Colossyan
with scenario backgrounds), and Instant (custom-made) avatars.
responses:
'200':
description: A list of avatars.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Avatar'
post:
operationId: createAvatar
tags:
- Avatars
summary: Create an Instant avatar
description: >-
Creates a custom Instant avatar from a source image or video URL in a
single request.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAvatarRequest'
responses:
'200':
description: Avatar created.
content:
application/json:
schema:
$ref: '#/components/schemas/Avatar'
/assets/voices:
get:
operationId: listVoices
tags:
- Voices
summary: List voices
description: >-
Returns the AI voices available for narration across the platform's
supported languages.
responses:
'200':
description: A list of voices.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Voice'
/knowledge-to-draft/generate-draft:
post:
operationId: generateDraftFromKnowledge
tags:
- Experimental
summary: Generate a draft from a knowledge source (experimental)
description: >-
Experimental endpoint that generates a video draft from a knowledge
source. Served from the non-versioned base URL
https://app.colossyan.com/api and subject to change.
servers:
- url: https://app.colossyan.com/api
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
description: >-
Experimental request body. Schema is not formally documented.
responses:
'200':
description: Draft generated.
content:
application/json:
schema:
type: object
additionalProperties: true
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: >-
Bearer token authentication. Provide the workspace API token in the
Authorization header as `Bearer {token}`. The token is available in the
workspace Settings and requires a Business or Enterprise plan.
parameters:
VideoGenerationJobId:
name: videoGenerationJobId
in: path
required: true
description: The identifier of the video-generation job.
schema:
type: string
VideoId:
name: videoId
in: path
required: true
description: The identifier of the generated video.
schema:
type: string
schemas:
VideoGenerationJobRequest:
type: object
description: >-
Descriptor for a video-generation job. The videoCreative object models
the video timeline as scenes containing tracks (actor, video, image,
audio, text). Field set below reflects documented fields; the full
schema is not published.
properties:
videoCreative:
$ref: '#/components/schemas/VideoCreative'
dynamicVariables:
type: object
additionalProperties: true
description: Template variable substitutions applied during rendering.
callback:
type: string
format: uri
description: Webhook URL notified when the job completes.
callbackPayload:
type: object
additionalProperties: true
description: Custom data echoed back in the completion webhook payload.
TemplateVideoGenerationJobRequest:
type: object
description: Request to generate a video from an existing template.
properties:
templateId:
type: string
description: Identifier of the Colossyan template to render.
dynamicVariables:
type: object
additionalProperties: true
description: Values that populate the template's placeholders.
callback:
type: string
format: uri
description: Webhook URL notified when the job completes.
callbackPayload:
type: object
additionalProperties: true
description: Custom data echoed back in the completion webhook payload.
VideoCreative:
type: object
description: The video timeline definition.
properties:
settings:
type: object
properties:
name:
type: string
description: Video title.
videoSize:
type: object
description: Output video dimensions.
properties:
width:
type: integer
height:
type: integer
scenes:
type: array
description: Ordered scenes that make up the video.
items:
$ref: '#/components/schemas/Scene'
Scene:
type: object
properties:
tracks:
type: array
items:
$ref: '#/components/schemas/Track'
Track:
type: object
description: >-
A track within a scene. The track type determines which fields apply
(actor, video, image, audio, text).
properties:
type:
type: string
description: Track type.
enum:
- actor
- video
- image
- audio
- text
actor:
type: string
description: Avatar identifier for actor tracks.
text:
type: string
description: Script content spoken or displayed.
speakerId:
type: string
description: Voice identifier used for narration.
VideoGenerationJob:
type: object
description: Status of a submitted video-generation job.
properties:
id:
type: string
status:
type: string
description: Current job status.
jobId:
type: string
GeneratedVideo:
type: object
description: A completed video.
properties:
id:
type: string
jobId:
type: string
name:
type: string
publicUrl:
type: string
format: uri
description: Downloadable video URL.
thumbnailUrl:
type: string
format: uri
createdAt:
type: string
format: date-time
videoSizeBytes:
type: integer
videoDurationSeconds:
type: number
Avatar:
type: object
description: An avatar/presenter available for video generation.
properties:
name:
type: string
description: Identifier used to reference the avatar in video generation.
displayName:
type: string
type:
type: string
description: Avatar type.
enum:
- Studio
- Scenario
- Instant
gender:
type: string
enum:
- Male
- Female
CreateAvatarRequest:
type: object
description: Request to create a custom Instant avatar.
required:
- sourceFileUrl
properties:
displayName:
type: string
description: Display name for the avatar.
sourceFileUrl:
type: string
format: uri
description: Image or video URL used to generate the avatar.
gender:
type: string
enum:
- Male
- Female
Voice:
type: object
description: An AI voice available for narration.
properties:
speakerId:
type: string
description: Identifier used as speakerId on tracks during video generation.
name:
type: string
language:
type: string
WebhookCallback:
type: object
description: >-
Payload delivered to the caller-supplied callback URL when a
video-generation job finishes. Includes the original callbackPayload
and dynamicVariables from the request.
properties:
url:
type: string
format: uri
description: Public video download link.
videoUrl:
type: string
format: uri
description: Colossyan sharing platform URL.
shareUrl:
type: string
format: uri
description: Alternative sharing URL.
status:
type: string
enum:
- finished
- failed