List reusable assets
curl --request GET \
--url https://api.bitstudio.ai/assets \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bitstudio.ai/assets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bitstudio.ai/assets', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bitstudio.ai/assets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bitstudio.ai/assets")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bitstudio.ai/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"assets": [
{
"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
}
],
"page_info": {
"next_cursor": null,
"has_next_page": false,
"limit": 20
},
"total_count": 1,
"facets": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"cta": true,
"next_action": "<string>",
"current_plan": "<string>",
"user_message": "<string>",
"extra_context": "<string>"
}Reusable assets
List reusable assets
Set paginated=true to receive assets and page_info. Without it, the response is a bare array. type defaults to model. Set include_public=true to include shared library assets.
GET
/
assets
List reusable assets
curl --request GET \
--url https://api.bitstudio.ai/assets \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bitstudio.ai/assets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bitstudio.ai/assets', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bitstudio.ai/assets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bitstudio.ai/assets")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bitstudio.ai/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"assets": [
{
"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
}
],
"page_info": {
"next_cursor": null,
"has_next_page": false,
"limit": 20
},
"total_count": 1,
"facets": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"cta": true,
"next_action": "<string>",
"current_plan": "<string>",
"user_message": "<string>",
"extra_context": "<string>"
}Work with reusable assets.
Authorizations
Create an API key in Studio → account menu → API Keys. Keep it on your server.
Query Parameters
Asset type, such as model, outfit, or preset.
Enable cursor pagination.
Include shared library assets.
Return public assets only.
Page size in paginated mode.
Opaque page_info.next_cursor from the last response.
Name search in paginated mode.
Class filters in paginated mode.
Response
Set paginated=true to receive assets and page_info. Without it, the response is a bare array. type defaults to model. Set include_public=true to include shared library assets.