---
title: "Upsert Collection S3 Output"
method: PUT
path: "/api/v1/collections/{collection_id}/s3-source/output"
tags: ["collections"]
---

# Upsert Collection S3 Output

`PUT /api/v1/collections/{collection_id}/s3-source/output`

Create or update a collection's S3 output writeback destination.

## Path parameters

- `collection_id` integer, required

## Cookies

- `wos-session` string
- `datalab_active_team` string

## Request body

- UpsertCollectionS3OutputRequest
  - `output_bucket` string, required
  - `output_prefix` string, required
  - `output_region` string, nullable
  - `output_credentials_type` 'source' | 'access_key', nullable
  - `output_aws_access_key_id` string, nullable
  - `output_aws_secret_access_key` string, nullable
  - `reuse_output_aws_secret_access_key` boolean

## Response `200`

Successful Response

- CollectionS3SourceResponse
  - `id` integer, required
  - `bucket` string, required
  - `prefix` string, nullable, required
  - `region` string, nullable, required
  - `credentials_type` 'access_key' | 'public', required
  - `aws_access_key_id` string, required
  - `aws_secret_access_key_redacted` string, required
  - `sync_status` string, required
  - `last_sync_started_at` string, date-time, nullable, required
  - `last_sync_completed_at` string, date-time, nullable, required
  - `last_sync_file_count` integer, required
  - `last_sync_error` string, nullable, required
  - `output_bucket` string, nullable, required
  - `output_prefix` string, nullable, required
  - `output_region` string, nullable, required
  - `output_credentials_type` 'source' | 'access_key', required
  - `output_aws_access_key_id` string, required
  - `output_aws_secret_access_key_redacted` string, required
  - `writeback_status` string, required
  - `last_writeback_run_id` integer, nullable, required
  - `last_writeback_started_at` string, date-time, nullable, required
  - `last_writeback_completed_at` string, date-time, nullable, required
  - `last_writeback_file_count` integer, required
  - `last_writeback_total_file_count` integer, required
  - `last_writeback_failed_file_count` integer, required
  - `last_writeback_error` string, nullable, required
  - `last_writeback_error_code` string, nullable, required
  - `last_writeback_manifest_uri` string, nullable, required

## Other responses

- `422` — Validation Error

---

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