---
title: "Update an existing Drain"
method: PATCH
path: "/v1/drains/{id}"
tags: ["drains"]
---

# Update an existing Drain

`PATCH /v1/drains/{id}`

Update the configuration of an existing drain.

## Path parameters

- `id` string, required

## Query parameters

- `teamId` string
- `slug` string

## Request body

- object
  - `name` string
  - `projects` 'some' | 'all'
  - `projectIds` string[], nullable
  - `filter` union
    - string
    - object
      - `version` string, required
      - `filter` union, required
        - object
          - `type` string, required
          - `project` object
            - `ids` string[]
          - `log` object
            - `sources` string[]
          - `deployment` object
            - `environments` string[]
        - object
          - `type` string, required
          - `text` string, required
  - `schemas` object
  - `delivery` union
    - object
      - `type` string, required
      - `endpoint` string, required
      - `compression` 'gzip' | 'none'
      - `encoding` 'json' | 'ndjson', required
      - `headers` object, required
      - `secret` string
    - object
      - `type` string, required
      - `endpoint` object, required
        - `traces` string, required
      - `encoding` 'proto' | 'json', required
      - `headers` object, required
      - `secret` string
    - object
      - `type` string, required
      - `endpoint` string, required
      - `encoding` 'json' | 'ndjson', required
      - `compression` 'none', required
      - `fileStructure` 'hive', required
      - `roleArn` string, required
      - `region` string, required
      - `serverSideEncryption` 'AES256' | 'aws:kms' | 'aws:kms:dsse'
      - `objectAcl` 'private' | 'bucket-owner-read' | 'bucket-owner-full-control'
  - `sampling` object[], nullable
    - `type` string, required
    - `rate` number, required — Sampling rate from 0 to 1 (e.g., 0.1 for 10%)
    - `env` 'production' | 'preview' — Environment to apply sampling to
    - `requestPath` string — Request path prefix to apply the sampling rule to
  - `transforms` object[], nullable
    - `id` string, required
  - `status` 'enabled' | 'disabled'
  - `source` union
    - object
      - `kind` string
      - `externalResourceId` string, required
    - object
      - `kind` string
      - `resourceId` string, required
    - object
      - `kind` string, required
    - object
      - `kind` string, required

## Response `200`

