Skip to main content
Upload a file to Skyvern’s storage. Returns a presigned URL and S3 URI you can reference in tasks and workflows.
with open("data.csv", "rb") as f:
    upload = await client.upload_file(file=f)
    print(upload.s3uri)          # s3://skyvern-uploads/...
    print(upload.presigned_url)  # https://...signed download URL

Parameters

ParameterTypeRequiredDescription
fileFile (Python) / File | ReadStream | Blob (TS)YesThe file to upload.
request_optionsRequestOptionsNoPer-request configuration (see below).

Returns UploadFileResponse

FieldTypeDescription
s3uri (Python) / s3_uri (TS)strS3 URI for the uploaded file.
presigned_urlstrPre-signed download URL.

Request options

Override timeout, retries, or headers for this call by passing request_options (Python) or a second options argument (TypeScript).
from skyvern.client.core import RequestOptions

request_options=RequestOptions(
    timeout_in_seconds=120,
    max_retries=3,
    additional_headers={"x-custom-header": "value"},
)
Option (Python)Option (TypeScript)TypeDescription
timeout_in_secondstimeoutInSecondsint / numberHTTP timeout in seconds.
max_retriesmaxRetriesint / numberRetry count.
additional_headersheadersdict / Record<string, string>Extra headers.
additional_query_parameters-dictExtra query parameters.
additional_body_parameters-dictExtra body parameters.
-abortSignalAbortSignalSignal to cancel the request.
-apiKeystringOverride API key.