POST
/
v1
/
face-swap
curl --request POST \
  --url https://api.magichour.ai/v1/face-swap \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Face Swap video",
  "height": 960,
  "width": 512,
  "start_seconds": 0,
  "end_seconds": 15,
  "assets": {
    "image_file_path": "image/id/1234.png",
    "video_source": "file",
    "video_file_path": "api-assets/id/1234.mp4",
    "youtube_url": "<string>"
  }
}'
{
  "id": "clx7uu86w0a5qp55yxz315r6r",
  "estimated_frame_cost": 450
}

Authorizations

Authorization
string
header
required

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

Body

application/json
Body
start_seconds
number
required

The start time of the input video in seconds

Required range: x >= 0
Example:

0

end_seconds
number
required

The end time of the input video in seconds

Required range: x >= 0.1
Example:

15

assets
object
required

Provide the assets for face swap. For video, The video_source field determines whether video_file_path or youtube_url field is used

name
string
default:Face Swap - dateTime

The name of video

Example:

"Face Swap video"

height
integer

Used to determine the dimensions of the output video.

  • If height is provided, width will also be required. The larger value between width and height will be used to determine the maximum output resolution while maintaining the original aspect ratio.
  • If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.

Note: if the video's original resolution is less than the maximum, the video will not be resized.

See our pricing page for more details.

Required range: x >= 64
Example:

960

width
integer

Used to determine the dimensions of the output video.

  • If width is provided, height will also be required. The larger value between width and height will be used to determine the maximum output resolution while maintaining the original aspect ratio.
  • If both height and width are omitted, the video will be resized according to your subscription's maximum resolution, while preserving aspect ratio.

Note: if the video's original resolution is less than the maximum, the video will not be resized.

See our pricing page for more details.

Required range: x >= 64
Example:

512

Response

200
application/json

Success

id
string
required

Unique ID of the image. This value can be used in the get image project API to fetch additional details such as status

Example:

"clx7uu86w0a5qp55yxz315r6r"

estimated_frame_cost
integer
required

Estimated cost of the video in terms of number of frames needed to render the video. Frames will be adjusted when the video completes

Example:

450