---
title: "Get Upload URL"
method: POST
path: "/filesystems/{filesystem_id}/upload-url"
tags: ["Filesystems"]
---

# Get Upload URL

`POST /filesystems/{filesystem_id}/upload-url`

Get a presigned URL for direct upload to GCS.

## Path parameters

- `filesystem_id` string, required

## Request body

- PresignedUrlRequest — Request model for presigned URL generation.
  - `expiration_seconds` integer — URL expiration time in seconds (default 1 hour, max 7 days).

## Response `200`

Successful Response

- PresignedUrlResponse — Response model for presigned URL operations.
  - `content_type` string, nullable — Content-Type header to use (required for PUT uploads).
  - `expires_at` string, date-time, required — When the presigned URL expires.
  - `instructions` string, required — Instructions for using the presigned URL.
  - `method` string, required — HTTP method to use: 'PUT' for upload, 'GET' for download.
  - `url` string, required — The presigned URL for direct GCS upload/download.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/terminaluse/apis/sb0-api.md) · [All operations](https://skmtc.net/terminaluse/apis/sb0-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/terminaluse/sb0-api/versions/f24a474dc415/schema)
