curl --request POST \
--url https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"actorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digitalSampleVariationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"accountToken": "<string>"
}
'import requests
url = "https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps"
payload = {
"actorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digitalSampleVariationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"accountToken": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
actorId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
digitalSampleVariationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
accountToken: '<string>'
})
};
fetch('https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'actorId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'digitalSampleVariationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'accountToken' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps"
payload := strings.NewReader("{\n \"actorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"digitalSampleVariationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"accountToken\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"actorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"digitalSampleVariationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"accountToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"actorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"digitalSampleVariationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"accountToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyCreate and queue insta swap
Auto-queues a render task to replace the sample seed’s identity with the specified custom actor. Automatically processes and charges 1 credit. Pass digitalSampleVariationId to render an assembled variation cut; use null for the original seed when eligible (≤30s and enabled).
curl --request POST \
--url https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"actorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digitalSampleVariationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"accountToken": "<string>"
}
'import requests
url = "https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps"
payload = {
"actorId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"digitalSampleVariationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"accountToken": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
actorId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
digitalSampleVariationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
accountToken: '<string>'
})
};
fetch('https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'actorId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'digitalSampleVariationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'accountToken' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps"
payload := strings.NewReader("{\n \"actorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"digitalSampleVariationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"accountToken\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"actorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"digitalSampleVariationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"accountToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yourproducthere.ai/v1/digital-samples/{id}/insta-swaps")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"actorId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"digitalSampleVariationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"accountToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Your organization API key starting with yph_sk_live_…
Path Parameters
Body
The unique identifier of the actor to replace the seed face/body with.
Assembled variation id for the render seed. null = original seed when ≤30s and enabled by the brand.
Integrator token for this swap (creator or brand). Defaults to the actor's accountToken when omitted.
When equal to the parent sample's accountToken, the swap is brand self-service (isBrandSelfService: true on the response).
128Response
Swap task queued successfully
Insta swap render job. accountToken on the swap is the integrator id for whoever initiated it (creator or brand).
sampleAccountToken and productToken are read from the parent digital sample.
When isBrandSelfService is true, accountToken equals sampleAccountToken (brand-owned production, not a creator application).
Show child attributes
Show child attributes
{ "id": "e4e18374-f119-4b11-a8a1-d6a2bc38e41a", "orgId": "org_123abc", "digitalSampleId": "d3b07384-d113-4956-a5e2-416b2a41bc3c", "actorId": "a1c02874-e339-4d11-8fa1-e6a2bc38c41d", "accountToken": "creator_42", "sampleAccountToken": "brand_nike", "productToken": "sku_air_max_90", "isBrandSelfService": false, "status": "COMPLETED", "triggerSource": "api", "renderingMs": 4500, "startedAt": "2026-06-20T12:10:00Z", "finishedAt": "2026-06-20T12:10:04.500Z", "signedResultVideoUrl": "https://r2.yourproducthere.ai/results/completed_video.mp4?token=sig", "createdAt": "2026-06-20T12:09:59Z", "updatedAt": "2026-06-20T12:10:05Z" }
