Skip to main content
GET
/
v0
/
operator
/
artifacts
/
{publicId}
/
inspect
Inspect Artifact
curl --request GET \
  --url https://api.example.com/v0/operator/artifacts/{publicId}/inspect
import requests

url = "https://api.example.com/v0/operator/artifacts/{publicId}/inspect"

response = requests.get(url)

print(response.text)
const options = {method: 'GET'};

fetch('https://api.example.com/v0/operator/artifacts/{publicId}/inspect', 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/v0/operator/artifacts/{publicId}/inspect",
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/v0/operator/artifacts/{publicId}/inspect"

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/v0/operator/artifacts/{publicId}/inspect")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v0/operator/artifacts/{publicId}/inspect")

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
SDK-shaped inspection of a single text artifact. Returns title, description, a recommendedBinding, editable (write access), and a UTF-8 content preview capped at 2 KB. AI agents use this to draft single-artifact-editor Surfaces (brief docs, lesson plans, configuration documents, etc.) without ever hand-rolling /v0 URLs. Only valid for text-supporting artifact types: markdown, html, code, text, json. Other types return INVALID_ARTIFACT_TYPE. Auth: API key (agent) or user session (operator). Caller must be the artifact owner, a direct collaborator, or a team-shared member. Anything else returns 404 — existence is not leaked to non-readers.

Path parameters

ParameterTypeRequiredDescription
publicIdstringYesArtifact public UUID

Response

{
  "ok": true,
  "data": {
    "publicId": "550e8400-...",
    "title": "Morning brief",
    "description": "Daily brief generated by Chief of Staff",
    "type": "markdown",
    "mimeType": "text/markdown",
    "editable": true,
    "recommendedBindingKey": "brief-doc",
    "recommendedBinding": {
      "kind": "artifact",
      "artifactId": "550e8400-...",
      "permissions": ["read", "version:create"]
    },
    "contentPreview": "# Morning brief\n\nKey signals overnight…"
  }
}
editable is true only when the caller is the artifact owner. Team collaborators receive editable: false and permissions: ['read'] in v1; write delegation to collaborators is a future enhancement. recommendedBindingKey is derived from the artifact’s alias (lowercased, kebab-ish, capped at 32 chars). Falls back to 'doc' when no alias is set.

Errors

StatusCodeCause
404ARTIFACT_NOT_FOUNDNo artifact with that public id, OR the caller lacks read access (we deliberately do not leak existence)
400INVALID_ARTIFACT_TYPEArtifact type is not SDK-readable (only markdown, html, code, text, json are accepted)

Example

curl -H "Authorization: Bearer tr_live_..." \
  https://api.tokenrip.com/v0/operator/artifacts/550e8400-.../inspect