---
title: "Patch Sink"
method: PATCH
path: "/api/v1/stream/{stream_id}/sink/{sink_id}"
tags: ["Sink"]
---

# Patch Sink

`PATCH /api/v1/stream/{stream_id}/sink/{sink_id}`

Partially update a sink.

## Path parameters

- `stream_id` string, required — The Stream's ID or UID.
- `sink_id` string, required — The StreamSink's ID or UID.

## Request body

- union
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `type` 'poller', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` AzureBlobStorageConfigPatch, required
      - `accessKey` string
      - `account` string
      - `container` string
    - `type` 'azureBlobStorage', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` OtelTracingConfigPatch, required
      - `url` string, uri
    - `type` 'otelTracing', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` SinkHttpConfigPatch, required
      - `url` string, uri
    - `type` 'http', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` S3ConfigPatch, required
      - `accessKeyId` string
      - `bucket` string
      - `endpointUrl` string, uri
      - `externalId` string
      - `region` string
      - `roleArn` string
      - `secretAccessKey` string
    - `type` 'amazonS3', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` GoogleCloudStorageConfigPatch, required
      - `bucket` string
      - `credentials` string
    - `type` 'googleCloudStorage', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` GoogleCloudPubSubConfigPatch, required
      - `credentials` string
      - `projectId` string
      - `topicId` string
    - `type` 'googleCloudPubSub', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` SqsConfigPatch, required
      - `accessKeyId` string
      - `endpointUrl` string, uri, nullable
      - `queueUrl` string, uri
      - `region` string
      - `secretAccessKey` string
    - `type` 'sqs', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` SnsConfigPatch, required
      - `accessKeyId` string
      - `endpointUrl` string, uri, nullable
      - `region` string
      - `secretAccessKey` string
      - `topicArn` string
    - `type` 'sns', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` BigQueryConfigPatch, required
      - `credentials` string
      - `datasetId` string
      - `projectId` string
      - `tableId` string
    - `type` 'bigQuery', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` ClickhouseConfigPatch, required
      - `database` string
      - `password` string
      - `tableName` string
      - `url` string, uri
      - `username` string
    - `type` 'clickhouse', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` EventBridgeConfigPatch, required
      - `accessKeyId` string
      - `detailType` string
      - `eventBusName` string
      - `region` string
      - `secretAccessKey` string
    - `type` 'eventBridge', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` SnowflakeConfigPatch, required
      - `accountIdentifier` string
      - `dbName` string — Database name. Only required if not using transformations.
      - `privateKey` string
      - `schemaName` string — Schema name. Only required if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.
      - `userId` string
    - `type` 'snowflake', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` RabbitMqConfigPatch, required
      - `routingKey` string
      - `uri` string
    - `type` 'rabbitMq', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` RedshiftConfigPatch, required
      - `accessKeyId` string
      - `dbName` string — Database name. Only required if not using transformations.
      - `region` string
      - `schemaName` string, nullable — Schema name. Only used if not using transformations.
      - `secretAccessKey` string
      - `tableName` string — Table name. Only required if not using transformations.
    - `type` 'redshift', required
  - object
    - `batchSize` integer, nullable
    - `channels` string[]
    - `eventTypes` string[]
    - `maxWaitSecs` integer, nullable
    - `metadata` object
    - `status` 'enabled' | 'disabled'
    - `uid` string, nullable — The StreamSink's UID.
    - `config` PostgresConfigPatch, required
      - `password` string
      - `sslRootCert` string
      - `tableName` string
      - `url` string
    - `type` 'postgres', required

## Response `200`

