curl --request PUT \
--url https://api.bitstudio.ai/assets/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "outfit",
"alias": "Blue striped shirt — long sleeve"
}
'import requests
url = "https://api.bitstudio.ai/assets/{id}"
payload = {
"type": "outfit",
"alias": "Blue striped shirt — long sleeve"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: 'outfit', alias: 'Blue striped shirt — long sleeve'})
};
fetch('https://api.bitstudio.ai/assets/{id}', 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.bitstudio.ai/assets/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'outfit',
'alias' => 'Blue striped shirt — long sleeve'
]),
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.bitstudio.ai/assets/{id}"
payload := strings.NewReader("{\n \"type\": \"outfit\",\n \"alias\": \"Blue striped shirt — long sleeve\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.bitstudio.ai/assets/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"outfit\",\n \"alias\": \"Blue striped shirt — long sleeve\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bitstudio.ai/assets/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"outfit\",\n \"alias\": \"Blue striped shirt — long sleeve\"\n}"
response = http.request(request)
puts response.read_body{
"id": "22222222-2222-4222-8222-222222222222",
"type": "outfit",
"alias": "Blue striped shirt",
"sku": "SHIRT-BLUE-01",
"display_image": "https://media.bitstudio.ai/public/homepage/2026-09/bitstudio-shirt-reference-front-v1-77caf2ea41d661e4.webp",
"public": false
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"cta": true,
"next_action": "<string>",
"current_plan": "<string>",
"user_message": "<string>",
"extra_context": "<string>"
}Update a reusable asset
Update an accessible asset’s metadata. Include the existing type. Upload reference photos separately.
curl --request PUT \
--url https://api.bitstudio.ai/assets/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "outfit",
"alias": "Blue striped shirt — long sleeve"
}
'import requests
url = "https://api.bitstudio.ai/assets/{id}"
payload = {
"type": "outfit",
"alias": "Blue striped shirt — long sleeve"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: 'outfit', alias: 'Blue striped shirt — long sleeve'})
};
fetch('https://api.bitstudio.ai/assets/{id}', 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.bitstudio.ai/assets/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'outfit',
'alias' => 'Blue striped shirt — long sleeve'
]),
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.bitstudio.ai/assets/{id}"
payload := strings.NewReader("{\n \"type\": \"outfit\",\n \"alias\": \"Blue striped shirt — long sleeve\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.bitstudio.ai/assets/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"outfit\",\n \"alias\": \"Blue striped shirt — long sleeve\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bitstudio.ai/assets/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"outfit\",\n \"alias\": \"Blue striped shirt — long sleeve\"\n}"
response = http.request(request)
puts response.read_body{
"id": "22222222-2222-4222-8222-222222222222",
"type": "outfit",
"alias": "Blue striped shirt",
"sku": "SHIRT-BLUE-01",
"display_image": "https://media.bitstudio.ai/public/homepage/2026-09/bitstudio-shirt-reference-front-v1-77caf2ea41d661e4.webp",
"public": false
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"cta": true,
"next_action": "<string>",
"current_plan": "<string>",
"user_message": "<string>",
"extra_context": "<string>"
}Authorizations
Create an API key in Studio → account menu → API Keys. Keep it on your server.
Path Parameters
Image or asset ID from a previous response. Resource ID.
Body
Use model for an avatar, outfit for a product, or preset for a reusable visual setup.
model, outfit, preset, pose, set, style, shoot Human-readable name.
50Product identifier for wardrobe items.
For presets: human_studio, human_location, ghost_mannequin, flat_lay, or product_packshot.
Description or reusable prompt.
Optional descriptive text.
Thumbnail URL only. Also upload or link reference images before generating.
Existing tag IDs.
Resource ID.
Response
Update an accessible asset’s metadata. Include the existing type. Upload reference photos separately.
Resource ID.
model (avatar), outfit, preset, pose, set, style, or shoot.
Display name.
Your product identifier.
Category within the asset type.
Description used to guide generation.
Thumbnail URL. A thumbnail alone is not a generation reference.
Whether the asset belongs to the shared public library.