---
title: "Create time-boxed signed GET URL"
method: POST
path: "/storage/v1/blob/{key}/sign"
tags: ["Storage"]
---

# Create time-boxed signed GET URL

`POST /storage/v1/blob/{key}/sign`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/storage/v1/blob/{key}/sign`
- Auth: API key in header `apikey`

Create a time-boxed S3 signed GET URL. Requires the apikey header to carry a project service_key or project_admin JWT.

## Path parameters

- `key` string, required

## Request body

- object
  - `ttl_seconds` integer

## Response `200`

{ signed_url, expires_at, expires_in }

- BlobSignedUrlResponse
  - `signed_url` string, uri, required
  - `expires_at` string, date-time, required
  - `expires_in` integer, required

## Other responses

- `400`: ttl_seconds out of range
- `403`: Requires service_role or project_admin key
- `404`: Blob not found

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
