Start here
Move an item to the Trash
DELETE
/v1/studio/projects/{project}/items/{item}on https://api.auray.ai/v1Move an item to the Trash, and answer it as it now is.
Move an item to the Trash, and answer it as it now is. Its files stay until the Trash is emptied or it is deleted from there. Takes a key holding studio:write — Account offers it unticked — or the desktop's own session key. Spends nothing.
#Authentication
Authorization: Bearer auray_sk_… — studio:write — Account offers it unticked; the desktop's session key holds it.
#Request
#Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
project | string | yes | |
item | string | yes |
#Example request
curl -X DELETE https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d \
-H "Authorization: Bearer $AURAY_API_KEY"const res = await fetch("https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d", {
method: "DELETE",
headers: { Authorization: `Bearer ${process.env.AURAY_API_KEY}` },
});
console.log(await res.json());import os, requests
r = requests.delete(
"https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
headers={"Authorization": f"Bearer {os.environ['AURAY_API_KEY']}"},
)
r.raise_for_status()
print(r.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("DELETE", "https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("AURAY_API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(res.Status, string(out))
}<?php
$ch = curl_init("https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("AURAY_API_KEY"),
],
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $response, PHP_EOL;require "net/http"
uri = URI("https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d")
req = Net::HTTP::Delete.new(uri)
req["Authorization"] = "Bearer #{ENV.fetch("AURAY_API_KEY")}"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts res.code, res.bodyimport java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"))
.header("Authorization", "Bearer " + System.getenv("AURAY_API_KEY"))
.DELETE()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}using System.Net.Http.Headers;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("AURAY_API_KEY"));
using var request = new HttpRequestMessage(HttpMethod.Delete, "https://api.auray.ai/v1/studio/projects/3f0c8a52-6a1d-4e8b-9c2d-7e5f4a3b2c1d/items/0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d");
using var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");#Responses
#200 OK
OK.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
object | string | yes | — | One of "item". |
id | string | yes | — | |
project_id | string | yes | — | |
folder_id | string | yes | — | The member's folder it is filed in; null at the project's top level. May be null. |
kind | string | yes | — | One of "image", "video", "audio", "model3d". |
name | string | yes | — | 0 to 120 characters. May be null. |
source | object | yes | — | |
source.product | string | yes | — | The product whose job made it, upload for a file from a disk, or film for a film exported from the project's own clips. One of "photo", "music", "video", "threed", "external", "upload", "film". |
source.job_id | string | yes | — | The job's id as GET /jobs/{id} reads it; null for an upload and for a film. May be null. |
source.asset | integer or string | yes | — | Which file of the job: a position, or a 3D artefact's name. May be null. |
files | object[] | yes | — | |
files[].role | string | yes | — | original as made or uploaded; thumbnail a smaller picture for a card; poster a frame of a clip or a view of a mesh. One of "original", "thumbnail", "poster". |
files[].url | string | yes | — | A URL. |
files[].expires_at | string | yes | — | |
files[].content_type | string | yes | — | |
files[].bytes | integer | yes | — | May be null. |
files[].width | integer | yes | — | May be null. |
files[].height | integer | yes | — | May be null. |
files[].duration_ms | integer | yes | — | May be null. |
prompt | string | yes | — | May be null. |
params | object | yes | — | The settings it was made with, cleaned of links and keys. May be null. |
model | object | yes | — | The model an item was made with: its address and id as GET /models lists it, and the name a person reads. All three are null for an upload. |
model.address | string | yes | — | May be null. |
model.id | string | yes | — | May be null. |
model.label | string | yes | — | May be null. |
director | object or null | yes | — | |
seed | integer | yes | — | May be null. |
ai_generated | boolean | yes | — | A model's output says so wherever it is shown, with attribution, its licence line. |
attribution | string | yes | — | May be null. |
review | string | yes | — | One of "none", "in_progress", "needs_review", "approved", "rejected". |
favorite | boolean | yes | — | Your own favourite. |
last_viewed_at | string | yes | — | When you last opened it (POST …/view); null for never. May be null. |
trim | object or null | yes | — | |
created_at | string | yes | — | |
updated_at | string | yes | — | |
trashed_at | string | yes | — | May be null. |
request_id | string | no | — | Mirrored in the X-Request-Id header. |
Headers:
| Header | Description |
|---|---|
RateLimit-Limit | Burst capacity. |
RateLimit-Remaining | |
RateLimit-Reset | Seconds until refill. |
X-RateLimit-Limit | |
X-RateLimit-Remaining | |
X-RateLimit-Reset | Unix seconds. The X- spelling is what client libraries read. |
X-Request-Id |
#401 Unauthorized
#403 Forbidden
#404 Not Found
#429 Too Many Requests
#500 Internal Server Error
#503 Service Unavailable
#Status codes
| Status | Meaning |
|---|---|
200 | OK. |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
429 | Too Many Requests |
500 | Internal Server Error |
503 | Service Unavailable |
Every refusal names its code, and every code is explained at Errors.