Get an artifact
Returns an artifact's metadata with a fresh signed URL (valid for 24 hours). The URL needs no credentials and is safe to embed: it works for anyone who has it until `url_expires_at`, and the bytes are always served with `Content-Security-Policy: sandbox` (URL format: `renderGetArtifactContent`).
GET
/v1/render/artifacts/{artifact_id}
Returns an artifact's metadata with a fresh signed URL (valid for 24 hours). The URL needs no credentials and
is safe to embed: it works for anyone who has it until `url_expires_at`, and the bytes are always served with
`Content-Security-Policy: sandbox` (URL format: `renderGetArtifactContent`).
Authentication
Bearer Token (b3os_sk_ API key or b3os_pat_ token) API Key (cookie: __Host-b3os_session)
Path Parameters
artifact_id
string
required
path
The artifact ID (`art_…`).
Example:
"art_01m5t41x77fg4pdnm2ryq73wgs"Responses
200
The artifact.
application/jsonid
string
REQUIRED
object
string
REQUIRED
Enum:
artifactkind
string
REQUIRED
Enum:
image, mp4, gif, poster, vtt, srtcontent_type
string
REQUIRED
bytes
integer
width
integer
height
integer
duration_ms
integer
url
string (uri)
Signed URL on `usercontent.b3os.org`, `https://usercontent.b3os.org/a/<id in host-safe form>/<name>?node=&exp=&sig=`:
an Ed25519 signature by the node's key over the method, path and expiry (`renderGetArtifactContent`), no
cookies. It works as soon as the artifact is reported, while the upload to storage is still finishing.
url_expires_at
string (date-time)
created_at
string (date-time)
expires_at
string (date-time)
When the artifact is deleted.
400
The request failed validation (`invalid_request`, `invalid_url`).
401
Missing, malformed, expired or revoked credentials (`unauthorized`).
403
Authenticated but not allowed (`forbidden`, `egress_denied`).
404
No such artifact in this project (`artifact_not_found`).
410
The artifact was deleted at the end of its retention period (`artifact_expired`).
429
A rate, concurrency or quota limit applies (`rate_limited`, `concurrency_limited`, `quota_exceeded`).
500
Something failed inside B3OS (`internal`). Retry with backoff.
503
The node or the product is not available right now (`node_unavailable`, `product_unavailable`, `capacity_unavailable`).
curl -X GET 'https://beta-api.b3os.org/v1/render/artifacts/art_01m5t41x77fg4pdnm2ryq73wgs' \ -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/render/artifacts/art_01m5t41x77fg4pdnm2ryq73wgs', { method: 'GET', headers: { "Authorization": "Bearer YOUR_API_TOKEN" }});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/render/artifacts/art_01m5t41x77fg4pdnm2ryq73wgs', headers=headers)print(response.json())
200
Response
{ "id": "art_01m5t3nhzatn0b868d7pf7fh82", "object": "artifact", "kind": "poster", "content_type": "image/jpeg", "bytes": 98211, "width": 1920, "height": 1080, "url": "https://usercontent.b3os.org/a/art-01m5t3nhzatn0b868d7pf7fh82/poster.jpg?node=n1&exp=1793040604&sig=ANijY83svvEUxb4X2Zo7fu8iEpsYJFSH_nPx7MpqcaW_EteYq9LYyOaOJLge5-pAhk1iNx60d6rBaBnJftlABw", "url_expires_at": "2026-10-26T18:50:04.000Z", "created_at": "2026-10-25T18:50:03.900Z", "expires_at": "2026-11-01T18:50:03.900Z"}
API Playground
Try this endpoint
GET
/v1/render/artifacts/{artifact_id}