Skip to main content

What is an Asset?

An Asset is a deliverable Octave hosts for you: a personalized microsite for a target account, an HTML one-pager, a rendered deck, or a downloadable file bundle. Instead of attaching files to emails or juggling external hosting, you publish once and share a link — and because Octave serves the asset, you also see exactly who opened it and when. Assets come in three types:

Privacy, publishing, and sharing

Two independent controls govern who can see an asset:
  • Privacy is an ordered ladder: only_me (owner only) → workspace (owner plus workspace members, the default) → public (anyone with the URL).
  • Status is the lifecycle: published (discoverable, the default) or unpublished (hidden, still readable by its id). Publishing does not make an asset public — only the privacy tier does that.
For anything between fully private and fully public, share links grant access to specific outsiders without changing the privacy tier. A share link carries an allowlist of exact emails and/or whole domains; viewers verify their address with a one-time code, so every visit is attributed to a real person. Links can expire on a schedule or live forever, and revoking one cuts off its viewers immediately. When someone without access lands on an asset, they can submit an access request. Requests queue in an inbox where you grant (mints a single-recipient share link) or dismiss them.

Versions

Every file update mints an immutable version. Rolling back is an instant pointer flip — the asset’s URL serves the chosen snapshot immediately, and newer versions stay restorable, so you can roll forward again the same way. Version numbers are never reused.

Analytics

Assets answer “how is it doing?” and “who opened it?”:
  • Stats — per-day unique visit and download counts.
  • Visitors — every code-verified viewer with open counts and first/last-seen times.
Both are owner-only: teammates can view a shared asset, but never its analytics.

Managing Assets via API

Creating an asset (the file upload itself) happens against the artifacts service with a per-user access token — see Publishing Assets via API for the full flow. Everything after creation is plain REST:
  • GET /api/v2/asset/list, GET /api/v2/asset/get — discover and inspect
  • POST /api/v2/asset/update — identifier, description, privacy, status, vanity slug
  • DELETE /api/v2/asset/delete — permanent removal
  • GET /api/v2/asset/stats, GET /api/v2/asset/visitors — analytics
  • GET /api/v2/asset/versions/list, POST /api/v2/asset/versions/restore, DELETE /api/v2/asset/versions/delete — version history and rollback
  • GET|POST|DELETE /api/v2/asset/shares/* — create, list, revoke, and edit share links
  • GET|POST /api/v2/asset/access-requests/* — the access-request inbox
  • POST /api/v2/asset/access-token/* — mint or rotate the upload token
The same operations are available to AI assistants through the MCP asset tools.