POST
/
v1
/
videos
Generate a new video
curl --request POST \
  --url https://api.getbluma.com/api/v1/videos \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "template_id": "meme-dialogue",
  "variant_id": "var_abc123",
  "context": {
    "prompt": "Create a funny meme about cats and programming",
    "brand_assets": {},
    "system_prompt": "You are a witty content creator"
  },
  "webhook_url": "https://yourdomain.com/webhooks/video-complete",
  "options": {
    "resolution": "1080p",
    "watermark": true
  }
}
'
{
  "id": "<string>",
  "status": "queued",
  "template_id": "<string>",
  "variant_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "estimated_completion": "2023-11-07T05:31:56Z",
  "status_url": "<string>",
  "credits_charged": 123
}

Authorizations

Authorization
string
header
required

Use your API key in the format: Bearer bluma_live_your_api_key_here

Body

application/json
context
object
required
template_id
string

Template ID (e.g., "meme-dialogue", "feelset-slideshow"). Either template_id or variant_id must be provided, but not both.

Example:

"meme-dialogue"

variant_id
string

Variant ID to use pre-configured template settings. Either template_id or variant_id must be provided, but not both.

Example:

"var_abc123"

webhook_url
string<uri>

URL to receive completion webhook

Example:

"https://yourdomain.com/webhooks/video-complete"

options
object

Response

Video generation queued successfully

id
string

Batch job ID

status
enum<string>
Available options:
queued,
processing
template_id
string

Template ID used for generation

variant_id
string | null

Variant ID used for generation (if applicable)

created_at
string<date-time>
estimated_completion
string<date-time>
status_url
string
credits_charged
number