Skip to main content
POST
cURL
This is the Grok Video API keyframe to video endpoint. Pin keyframe images at chosen moments inside the video using keyframes. The model generates transitions between your keyframe anchors. It can be combined with first_frame and last_frame:
  • First frame + keyframes: Specify the opening and interior keyframes
  • Keyframes + last frame: Specify interior keyframes and the closing frame
  • First frame + keyframes + last frame: Full control over the opening, interior keyframes, and closing frame
Supported by grok-imagine-video-1.5-fast and grok-imagine-video-1.5.
Warning: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges.
Keyframe limits: Maximum 4 keyframes per request; timestamp_s must be greater than 0 and less than the video duration; keyframes must be at least 1/3 second apart.

Authorizations

TT-API-KEY
string
header
required

You can obtain your API key from the TTAPI Dashboard.

Body

application/json

Keyframe to video request parameters

prompt
string
required

Prompt to guide motion and camera work between keyframes. Optional.

keyframes
object[]
required

Array of keyframes. Each element contains an image URL and a corresponding timestamp in seconds. Maximum 4 keyframes. timestamp_s must be greater than 0 and less than the video duration; keyframes must be at least 1/3 second apart.

Maximum array length: 4
model
enum<string>
default:grok-imagine-video-1.5-fast

Model name.

Available options:
grok-imagine-video-1.5-fast,
grok-imagine-video-1.5
Example:

"grok-imagine-video-1.5-fast"

aspect_ratio
enum<string>
default:16:9

Video aspect ratio

Available options:
2:3,
3:2,
1:1,
9:16,
16:9
video_length
string
default:10

Video duration in seconds. grok-imagine-video-1.5-fast range: 6 to 30 (6s and 10s are standard durations; 7s and 11s are not supported); grok-imagine-video-1.5 range: 1 to 15.

resolution_name
enum<string>
default:720p

Output resolution. Available options: 480p, 720p.

Available options:
480p,
720p,
1080p
first_frame
string

First frame image URL. Used to strictly specify the first frame of the video. Can be combined with keyframes and last_frame.

last_frame
string

Last frame image URL. Used to strictly specify the last frame of the video. Can be combined with keyframes and first_frame. When first_frame and last_frame use the same image, it creates a loop effect.

hook_url
string

Callback URL address. When the task completes or fails, notifications will be sent to this address. The notification data structure is consistent with the fetch structure [blocked]. If not set, you need to call the fetch endpoint [blocked] to query the result

Example:

"https://example.com/callback"

Response

Request successful

status
string
required
Example:

"SUCCESS"

message
string
required
Example:

"success"

data
object
required
Example:
Last modified on October 11, 2026