curl --request GET \
--url 'https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY='import requests
url = "https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=', 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.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY="
req, _ := http.NewRequest("GET", url, nil)
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.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"name": "<string>",
"kind": "<string>",
"value": null,
"mime_type": "<string>",
"content_url": "<string>",
"auth_hint": {},
"x": {},
"y": {},
"points": [
"<unknown>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get Artifact In Experiment
Get one normalized artifact descriptor by name from an experiment.
Use this tool when the caller already knows artifact_name and needs its
typed descriptor, such as a scalar value, timeseries, or binary metadata.
The returned shape reflects MCP read-side normalization rather than a
round-trip of the original write-time artifact kind.
When to Use:
- Call this when the caller already knows the artifact key and needs the normalized MCP descriptor.
- Call this before downloading binary data, so the workflow can inspect
mime_typeorcontent_urlfirst.
Constraints:
- This endpoint reads one entry from the experiment metrics map and does not reconstruct the original write-time artifact contract.
- When the descriptor exposes
content_url, raw bytes still require a separate content request.
Notes:
- This endpoint does not stream raw bytes.
- Use
get_artifact_content_in_experimentwhen the artifact should be served as binary content.
Args: experiment_id: Parent experiment identifier. artifact_name: Artifact key within experiment metrics. user: Authenticated user resolved from the API key. db: Active database session.
Returns: One normalized artifact descriptor.
Raises:
HTTPException: Raised with 404 if the experiment is unavailable to
the caller or the artifact key is absent.
curl --request GET \
--url 'https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY='import requests
url = "https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=', 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.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY="
req, _ := http.NewRequest("GET", url, nil)
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.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/ai/{experiment_id}/artifact?HAIQU_API_KEY=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"name": "<string>",
"kind": "<string>",
"value": null,
"mime_type": "<string>",
"content_url": "<string>",
"auth_hint": {},
"x": {},
"y": {},
"points": [
"<unknown>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Path Parameters
Query Parameters
Response
Successful Response
Represent the normalized artifact shape returned by MCP read endpoints.
Attributes:
name: Artifact key in experiment metrics.
kind: Normalized read-side artifact category, typically value,
timeseries, or a base64-derived media family such as image.
value: Scalar or JSON-like artifact value.
mime_type: MIME type for binary or base64-backed artifacts.
content_url: Relative URL used to fetch raw bytes when needed.
auth_hint: Header hint used by clients when dereferencing
content_url.
x: X-axis metadata for timeseries payloads.
y: Y-axis metadata for timeseries payloads.
points: Ordered point list for timeseries payloads.