Get inference run
curl --request GET \
--url https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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{
"inference_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"poll_interval_seconds": 123,
"completed_at": "2023-11-07T05:31:56Z",
"outputs": [
{
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"content_type": "<string>",
"preview_url": "<string>",
"width": 123,
"height": 123,
"duration_seconds": 123,
"file_size_bytes": 123
}
],
"actual_price_creative_units": 123,
"error": "<string>",
"error_code": "<string>"
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}Inferences
Get inference run
Get the status and results of an inference run.
GET
/
v1
/
workspaces
/
{workspace_id}
/
inferences
/
{inference_id}
Get inference run
curl --request GET \
--url https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.app.layer.ai/api/v1/workspaces/{workspace_id}/inferences/{inference_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{
"inference_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"poll_interval_seconds": 123,
"completed_at": "2023-11-07T05:31:56Z",
"outputs": [
{
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"content_type": "<string>",
"preview_url": "<string>",
"width": 123,
"height": 123,
"duration_seconds": 123,
"file_size_bytes": 123
}
],
"actual_price_creative_units": 123,
"error": "<string>",
"error_code": "<string>"
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}Authorizations
Personal Access Token or OAuth2 JWT. Create a PAT at app.layer.ai → Settings → Personal Access Tokens.
Response
Successful Response
Unique identifier for this forge run.
Current status: in_progress, complete, failed, cancelled, or deleted.
Available options:
in_progress, complete, failed, cancelled, deleted Suggested polling interval in seconds. Present while IN_PROGRESS.
Completion timestamp. Present only on COMPLETE.
Generated assets. Present only on COMPLETE.
Show child attributes
Show child attributes
Actual Creative Units charged. Present only on COMPLETE.
Error message. Present only on FAILED.
Machine-readable error code. Present only on FAILED.
⌘I