FaceSwap API

Build powerful, AI-driven video applications with the FaceSwap REST API. Integrate our hyper-realistic face-swapping engine directly into your own products, workflows, or creative pipelines.

Blazing Fast

Powered by our dedicated A100 GPU clusters.

Secure by Design

Bank-level encryption and strict data deletion policies.

Authentication

The FaceSwap API uses API keys to authenticate requests. You can manage your account in Settings.

Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Example Requestbash
curl https://api.faceswap.yumshu.com/v1/credits \
-H "Authorization: Bearer fs_live_abc123def456"

Create Swap Job

Initiates an asynchronous face swap job. Because video rendering takes time, this endpoint returns a job_id which you can use to poll for status or listen via webhooks.

POST/v1/jobs/swap

Body Parameters (multipart/form-data)

  • target_video
    Required

    The source video file (MP4, MOV, WebM). Max 100MB.

  • source_image
    Required

    The image containing the face you want to use (JPG, PNG, WebP). Max 10MB.

  • webhook_url
    Optional

    An endpoint on your server to receive the completed video URL via POST request once rendering finishes.

Response (202 Accepted)json
{
  "id": "job_9x8y7z6a5b4c",
  "status": "processing",
  "created_at": "2026-07-19T10:00:00Z",
  "estimated_time_seconds": 45
}

Check Job Status

Retrieves the current status of a specific job. If the job is complete, the response will include a temporary URL to download the processed video.

GET/v1/jobs/<job_id>
Response (200 OK)json
{
  "id": "job_9x8y7z6a5b4c",
  "status": "completed",
  "result_url": "https://cdn.faceswap.yumshu.com/results/9x8y7z6a5b4c.mp4",
  "expires_at": "2026-07-20T10:00:00Z"
}