/v1/api/artifacts/{id}/download. This guide covers listing artifacts (workspace-wide and per-conversation), downloading an artifact’s raw bytes, downloading a whole conversation as a ZIP archive, and deleting an artifact.
All requests go to https://api.hq.zone and authenticate with a personal access token:
The endpoints in this guide carry these scopes: listing and downloading require
conversations:read; deleting requires conversations:write. The single-artifact byte download (/v1/api/artifacts/{id}/download) requires no specific scope — any authenticated caller in the artifact’s workspace may use it.List artifacts
There are two ways to list, depending on whether you want everything in the workspace or just one conversation’s files.List the whole workspace
List artifacts returns the delivered artifacts visible to you across the workspace, newest first and capped at 500.Each entry carries
id, name, content_type, size_bytes, caption (nullable), sensitive, created_at, conversation_id (null once detached), conversation_title (null once detached), and download_url:List one conversation's artifacts
List conversation artifacts returns just the files for a single conversation, in chronological order (oldest first).Each entry is a trimmer shape —
id, name, content_type, size_bytes, sensitive, created_at, and download_url:Download an artifact’s bytes
Both list responses give you adownload_url. Resolve it against the base URL and call Download an artifact. The response is raw binary — the artifact bytes streamed back with the original Content-Type and a Content-Disposition: attachment header carrying the filename — not JSON. Save it to a file rather than printing it.
Save the bytes with curl
Use A 200 streams the bytes; a
-o to write the response body straight to a file:404 means there is no such artifact in your workspace.The download is streamed, so large artifacts don’t have to fit in memory on the server. The
Content-Type you receive is whatever the artifact was published as (e.g. application/pdf, image/png).Download a conversation as a ZIP archive
To grab every artifact in a conversation at once, call Download conversation artifacts. The response is a rawapplication/zip stream, not JSON — save it to a file. Filenames that would collide inside the archive are de-duplicated automatically.
404 means the conversation has no artifacts to download.
Delete an artifact
Delete an artifact permanently removes an artifact’s row and its stored bytes./v1/api/artifacts/{id} (DELETE), while the byte download targets /v1/api/artifacts/{id}/download (GET). The delete response is JSON with the artifact id and a deleted flag:
403. A 404 means the artifact was not found in your workspace.
Deleting an artifact that is still attached to a conversation also removes it from that conversation’s transcript. The bytes are gone and the existing download link will then 404.