Artifact ID (art_...) of the artifact to archive.
Returns 204 No Content on success. The artifact is soft-deleted and no longer accessible through the API.
Retrieve raw artifact file content
Returns the raw binary content of the file stored for the specified artifact.
The response Content-Type header reflects the artifact file's MIME type, so
you can pipe the response body directly to disk or display it in a browser.
By default the endpoint serves the artifact's current version. Pass the
version parameter to retrieve a specific historical version. The authenticated
user must have read access to the artifact's owning team or organization.
Artifact ID (art_...) of the artifact whose content to retrieve.
Optionalparams: { version?: number }Query parameters.
Optionalversion?: numberVersion number to retrieve. Omit to return the artifact's current version.
Raw binary content of the artifact file. The Content-Type header is set to the artifact's stored MIME type.
Create an artifact
Creates a new artifact and stores its file content. A file payload is required;
supply it via the file.data (Base64-encoded by default), file.filename, and
file.mime_type fields. The artifact is scoped to the owner resolved from the
request body — either a team, a user, or an explicit system owner. When no
owner is supplied and the viewer is an authenticated user, the artifact
defaults to that user.
For company-readable snapshots, pass system: true and org. Organization
members can read these artifacts; organization admins and system viewers can
create them. Scripts may supply text directly using file.encoding: "utf8".
Optionally associate the artifact with an existing thread or agent by passing
thread or agent. Legacy requests that wrap fields in an artifact object
are still accepted.
Request body.
Optionalagent?: stringAgent ID (agt_...) to associate with the artifact.
Optionalartifact?: Record<string, unknown>Legacy wrapper object containing artifact attributes. Prefer top-level fields.
Optionaldescription?: stringOptional longer artifact description.
Optionalfile?: {File payload for the initial artifact version.
Optionalgroup_key?: string | nullOptional nonunique, case-sensitive grouping key, limited to 1024 UTF-8 bytes. Artifact ID remains identity.
Optionalidempotency_key?: stringOptional PR-evidence retry key, limited to 255 characters. Requires both team and thread. Matching app, team, thread, name, and key values return the original artifact.
Optionalname?: stringHuman-readable artifact name.
Optionalorg?: stringOrganization owning a system artifact. Requires an organization admin or system viewer.
Optionalpermissions?: Record<string, unknown>Optional artifact permissions map.
Optionalsystem?: booleanWhen true, create a system-owned artifact. Mutually exclusive with team and user.
Optionalteam?: stringTeam ID (tem_...) that should own the artifact. Mutually exclusive with user.
Optionalthread?: stringThread ID (thr_...) to associate with the artifact.
Optionaluser?: stringUser ID (usr_...) that should own the artifact. Defaults to the authenticated user when omitted and no team is supplied.
The newly created artifact.
Delete an artifact Permanently deletes the artifact and all associated file versions. This operation is irreversible — deleted artifacts and their file content cannot be recovered. The authenticated user must have write access to the artifact's owning team or organization. Returns 404 if the artifact does not exist or is not accessible to the caller.
Artifact ID (art_...) of the artifact to delete.
Empty body. HTTP 204 indicates the artifact and all associated file versions were permanently deleted.
Retrieve an artifact
Returns the artifact identified by artifact. The response includes metadata
such as name, description, version, and a signed file_url for downloading
the current file version. Image artifacts also include an image_source object
with display-ready metadata.
The authenticated user must have read access to the artifact's owning team or
organization. Returns 404 if the artifact does not exist or is not accessible
to the caller.
Artifact ID (art_...) of the artifact to retrieve.
The requested artifact, including its current version's file metadata and signed download URL.
Update an artifact
Updates the metadata and, optionally, the file content of an existing artifact.
This endpoint uses optimistic concurrency control: you must supply the artifact's
current version number as from_version. If another update has incremented the
version since you last fetched the artifact, the request returns 409.
To replace the artifact's file, include a nested file object with Base64
data, filename, and mime_type. Omitting file leaves the existing file
unchanged. The authenticated user or developer must have write access to the
artifact's owner.
Artifact ID (art_...) of the artifact to update.
Request body.
Optionaldescription?: stringNew description for the artifact. Omit to leave the existing description unchanged.
Optionalfile?: {Replacement file payload. Omit to leave the current file unchanged.
Optionalfile_content?: stringLegacy flat Base64 file content. Prefer file.data.
Optionalfile_content_type?: stringLegacy flat MIME type. Prefer file.mime_type.
Optionalfile_name?: stringLegacy flat filename. Prefer file.filename.
The artifact's current version number, used for optimistic concurrency control. Returns 409 if this value does not match the server's current version.
Optionalgroup_key?: string | nullNonunique grouping key, limited to 1024 UTF-8 bytes. Omit to preserve; null clears. Grouping-only updates do not increment the content version and from_version does not protect against concurrent metadata updates.
Optionalname?: stringNew display name for the artifact. Omit to leave the existing name unchanged.
The artifact after applying the update, reflecting the new version number and any changed metadata or file.
Archive an artifact Soft-deletes the artifact identified by
artifact. The artifact record is retained in storage but is no longer returned by the list or show endpoints. The authenticated user must have write access to the artifact's owning team or organization. Attempting to archive an artifact you do not own returns 403. Attempting to archive an artifact that does not exist or is already archived returns 404.