🔥 Midjourney Video API

Midjourney image-to-video capability

💡

The max job in progressing is 10, get more job in progress please contact us

Generate Video

POST {Domain}/midjourney/video/submit

💡

The length of generated video and the length of the continued video are currently fixed at 5s.

Generate four videos based on images and description words. And you can checkout the domain here
This endpoint is an asynchronous task.

Headers

NameTypeDescription
TT-API-KEY*StringYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
promptStringtruePrompt use to generate video
imageUrlStringtrueThe image address of the video start frame, which must be an image address that can be accessed
modeStringfalseSpeed mode, only support fast now, the default is fast
manualStringfalseVideo mode
low low movement
high high movement
Default is low
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get result

Example Request

import requests
 
endpoint = "https://api.ttapi.io/midjourney/video/submit"
 
headers = {
    "TT-API-KEY": your_key
}
 
data = {
    "prompt": "hyperrealistic album cover: Black sacral Ocean. Sunken prayer canoe. Ghost Canoe Horizon",
    "imageUrl": "https://unlimbot.hb.ru-msk.vkcloud-storage.ru/AQADJvYxG8ZHiEt-.jpeg",
    "mode": "fast",
    "manual": "high",
    "hookUrl": "https://webhook-test.com/1cb411db3bc4bfa7729c7df3ca2c1a5e"
}
 
response = requests.post(endpoint, headers=headers, json=data)
 
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
     }
}

Extend Video

POST {Domain}/midjourney/video/extend


Generate four videos based on the previous video result. And you can checkout the domain here
This endpoint is an asynchronous task.

Headers

NameTypeDescription
TT-API-KEY*StringYour API Key in TT API used for request authorization

Request Body

NameTypeRequiredDescription
jobIdStringtrueThe jobId in prev request
indexinttrueSelect the extend video
Select a continuation from the four videos with the previous task
0 represents the first, 1 represents the second, and so on
The optional value range is 0-3
manualStringfalseVideo mode
low low movement
high high movement
default is low
animateModeStringfalseAnimation Mode
can use auto manual default is auto
hookUrlStringfalseSend a request to the address for task completion or failed notification. If not set you need to request fetch endpoint to get result

Example Request

import requests
 
endpoint = "https://api.ttapi.io/midjourney/video/extend"
 
headers = {
    "TT-API-KEY": your_key
}
 
data = {
    "jobId": "9fd71109-f508-4f0e-a26c-d776d6b38b58",
    "index": 0
}
 
response = requests.post(endpoint, headers=headers, json=data)
 
print(response.status_code)
print(response.json())

Example Response

{
    "status": "SUCCESS",
    "message": "",
    "data": {
        "jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
    }
}

Fetch Job

GET {Domain}/midjourney/video/fetch


to fetch the generate and extend video job result, free endpoint
And you can checkout the domain here

Headers

NameTypeDescription
TT-API-KEY*StringYour API Key in TT API used for request authorization

Request Body / Query params

NameTypeRequiredDescription
jobIdStringtrueThe jobId in prev request

Example Request

import requests
endpoint = "https://api.ttapi.io/midjourney/video/fetch"
headers = {
    "TT-API-KEY": your_key
}
data = {
    "jobId": "afa774a3-1aee-5aba-4510-14818d6875e4",
}
response = requests.post(endpoint, headers=headers, json=data)
 
print(response.status_code)
print(response.json())

Example Response

The result returned by the fetch endpoint has the same data structure as the result returned by hookUrl, as follows

Async callback & fetch json

{
    "status": "SUCCESS",
    "message": "success",
    "jobId": "943583cb-08f4-4077-ad1e-f1bfc6c1191a",
    "data": {
        "action": "generate",
        "jobId": "943583cb-08f4-4077-ad1e-f1bfc6c1191a",
        "progress": "100",
        "prompt": "hyperrealistic album cover: Black sacral Ocean. Sunken prayer canoe. Ghost Canoe Horizon",
        "quota": "30",
        "videos": [
            "https://cdn.midjourney.com/video/780b1227-227a-418c-998e-3eb90eb4824a/0.mp4",
            "https://cdn.midjourney.com/video/780b1227-227a-418c-998e-3eb90eb4824a/1.mp4",
            "https://cdn.midjourney.com/video/780b1227-227a-418c-998e-3eb90eb4824a/2.mp4",
            "https://cdn.midjourney.com/video/780b1227-227a-418c-998e-3eb90eb4824a/3.mp4"
        ],
        "hookUrl": "https://webhook-test.com/1cb411db3bc4bfa7729c7df3ca2c1a5e"
    }
}