- union
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `type` 'poller', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` AzureBlobStorageConfigOut, required
      - `account` string, required
      - `container` string, required
    - `type` 'azureBlobStorage', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` OtelTracingConfigOut, required
      - `headers` EndpointHeadersOut, required — The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.
        - `headers` object, required
        - `sensitive` string[], required
      - `url` string, uri, required
    - `type` 'otelTracing', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` SinkHttpConfigOut, required
      - `headers` EndpointHeadersOut, required — The value of the headers is returned in the `headers` field. Sensitive headers that have been redacted are returned in the sensitive field.
        - `headers` object, required
        - `sensitive` string[], required
      - `url` string, uri, required
    - `type` 'http', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` S3ConfigOut, required
      - `accessKeyId` string, nullable
      - `bucket` string, required
      - `endpointUrl` string, uri, nullable
      - `externalId` string, nullable
      - `region` string, required
      - `roleArn` string, nullable
    - `type` 'amazonS3', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` SnowflakeConfigOut, required
      - `accountIdentifier` string, required
      - `dbName` string — Database name. Only required if not using transformations.
      - `schemaName` string — Schema name. Only required if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.
      - `userId` string, required
    - `type` 'snowflake', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` GoogleCloudStorageConfigOut, required
      - `bucket` string, required
    - `type` 'googleCloudStorage', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` GoogleCloudPubSubConfigOut, required
      - `projectId` string, required
      - `topicId` string, required
    - `type` 'googleCloudPubSub', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` RedshiftConfigOut, required
      - `accessKeyId` string, required
      - `clusterIdentifier` string, nullable
      - `dbName` string — Database name. Only required if not using transformations.
      - `dbUser` string, nullable
      - `region` string, required
      - `schemaName` string, nullable — Schema name. Only used if not using transformations.
      - `tableName` string — Table name. Only required if not using transformations.
      - `workgroupName` string, nullable
    - `type` 'redshift', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` BigQueryConfigOut, required
      - `datasetId` string, required
      - `projectId` string, required
      - `tableId` string, required
    - `type` 'bigQuery', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` ClickhouseConfigOut, required
      - `database` string, required
      - `tableName` string, required
      - `url` string, uri, required
      - `username` string, required
    - `type` 'clickhouse', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` RabbitMqConfigOut, required
      - `routingKey` string, required
    - `type` 'rabbitMq', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` SqsConfigOut, required
      - `accessKeyId` string, required
      - `endpointUrl` string, uri, nullable
      - `queueUrl` string, uri, required
      - `region` string, required
    - `type` 'sqs', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` EventBridgeConfigOut, required
      - `accessKeyId` string, required
      - `detailType` string, required
      - `eventBusName` string, required
      - `region` string, required
    - `type` 'eventBridge', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` SnsConfigOut, required
      - `accessKeyId` string, required
      - `region` string, required
      - `topicArn` string, required
    - `type` 'sns', required
  - object
    - `batchSize` integer, required
    - `channels` string[]
    - `createdAt` string, date-time, required
    - `currentIterator` string, required
    - `eventTypes` string[]
    - `failureReason` string, nullable
    - `id` string, required — The sink's ID.
    - `maxWaitSecs` integer, required
    - `metadata` object, required
    - `nextRetryAt` string, date-time, nullable
    - `status` 'enabled' | 'paused' | 'disabled' | 'retrying', required
    - `uid` string, nullable — The sink's UID.
    - `updatedAt` string, date-time, required
    - `config` PostgresConfigOut, required
      - `sslRootCert` string, nullable
      - `tableName` string, required
      - `url` string, required
    - `type` 'postgres', required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Validation Error
- `429` — Too Many Requests

## Changes

- **2026-09-02** `267f7078e536` — 2 breaking, 4 info
  - the response property `oneOf[#/components/schemas/StreamSinkOut_amazonS3]/config/accessKeyId` became nullable for the status `200`
  - the response property `oneOf[#/components/schemas/StreamSinkOut_amazonS3]/config/accessKeyId` became optional for the status `200`
  - added the new optional request property `oneOf[#/components/schemas/StreamSinkPatch_amazonS3]/config/externalId`
  - added the new optional request property `oneOf[#/components/schemas/StreamSinkPatch_amazonS3]/config/roleArn`
  - …2 more
- **2026-08-28** `50dde67d2d2d` — 1 breaking, 3 info
  - added `#/components/schemas/StreamSinkOut_postgres` to the response body `oneOf` list for the response status `200`
  - added `postgres` mapping keys to the request discriminator
  - added `#/components/schemas/StreamSinkPatch_postgres` to the request body `oneOf` list
  - added `postgres` mapping keys to the response discriminator for the response status `200`
- …earlier changes not shown

[Full history](https://skmtc.dev/svix/apis/svix-api/changes/api/v1/stream/:stream_id/sink/:sink_id/patch.md)

---

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