---
title: "Generate a signed URL for a GCS object"
method: POST
path: "/v0/storage/signed-url"
tags: ["Storage"]
---

# Generate a signed URL for a GCS object

`POST /v0/storage/signed-url`

Generates a temporary signed URL that provides time-limited access to a
Google Cloud Storage object without requiring authentication.

The signed URL can be used to download the object directly via HTTP GET.

## Request body

- SignedUrlRequest — Request body for generating a signed URL.
  - `gcs_uri` string, required — GCS URI of the object (e.g., gs://bucket-name/path/to/object)
  - `expiration_minutes` integer — URL expiration time in minutes (1-10080, default 60)
  - `download` boolean — If true, the signed URL will force download with Content-Disposition: attachment
  - `filename` string, nullable — Override the filename in Content-Disposition header (only used when download=True)

## Response `200`

Signed URL generated successfully

- SignedUrlResponse — Response body containing the signed URL.
  - `signed_url` string, required — Temporary signed URL for accessing the object
  - `expires_in_minutes` integer, required — URL expiration time in minutes

## Other responses

- `400` — Invalid GCS URI format
- `404` — Object not found in GCS
- `422` — Validation Error

---

[API](https://skmtc.net/unify/apis/unifyai-http-api-reference.md) · [All operations](https://skmtc.net/unify/apis/unifyai-http-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unify/unifyai-http-api-reference/revisions/900377f918b6/schema)
