Share a dashboard
POST /artifacts with chat_id and a source_locator that identifies the dashboard. You can share a dashboard that was saved even if its run later failed. The response contains the artifact and its public url. It returns 201 when it creates a new snapshot, or 200 when it reuses an existing snapshot of the same dashboard.
Readers use GET /artifacts/public/{slug} and GET /artifacts/public/{slug}/dataframes/{dfId}. No token is needed.
DELETE /artifacts/{slug} takes the snapshot down. Copies someone already saved, or that a search engine cached, can’t be recalled.
Share a chat
POST /chat-shares publishes a read-only copy of a chat you own: its messages, working steps, dashboards, tool details and questions. It returns 201 when it creates a new snapshot, or 200 with your existing share when the chat hasn’t changed since you last shared it. Readers use GET /chat-shares/public/{slug}, plus its dataframes, plots and runtime-token endpoints, which need no token. The runtime token only lets the page show the shared copy; it can’t change the chat.
A shared chat shows that its files exist, but readers can’t download them. A portfolio review in a shared message shows its rows as they were when you shared the chat; readers can’t create the portfolio.
See the sharing endpoint reference for every field.