string
required
The session ID the artifact belongs to
string
required
The artifact ID (the
artifact_id returned by Upload Artifact)Response
200 OK:
For an artifact backed by an external reference (for example a file sourced from a connected provider rather than uploaded bytes),
url may instead be a relative path to the download proxy, e.g. /api/v1/sessions/{session_id}/artifacts/{artifact_id}/download/. Treat the returned value as opaque and use it as-is.URL expiry and the refresh pattern
Presigned URLs default to a 4-hour validity window. A URL captured at upload time (or stored from an earlierexecute call) can expire if a session is long-running or resumed later. Two ways to handle this:
1
Carry the artifact_id, not just the URL
When you build a
file content block for /execute, include both source.url and source.artifact_id. The backend uses artifact_id to mint a fresh URL on its own if the one you sent has expired, so you don’t always need to call this endpoint manually.2
Refresh explicitly when needed
For
image content blocks (which carry no artifact_id field), or whenever you want a verified-fresh URL ahead of time, call this endpoint with the same artifact_id and substitute the returned url into your next request.This endpoint is read-only and never changes artifact state — you can call it as often as you like to re-check or refresh delivery URLs.