- union
  - object
    - `id` string, required
    - `createdAt` number, required
    - `updatedAt` number, required
    - `projectIds` string[]
    - `name` string, required
    - `teamId` string, nullable
    - `ownerId` string, required
    - `status` 'disabled' | 'enabled' | 'errored'
    - `firstErrorTimestamp` number
    - `disabledAt` number
    - `disabledBy` string
    - `disabledReason` 'account-plan-downgrade' | 'disabled-by-admin' | 'disabled-by-owner' | 'feature-not-available'
    - `schemas` object, required
      - `log` object
      - `trace` object
      - `analytics` object
      - `speed_insights` object
      - `ai_gateway` object
      - `audit_log` object
      - `connect` object
    - `delivery` union, required
      - object
        - `type` 'http', required
        - `endpoint` string, required
        - `encoding` 'json' | 'ndjson', required
        - `compression` 'gzip' | 'none'
        - `headers` object, required
        - `secret` union
          - string
          - object
            - `kind` 'INTEGRATION_SECRET', required
      - object
        - `type` 'otlphttp', required
        - `endpoint` object, required
          - `traces` string, required
        - `encoding` 'json' | 'proto', required
        - `headers` object, required
        - `secret` union
          - string
          - object
            - `kind` 'INTEGRATION_SECRET', required
      - object
        - `type` 'clickhouse', required
        - `endpoint` string, required
        - `table` string, required
      - object
        - `type` 's3', required
        - `endpoint` string, required
        - `encoding` 'json' | 'ndjson', required
        - `compression` 'none', required
        - `fileStructure` 'hive', required
        - `roleArn` string, required
        - `region` string, required
        - `serverSideEncryption` 'AES256' | 'aws:kms' | 'aws:kms:dsse'
        - `objectAcl` 'authenticated-read' | 'aws-exec-read' | 'bucket-owner-full-control' | 'bucket-owner-read' | 'private' | 'public-read' | 'public-read-write'
      - object
        - `type` 'internal', required
        - `target` 'vercel-otel-traces-db', required
    - `sampling` object[]
      - `type` 'head_sampling', required
      - `rate` number, required
      - `env` 'preview' | 'production'
      - `requestPath` string
    - `source` union, required
      - object
        - `kind` 'self-served', required
      - object
        - `kind` 'integration', required
        - `resourceId` string
        - `externalResourceId` string
        - `integrationId` string, required
        - `integrationConfigurationId` string, required
    - `filterV2` object
      - `version` 'v2', required
      - `filter` union, required
        - object
          - `type` 'basic', required
          - `project` object
            - `ids` string[]
          - `log` object
            - `sources` string[]
            - `legacy_excludeCachedStaticAssetLogs` false | true
          - `deployment` object
            - `environments` string[]
        - object
          - `type` 'odata', required
          - `text` string, required
  - object
    - `id` string, required
    - `createdAt` number, required
    - `updatedAt` number, required
    - `projectIds` string[]
    - `name` string, required
    - `teamId` string, nullable
    - `ownerId` string, required
    - `status` 'disabled' | 'enabled' | 'errored'
    - `firstErrorTimestamp` number
    - `disabledAt` number
    - `disabledBy` string
    - `disabledReason` 'account-plan-downgrade' | 'disabled-by-admin' | 'disabled-by-owner' | 'feature-not-available'
    - `schemas` object, required
      - `log` object
      - `trace` object
      - `analytics` object
      - `speed_insights` object
      - `ai_gateway` object
      - `audit_log` object
      - `connect` object
    - `delivery` union, required
      - object
        - `type` 'http', required
        - `endpoint` string, required
        - `encoding` 'json' | 'ndjson', required
        - `compression` 'gzip' | 'none'
        - `headers` object, required
        - `secret` union
          - string
          - object
            - `kind` 'INTEGRATION_SECRET', required
      - object
        - `type` 'otlphttp', required
        - `endpoint` object, required
          - `traces` string, required
        - `encoding` 'json' | 'proto', required
        - `headers` object, required
        - `secret` union
          - string
          - object
            - `kind` 'INTEGRATION_SECRET', required
      - object
        - `type` 'clickhouse', required
        - `endpoint` string, required
        - `table` string, required
      - object
        - `type` 's3', required
        - `endpoint` string, required
        - `encoding` 'json' | 'ndjson', required
        - `compression` 'none', required
        - `fileStructure` 'hive', required
        - `roleArn` string, required
        - `region` string, required
        - `serverSideEncryption` 'AES256' | 'aws:kms' | 'aws:kms:dsse'
        - `objectAcl` 'authenticated-read' | 'aws-exec-read' | 'bucket-owner-full-control' | 'bucket-owner-read' | 'private' | 'public-read' | 'public-read-write'
      - object
        - `type` 'internal', required
        - `target` 'vercel-otel-traces-db', required
    - `sampling` object[]
      - `type` 'head_sampling', required
      - `rate` number, required
      - `env` 'preview' | 'production'
      - `requestPath` string
    - `source` union, required
      - object
        - `kind` 'self-served', required
      - object
        - `kind` 'integration', required
        - `resourceId` string
        - `externalResourceId` string
        - `integrationId` string, required
        - `integrationConfigurationId` string, required
    - `filterV2` object
      - `version` 'v2', required
      - `filter` union, required
        - object
          - `type` 'basic', required
          - `project` object
            - `ids` string[]
          - `log` object
            - `sources` string[]
            - `legacy_excludeCachedStaticAssetLogs` false | true
          - `deployment` object
            - `environments` string[]
        - object
          - `type` 'odata', required
          - `text` string, required
    - `integrationIcon` string
    - `integrationConfigurationUri` string
    - `integrationWebsite` string
    - `projectAccess` union
      - object
        - `access` 'all', required
        - `managedBy` 'drain' | 'integration', required
      - object
        - `access` 'some', required
        - `projectIds` string[], required
        - `managedBy` 'drain' | 'integration', required

## Other responses

- `400` — One of the provided values in the request body is invalid. One of the provided values in the request query is invalid.
- `401` — The request is not authorized.
- `402`
- `403` — You do not have permission to access this resource.
- `404`
- `410`

---

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