---
title: "Update import storage"
method: PATCH
path: "/api/storages/s3/{id}"
tags: ["Storage: S3"]
---

# Update import storage

`PATCH /api/storages/s3/{id}`

Update a specific S3 import storage connection.

## Path parameters

- `id` integer, required

## Request body

- PatchedS3ImportStorageWriteRequest
  - `aws_access_key_id` string, nullable — AWS_ACCESS_KEY_ID
  - `aws_secret_access_key` string, nullable — AWS_SECRET_ACCESS_KEY
  - `aws_session_token` string, nullable — AWS_SESSION_TOKEN
  - `aws_sse_kms_key_id` string, nullable — AWS SSE KMS Key ID
  - `bucket` string, nullable — S3 bucket name
  - `description` string, nullable — Cloud storage description
  - `prefix` string, nullable — S3 bucket prefix
  - `presign` boolean
  - `presign_ttl` integer — Presigned URLs TTL (in minutes)
  - `project` integer — A unique integer value identifying this project.
  - `recursive_scan` boolean — Perform recursive scan over the bucket content
  - `regex_filter` string, nullable — Cloud storage regex for filtering objects
  - `region_name` string, nullable — AWS Region
  - `s3_endpoint` string, nullable — S3 Endpoint
  - `synchronizable` boolean
  - `title` string, nullable — Cloud storage title
  - `use_blob_urls` boolean — Interpret objects as BLOBs and generate URLs

## Response `200`

- S3ImportStorage
  - `aws_access_key_id` string, nullable — AWS_ACCESS_KEY_ID
  - `aws_secret_access_key` string, nullable — AWS_SECRET_ACCESS_KEY
  - `aws_session_token` string, nullable — AWS_SESSION_TOKEN
  - `aws_sse_kms_key_id` string, nullable — AWS SSE KMS Key ID
  - `bucket` string, nullable — S3 bucket name
  - `created_at` string, date-time, required — Creation time
  - `description` string, nullable — Cloud storage description
  - `id` integer, required
  - `last_sync` string, date-time, nullable — Last sync finished time
  - `last_sync_count` integer, nullable — Count of tasks synced last time
  - `last_sync_job` string, nullable — Last sync job ID
  - `meta` unknown
  - `prefix` string, nullable — S3 bucket prefix
  - `presign` boolean
  - `presign_ttl` integer — Presigned URLs TTL (in minutes)
  - `project` integer, required — A unique integer value identifying this project.
  - `recursive_scan` boolean — Perform recursive scan over the bucket content
  - `regex_filter` string, nullable — Cloud storage regex for filtering objects
  - `region_name` string, nullable — AWS Region
  - `s3_endpoint` string, nullable — S3 Endpoint
  - `status` 'initialized' | 'queued' | 'in_progress' | 'failed' | 'completed' | 'completed_with_errors' — * `initialized` - Initialized * `queued` - Queued * `in_progress` - In progress * `failed` - Failed * `completed` - Completed * `completed_with_errors` - Completed with errors
  - `synchronizable` boolean
  - `title` string, nullable — Cloud storage title
  - `traceback` string, nullable — Traceback report for the last failed sync
  - `type` string, required
  - `use_blob_urls` boolean — Interpret objects as BLOBs and generate URLs

## Changes

> 97 revisions in range; 1 not diffed.

- **2026-08-07** `e1ba2ecdbabb` — 1 breaking, 2 warning, 16 info
  - the `title` request property's maxLength was decreased to `256`
  - the `presign_ttl` request property's max was set to `32767.00`
  - the `presign_ttl` request property's min was set to `0.00`
  - added the new optional request property `synchronizable`
  - …15 more

[Change history](https://skmtc.dev/humansignal/apis/label-studio-api/changes/api/storages/s3/:id/patch.md)

---

[API](https://skmtc.dev/humansignal/apis/label-studio-api.md) · [All operations](https://skmtc.dev/humansignal/apis/label-studio-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/humansignal/label-studio-api/revisions/b589624c66c3/schema)
