---
title: "GetArtifactDownloadURL"
method: POST
path: "/depot.ci.v1.CIService/GetArtifactDownloadURL"
tags: ["CIService"]
---

# GetArtifactDownloadURL

`POST /depot.ci.v1.CIService/GetArtifactDownloadURL`

## Request

- Base URL: `https://api.depot.dev`
- URL: `https://api.depot.dev/depot.ci.v1.CIService/GetArtifactDownloadURL`
- Auth: HTTP bearer

Returns a short-lived signed HTTPS URL for one artifact. The URL expires 5 minutes after issuance.

## Headers

- `Connect-Protocol-Version` 1, required: Define the version of the Connect protocol
- `Connect-Timeout-Ms` number: Define the timeout, in ms

## Request body

- DepotCiV1GetArtifactDownloadURLRequest
  - `artifactId` string, required: Unique identifier for the artifact. Returned by `ListArtifacts`.

## Response `200`

Success

- DepotCiV1GetArtifactDownloadURLResponse
  - `artifact` DepotCiV1Artifact
    - `artifactId` string: Unique identifier for the artifact. Pass it to `GetArtifactDownloadURL` to download the artifact.
    - `runId` string: Unique identifier for the parent CI run.
    - `workflowId` string: Unique identifier for the parent workflow.
    - `workflowPath` string: Parent workflow file path. For example, ".depot/workflows/ci.yml". Empty when the workflow YAML was passed via `workflowContent` in the `Run` request.
    - `jobId` string: Unique identifier for the parent job.
    - `jobKey` string: Parent job key from the workflow. For example, "build" or "test".
    - `attemptId` string: Unique identifier for the job attempt that produced the artifact.
    - `attempt` integer: Attempt number that produced the artifact, starting at 1.
    - `name` string: Artifact name as authored by the workflow.
    - `sizeBytes` union: Artifact size in bytes.
      - integer
      - string, int64
    - `createdAt` string: Artifact creation time, in RFC 3339 format.
  - `url` string: Signed HTTPS URL for the artifact content. Works with any standard HTTPS client and needs no extra authentication; anyone holding the URL can download the artifact until it expires.
  - `expiresAt` string: Signed URL expiration time, in RFC 3339 format. URLs expire 5 minutes after issuance. Artifact retention is unaffected.

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/depot/apis/depot-ci-api.md) - [All operations](https://skmtc.dev/depot/apis/depot-ci-api/llms.txt) - [OpenAPI document](https://skmtc.dev/depot/apis/depot-ci-api/revisions/6cf759b535b4?raw)
