Create a reference set
Viewing v2— current version
curl --request POST \ --url https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "<string>", "category": "general", "file_ids": [ "<uuid>" ], "description": "<string>", "cover_file_ids": [ "<uuid>" ]}'import requests
url = "https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets"
payload = { "name": "<string>", "category": "general", "file_ids": ["<uuid>"], "description": "<string>", "cover_file_ids": ["<uuid>"]}headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = 'https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"<string>","category":"general","file_ids":["<uuid>"],"description":"<string>","cover_file_ids":["<uuid>"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"category\": \"general\",\n \"file_ids\": [\n \"<uuid>\"\n ],\n \"description\": \"<string>\",\n \"cover_file_ids\": [\n \"<uuid>\"\n ]\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(res) fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets", 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([ 'name' => '<string>', 'category' => 'general', 'file_ids' => [ '<uuid>' ], 'description' => '<string>', 'cover_file_ids' => [ '<uuid>' ] ]), 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;}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, "{\n \"name\": \"<string>\",\n \"category\": \"general\",\n \"file_ids\": [\n \"<uuid>\"\n ],\n \"description\": \"<string>\",\n \"cover_file_ids\": [\n \"<uuid>\"\n ]\n}");Request request = new Request.Builder() .url("https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets") .post(body) .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json") .build();
Response response = client.newCall(request).execute();require 'uri'require 'net/http'
url = URI("https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets")
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 \"name\": \"<string>\",\n \"category\": \"general\",\n \"file_ids\": [\n \"<uuid>\"\n ],\n \"description\": \"<string>\",\n \"cover_file_ids\": [\n \"<uuid>\"\n ]\n}"
response = http.request(request)puts response.read_bodyvar client = new RestClient("https://api.app.layer.ai/api/v2/workspaces/:workspace_id/reference-sets");var request = new RestRequest("", Method.Post);request.AddHeader("Authorization", "Bearer <token>");request.AddHeader("Content-Type", "application/json");request.AddParameter("application/json", "{\n \"name\": \"<string>\",\n \"category\": \"general\",\n \"file_ids\": [\n \"<uuid>\"\n ],\n \"description\": \"<string>\",\n \"cover_file_ids\": [\n \"<uuid>\"\n ]\n}", ParameterType.RequestBody);var response = client.Execute(request);Unchanged from v1. This endpoint’s documented request and response schemas are identical in v1 and v2 — change the
/v1prefix to/v2. Schema equality is not a promise about behaviour, so keep your usual smoke tests.
Create a reference set (a curated collection of already-uploaded files) that can then be trained into a custom style/LoRA. Upload files first via the Files API, then pass their IDs here.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Id of the workspace that owns the resource.
Id of the workspace that owns the resource.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Display name for the reference set.
Training category: general (overall aesthetic), character (person/creature), object (specific item), scene (environment), or effect (visual effect).
Ordered image or video file IDs to include. Must belong to the workspace.
Responses
Section titled “Responses”Successful Response
object
ID of the created reference set (train this with a training run).
Number of input files added to the reference set.
Number of cover thumbnails set on the reference set.
Files from file_ids that were not included, each with the reason.
object
Why this file_id was not added: not_found (no such file), foreign_workspace (belongs to another workspace), already_member (already in the set), or duplicate_in_request (listed more than once in this call).
Example
{ "skipped": [ { "reason": "not_found" } ]}Unauthenticated — missing or invalid Bearer token.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Forbidden — insufficient permissions.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Resource not found.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Invalid input parameters.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Rate limited — too many concurrent requests.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Internal server error.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}