Skip to content

Update artifact metadata

PATCH
/v1/artifacts/{id}
curl --request PATCH \
--url https://shareout.site/v1/artifacts/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "visibility": "public", "allow_anon_write": true, "allow_anon_email": true, "allow_anon_agent": true, "allow_anon_collab": true, "social_title": "example", "social_description": "example", "social_image_url": "example" }'

Update visibility, name, social link-preview fields, or anonymous-access opt-ins. When instance policy holds public visibility the write still succeeds with 202 VISIBILITY_HELD (or MODERATION_HELD while an automated safety check runs) and the page stays private for now.

id
required
string

Artifact ID (e.g. art_abc123).

Media typeapplication/json
object
name
string
visibility

‘unlisted’ was retired 2026-07 — still accepted as input and treated as ‘public’.

string
Allowed values: public workspace private
allow_anon_write

Let anonymous visitors mutate json/tables/blobs/datasets on public artifacts.

boolean
allow_anon_email

Let anonymous visitors send contact-form email.

boolean
allow_anon_agent

Let anonymous visitors use the in-artifact AI chat agent.

boolean
allow_anon_collab

Let anonymous visitors join realtime collaboration.

boolean
social_title
string | null
social_description
string | null
social_image_url
string | null

Updated

Media typeapplication/json
object
id
string
name
string
slug
string
visibility

‘unlisted’ was retired 2026-07 — still accepted as input and treated as ‘public’.

string
Allowed values: public workspace private
moderation_status

Safety review state for open visibility.

string
Allowed values: approved pending blocked
allow_anon_write
boolean
allow_anon_email
boolean
allow_anon_agent
boolean
allow_anon_collab
boolean
url
string format: uri
thumbnail_url
string | null format: uri
workspace_id
string | null
artifact_type
string
paused
boolean
current_version

Version_no live on the production deployment (reflects rollback).

integer
live_message

Change note of the live version (detail endpoint only).

string | null
live_message_source

author when the publisher wrote live_message, ai when it was generated (detail endpoint only).

string | null
Allowed values: author ai
user_role

Caller’s role (list endpoint only).

string
can_edit

Caller may update the artifact and use the editor (detail endpoint only).

boolean
can_delete

Caller may move the artifact to Trash (detail endpoint only).

boolean
can_manage_comments

Caller may change the artifact’s comment settings, such as guest comments (owner; detail endpoint only).

boolean
pages

HTML pages of the live version, entrypoint first (detail endpoint only; present when there are 2+).

Array<string>
entrypoint

The live version’s entrypoint (detail endpoint only; present with pages).

string
is_favorite
boolean
created_at
string format: date-time
updated_at
string | null format: date-time
Example
{
"visibility": "public",
"moderation_status": "approved",
"live_message_source": "author"
}

Access denied

Media typeapplication/json
object
success
required
boolean
error
required

Human-readable message.

string
code
required

Machine-readable error code.

string
request_id

Correlation id (also the X-Request-Id header). Quote it in support tickets.

string
reason

Finer cause under code. For UNAUTHORIZED: missing, invalid, revoked or expired.

string
hint

What to do next, in plain words.

string
suggestion
string
param

The request field at fault.

string
docs

Doc page for this error.

string
redirect_url
string
support

Present on 5xx — how to reach a human.

object
how
string
include
Array<string>
Example
{
"success": false,
"support": {
"how": "POST /v1/support/tickets",
"include": [
"request_id"
]
}
}

Resource not found

Media typeapplication/json
object
success
required
boolean
error
required

Human-readable message.

string
code
required

Machine-readable error code.

string
request_id

Correlation id (also the X-Request-Id header). Quote it in support tickets.

string
reason

Finer cause under code. For UNAUTHORIZED: missing, invalid, revoked or expired.

string
hint

What to do next, in plain words.

string
suggestion
string
param

The request field at fault.

string
docs

Doc page for this error.

string
redirect_url
string
support

Present on 5xx — how to reach a human.

object
how
string
include
Array<string>
Example
{
"success": false,
"support": {
"how": "POST /v1/support/tickets",
"include": [
"request_id"
]
}
}