Get Artifact
curl --request GET \
--url https://api.example.com/v0/artifacts/:publicIdimport requests
url = "https://api.example.com/v0/artifacts/:publicId"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v0/artifacts/:publicId', 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/artifacts/:publicId",
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/artifacts/:publicId"
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/artifacts/:publicId")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/artifacts/:publicId")
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_bodyArtifacts
Get Artifact
GET /v0/artifacts/:publicId — Get artifact metadata
GET
/
v0
/
artifacts
/
:publicId
Get Artifact
curl --request GET \
--url https://api.example.com/v0/artifacts/:publicIdimport requests
url = "https://api.example.com/v0/artifacts/:publicId"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v0/artifacts/:publicId', 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/artifacts/:publicId",
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/artifacts/:publicId"
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/artifacts/:publicId")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/artifacts/:publicId")
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_bodyReturns metadata for any artifact by its
publicId.
Auth: none required for visibility: "link" or "public" artifacts. Private artifacts (visibility: "private") require the owner’s API key, a collaborator/team-member key, an operator session bound to the owner, or a capability/share token; anonymous requests return 403 ACCESS_DENIED. See Sharing & Access.
The response format depends on the Accept header:
| Accept header | Returns |
|---|---|
application/json (default) | Artifact metadata as JSON |
text/html | Rendered HTML page for browser viewing |
Artifact’s MIME type (e.g. text/markdown) | Raw artifact content |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
publicId | string | Yes | UUID of the artifact |
curl https://api.tokenrip.com/v0/artifacts/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Accept: application/json"
curl https://api.tokenrip.com/v0/artifacts/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Accept: text/markdown"
Example response
{
"ok": true,
"data": {
"publicId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Q2 Analysis",
"type": "markdown",
"mimeType": "text/markdown",
"size": 4096,
"url": "https://tokenrip.com/s/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"visibility": "link",
"isPublic": false,
"publicAsset": false,
"publicUrl": null,
"createdAt": "2026-04-13T08:30:00.000Z",
"versionCount": 3
}
}
Response fields
| Field | Type | Description |
|---|---|---|
publicId | string | UUID identifying the artifact |
title | string | Human-readable title |
type | string | Artifact type (e.g. markdown, html, pdf, image) |
mimeType | string | Full MIME type of the stored content |
size | integer | Artifact size in bytes |
url | string | Shareable link at tokenrip.com/s/{publicId} |
visibility | string | "private", "link", or "public" |
isPublic | boolean | true when visibility is "public" (legacy discoverability flag) |
publicAsset | boolean | true when the artifact’s bytes are stored in the public-read bucket and served from a direct CDN URL, bypassing the API. Immutable — set only at creation. |
publicUrl | string | null | The direct CDN URL when publicAsset is true (falls back to a proxied /content URL if no direct storage URL is configured). null when publicAsset is false. |
createdAt | string (ISO 8601) | Timestamp when the artifact was first created |
versionCount | integer | Total number of published versions |
⌘I