Skip to main content
POST
/
movies
Create a movie
curl --request POST \
  --url https://api.keyframe.art/v1/movies \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "prompt": "Create a cinematic 30 second launch film for a compact desk lamp."
}
'
{
  "id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "prompt": "<string>",
  "duration_seconds": 123,
  "progress": {
    "percent": 50,
    "stage": "<string>"
  },
  "error": {
    "code": "<string>",
    "message": "<string>",
    "request_id": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

Unique key used to safely retry billable creation requests.

Required string length: 8 - 255

Body

application/json
prompt
string
required

Creative brief for the movie.

Required string length: 10 - 8000
duration_seconds
integer
default:30

Target final movie duration.

Required range: 5 <= x <= 120
aspect_ratio
enum<string>
Available options:
16:9,
9:16,
1:1,
4:5
style
string

Natural-language style direction.

Maximum string length: 1000
references
object[]
Maximum array length: 20
webhook_url
string<uri>

Optional HTTPS endpoint for lifecycle events.

Response

Movie job accepted.

id
string
required
Example:

"movie_abc123"

status
enum<string>
required
Available options:
queued,
planning,
generating,
rendering,
completed,
failed,
canceled
created_at
string<date-time>
required
updated_at
string<date-time>
required
prompt
string
duration_seconds
integer
aspect_ratio
enum<string>
Available options:
16:9,
9:16,
1:1,
4:5
progress
object
error
object