Publish

Publish an artifact

Changed on

Create a new artifact or push a new version of an existing one. Every files[].path must be a safe relative path (see FileEntry.path); an unsafe one returns 400 INVALID_PATH with a hint naming it.

post/v1/publish

Request

  • Base URL
    https://shareout.site
  • URL
    https://shareout.site/v1/publish
  • Auth
    HTTP bearer

Request body

namestring required

Display name.

slugstring

URL slug. Auto-generated if omitted.

entrypointstring
visibility'public' | 'workspace' | 'private'

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

mobile_htmlstring
access_policyobject

Row-level access policy for per-viewer data filtering: { version: 1, field, default, rules, queries? }. queries maps a name to { connection, provider, endpoint, params } — the Data Platform queries scoped viewers may run.

messagestring

Optional change note for this version, shown in the version history. When a new version is published without one, a short "what changed" note may be generated in the background (message_source: ai), unless the workspace turned off ai.version_summaries.

Example request

{
  "files": [
    {
      "path": "img/logo@2x.png"
    }
  ],
  "agent": {
    "model": "claude-sonnet-5"
  }
}

Response

Published. Check visibility — when it is more private than asked, visibility_downgraded is true and notice says why; tell the user.

visibility'public' | 'workspace' | 'private'

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

visibility_downgradedboolean

True when the page came out more private than requested (instance policy, account without a verified email, public-artifact cap, or a moderation hold). A publish with no visibility counts as asking for public.

requested_visibility'public'

Present with visibility_downgraded.

noticestring

Human-readable reason the publish was adjusted (governance, caps, email gate, instance policy).

Changes