curl --request GET \
--url https://app.moonlakeai.com/api/v1/assets/{asset_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.moonlakeai.com/api/v1/assets/{asset_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.moonlakeai.com/api/v1/assets/{asset_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://app.moonlakeai.com/api/v1/assets/{asset_id}",
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://app.moonlakeai.com/api/v1/assets/{asset_id}"
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://app.moonlakeai.com/api/v1/assets/{asset_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.moonlakeai.com/api/v1/assets/{asset_id}")
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{
"id": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"config": {
"effort": "high",
"model_version": "standard"
},
"name": "<string>",
"project_id": "<string>",
"status_reason": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"result": {
"artifacts": [
{
"format": "usdz",
"download_url": "<string>"
}
]
},
"credits_charged": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Retrieve an asset generation
Fetches a generation’s current status and, once status is completed, its
downloadable result files.
curl --request GET \
--url https://app.moonlakeai.com/api/v1/assets/{asset_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.moonlakeai.com/api/v1/assets/{asset_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.moonlakeai.com/api/v1/assets/{asset_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://app.moonlakeai.com/api/v1/assets/{asset_id}",
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://app.moonlakeai.com/api/v1/assets/{asset_id}"
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://app.moonlakeai.com/api/v1/assets/{asset_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.moonlakeai.com/api/v1/assets/{asset_id}")
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{
"id": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"config": {
"effort": "high",
"model_version": "standard"
},
"name": "<string>",
"project_id": "<string>",
"status_reason": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"result": {
"artifacts": [
{
"format": "usdz",
"download_url": "<string>"
}
]
},
"credits_charged": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your API key, as a Bearer token: Authorization: Bearer <key>.
Path Parameters
The asset generation's id, from POST /assets's response.
Response
Successful Response
A single generation's full detail: everything in a list item plus its downloadable result and the credits charged.
The generation's unique identifier.
One of pending, processing, completed, failed, cancelled.
When the generation was submitted (UTC). Subtract from the current time to see how long the generation has been in the system.
The config this generation ran with, including any defaults applied when you omitted them.
Show child attributes
Show child attributes
The generation's display name.
The project this generation's assets live under.
Detailed, human-readable reason for the generation's current status. On failed it begins with a stable machine-readable code (the text before the first :) then detail, e.g. REFERENCE_FETCH_FAILED: could not fetch reference url (404); codes are REFERENCE_FETCH_FAILED, IMAGE_UNSUPPORTED_TYPE, TIMEOUT, DISPATCH_FAILED, MISSING_CREDENTIALS, NO_DELIVERABLE, THUMBNAIL_CREATE_FAILED, INTERNAL. May also carry a lifecycle note such as preempted. null when the status needs no elaboration.
When the generation reached its final status (UTC), set for completed, failed, and cancelled alike. Subtract created_at for the generation's end-to-end wall time, including queue wait. null while the generation is still pending or processing.
Downloadable output files, present only when status is completed.
Show child attributes
Show child attributes
Credits charged for this generation: the fixed price reserved at submission. A cancelled generation stays charged this price; cancelling is not a refund. Present on POST /assets, GET /assets/{id}, and POST /assets/{id}/cancel; null when nothing is currently charged, which covers a failed generation (refunded) and a generation that was never charged. List entries always omit it.