Skip to main content
POST
/
api
/
v1
/
client
/
job
/
CreateTask
Image multi-face swap
curl --request POST \
  --url https://api.crun.ai/api/v1/client/job/CreateTask \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "model": "image-face-swap-multi",
  "callback_url": "https://your-domain.com/api/callback",
  "input": {
    "detect_id": "m1oZzqYp9dN",
    "image_url": "https://example.com/group-photo.png",
    "faces": [
      {
        "face_id": 0,
        "target": "https://example.com/new-face-0.jpg"
      },
      {
        "face_id": 1,
        "target": "https://example.com/detected-face-1.jpg"
      }
    ],
    "disable_safety_checker": false
  }
}
'
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "task_12345678"
  }
}

Overview

Image multi-face swap replaces one or more faces by face ID. Create a detection task first, query the detection result to get detect_id and the faces list, then use the faces array in the swap request to map each face to its target image.
The detect_id is valid for one hour. The media URL passed to the swap request must be the same image URL used during detection.

Process Flow

1

Create a detection task

Call the face detection endpoint with the image URL you want to swap.
2

Query detection result

Call the face detection result endpoint to get result.id as detect_id, and read face IDs and face images from result.faces.
3

Submit multi-face swap

Set the target image URL for each face_id in the faces array.

Request Example

{
  "model": "image-face-swap-multi",
  "callback_url": "https://your-domain.com/api/callback",
  "input": {
    "detect_id": "m1oZzqYp9dN",
    "image_url": "https://example.com/group-photo.png",
    "faces": [
      {
        "face_id": 0,
        "target": "https://example.com/new-face-0.jpg"
      },
      {
        "face_id": 1,
        "target": "https://example.com/detected-face-1.jpg"
      }
    ]
  }
}
If you do not want to replace a face, keep that face_id’s target as the detected face image URL returned by the previous step.

Parameters

detect_id
string
required
Detection result ID returned by data.result.id from the face detection result endpoint.
image_url
string
required
URL of the target image. It must match the media URL used for detection.
faces
array
required
An array describing which faces should be replaced. Each item contains face_id and target.
faces[].face_id
integer
required
The ID of the face from detection results.
faces[].target
string
required
The target face image URL. Use a new face image URL to replace the face, or keep the detected face image URL if you do not want to replace it.

Query Task Status

After submitting a task, use the unified query endpoint to check progress and retrieve results:

Get Task Info

Learn how to query task status and retrieve generation results
For production use, we recommend using callback_url to receive automatic notifications when the task completes, rather than polling the status endpoint.

Face Detection Result

Query detection status and retrieve detect_id with detected faces

Common API

Check credits and account usage

Authorizations

x-api-key
string
header
required

All APIs require authentication via API Key.

Get API Key:

  1. Visit API Key Management Page to get your API Key

Usage: Add to request header:

x-api-key: YOUR_API_KEY

Note:

  • Keep your API Key secure and do not share it with others
  • If you suspect your API Key has been compromised, reset it immediately in the management page

Body

application/json
model
enum<string>
required

The model name to use for this endpoint. Must be image-face-swap-multi.

Available options:
image-face-swap-multi
input
object
required

Input parameters for multi-face swap.

callback_url
string<uri>

Optional. Callback URL for receiving task completion notifications.

Example:

"https://your-domain.com/api/callback"

Response

Request successful

code
enum<integer>

Response status code

  • 200: Success - Request has been processed successfully
  • 401: Unauthorized - Authentication credentials are missing or invalid
  • 402: Insufficient Credits - Account does not have enough credits to perform the operation
  • 404: Not Found - The requested resource or endpoint does not exist
  • 422: Validation Error - The request parameters failed validation checks
  • 429: Rate Limited - Request limit has been exceeded for this resource
  • 455: Service Unavailable - System is currently undergoing maintenance
  • 500: Server Error - An unexpected error occurred while processing the request
  • 501: Generation Failed - Content generation task failed
  • 505: Feature Disabled - The requested feature is currently disabled
Available options:
200,
401,
402,
404,
422,
429,
455,
500,
501,
505
message
string

Response message, error description when failed

Example:

"success"

data
object