Skip to main content
POST
/
filesystems
/
{filesystem_id}
/
upload-url
Get Upload URL
curl --request POST \
  --url https://api.example.com/filesystems/{filesystem_id}/upload-url \
  --header 'Content-Type: application/json' \
  --data '
{
  "expiration_seconds": 3600
}
'
{
  "expires_at": "2023-11-07T05:31:56Z",
  "instructions": "<string>",
  "method": "<string>",
  "url": "<string>",
  "content_type": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.terminaluse.com/llms.txt

Use this file to discover all available pages before exploring further.

This endpoint returns a presigned URL for uploading the entire filesystem archive directly to storage. Use it when you already have a prepared compressed archive, typically tar.zst, and want to upload that archive without proxying the bytes through the Terminal Use API.

What This Endpoint Is For

  • whole-filesystem upload
  • direct-to-storage archive transfer
  • flows implemented by tu fs push and the Python ADK sync internals

What This Endpoint Is Not For

  • uploading one file by relative path
  • replacing uploadFile
  • a dedicated CLI command
For one-file writes, use Upload File. For a higher-level CLI experience, use tu fs push.

Path Parameters

filesystem_id
string
required

Body

application/json

Request model for presigned URL generation.

expiration_seconds
integer
default:3600

URL expiration time in seconds (default 1 hour, max 7 days).

Required range: 60 <= x <= 604800

Response

Successful Response

Response model for presigned URL operations.

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.

content_type
string | null

Content-Type header to use (required for PUT uploads).