---
title: "Update an event destination"
method: PATCH
path: "/event-destinations/{destination_id}"
tags: ["Event Destinations"]
---

# Update an event destination

`PATCH /event-destinations/{destination_id}`

Updates an event destination's name, status, or subscribed events. Only the fields you include in the request body are updated.

## Path parameters

- `destination_id` string, required

## Request body

- UpdateEventDestinationRequest — Request body for updating an event destination. Only include fields you want to change. To change endpoint configuration or credentials, include the configuration object whose property name matches the destination's existing `type`.
  - `name` string, nullable — Updated display name.
  - `status` string, nullable — Updated status: `active` or `inactive`.
  - `events` string[], nullable — Updated list of subscribed event types (for example `task_run.completed`, `credential.verified`). Use `["*"]` to subscribe to all event types; `*` cannot be combined with specific types, and the list must not be empty.
  - `webhook` object — Configuration for a `webhook` destination. Provide this object under the `webhook` property when `type` is `webhook`.
    - `url` string, required — Absolute `https` or `http` URL that receives event deliveries.
    - `secret` string — Signing secret used to verify webhook signatures. Write-only; never returned.
  - `aws_sqs` object — Configuration for a `aws_sqs` destination. Provide this object under the `aws_sqs` property when `type` is `aws_sqs`.
    - `queue_url` string, required — URL of the destination Amazon SQS queue.
    - `key` string — AWS access key ID. Accepted alias: `access_key`. Write-only.
    - `secret` string — AWS secret access key. Accepted alias: `secret_key`. Write-only.
  - `aws_kinesis` object — Configuration for a `aws_kinesis` destination. Provide this object under the `aws_kinesis` property when `type` is `aws_kinesis`.
    - `stream_name` string, required — Name of the Amazon Kinesis stream.
    - `region` string, required — AWS region of the stream.
    - `key` string — AWS access key ID. Accepted alias: `access_key`. Write-only.
    - `secret` string — AWS secret access key. Accepted alias: `secret_key`. Write-only.
  - `aws_s3` object — Configuration for a `aws_s3` destination. Provide this object under the `aws_s3` property when `type` is `aws_s3`.
    - `bucket` string, required — Name of the destination Amazon S3 bucket.
    - `region` string, required — AWS region of the bucket.
    - `key` string — AWS access key ID. Accepted alias: `access_key`. Write-only.
    - `secret` string — AWS secret access key. Accepted alias: `secret_key`. Write-only.
  - `aws_eventbridge` object — Configuration for a `aws_eventbridge` destination. Provide this object under the `aws_eventbridge` property when `type` is `aws_eventbridge`.
    - `event_bus_name` string, required — Name of the Amazon EventBridge event bus.
    - `region` string, required — AWS region of the event bus.
    - `access_key_id` string — AWS access key ID. Write-only.
    - `secret_access_key` string — AWS secret access key. Write-only.
  - `gcp_pubsub` object — Configuration for a `gcp_pubsub` destination. Provide this object under the `gcp_pubsub` property when `type` is `gcp_pubsub`.
    - `project_id` string, required — Google Cloud project ID.
    - `topic` string, required — Pub/Sub topic name. Accepted alias: `topic_name`.
    - `service_account_json` string — Service account credentials JSON. Accepted alias: `credentials_json`. Write-only.
  - `rabbitmq` object — Configuration for a `rabbitmq` destination. Provide this object under the `rabbitmq` property when `type` is `rabbitmq`.
    - `exchange` string, required — Name of the RabbitMQ exchange.
    - `server_url` string, required — RabbitMQ host as `host[:port]` (for example `rabbitmq:5672`). You may instead pass a full AMQP URL with embedded credentials; Deck extracts the host, username, and password from it.
    - `username` string — RabbitMQ username (or embed it in the AMQP `server_url`). Write-only.
    - `password` string — RabbitMQ password (or embed it in the AMQP `server_url`). Write-only.
  - `azure_servicebus` object — Configuration for a `azure_servicebus` destination. Provide this object under the `azure_servicebus` property when `type` is `azure_servicebus`.
    - `name` string, required — Name of the Service Bus queue or topic. Accepted alias: `queue_name`.
    - `connection_string` string — Azure Service Bus connection string. Write-only.
  - `hookdeck` object — Configuration for a `hookdeck` destination. Provide this object under the `hookdeck` property when `type` is `hookdeck`.
    - `token` string — Hookdeck API key. Accepted alias: `api_key`. Write-only.

## Response `200`

OK

- EventDestinationResponse — An event destination object representing an endpoint that receives platform events.
  - `id` string, required — Unique identifier for the event destination, prefixed with `evtd_`.
  - `object` string, required — Always `event_destination`.
  - `name` string, required — Display name for the event destination.
  - `status` string, required — Destination status: `pending_verification`, `active`, or `inactive`.
  - `type` 'webhook' | 'aws_sqs' | 'aws_kinesis' | 'aws_s3' | 'aws_eventbridge' | 'gcp_pubsub' | 'rabbitmq' | 'azure_servicebus' | 'hookdeck', required — Destination type. The endpoint configuration is returned under a property whose name equals this value (for example, a `webhook` destination returns a `webhook` object).
  - `events` string[], required — Event types this destination is subscribed to.
  - `created_at` string, date-time, required — ISO 8601 timestamp of when the resource was created.
  - `updated_at` string, date-time, required — ISO 8601 timestamp of when the resource was last updated.
  - `request_id` string, nullable — Unique identifier for the API request. Include this when contacting support.
  - `webhook` object — Configuration returned for a `webhook` destination (credentials are never returned).
    - `url` string, required — Absolute `https` or `http` URL that receives event deliveries.
  - `aws_sqs` object — Configuration returned for a `aws_sqs` destination (credentials are never returned).
    - `queue_url` string, required — URL of the destination Amazon SQS queue.
  - `aws_kinesis` object — Configuration returned for a `aws_kinesis` destination (credentials are never returned).
    - `stream_name` string, required — Name of the Amazon Kinesis stream.
    - `region` string, required — AWS region of the stream.
  - `aws_s3` object — Configuration returned for a `aws_s3` destination (credentials are never returned).
    - `bucket` string, required — Name of the destination Amazon S3 bucket.
    - `region` string, required — AWS region of the bucket.
  - `aws_eventbridge` object — Configuration returned for a `aws_eventbridge` destination (credentials are never returned).
    - `event_bus_name` string, required — Name of the Amazon EventBridge event bus.
    - `region` string, required — AWS region of the event bus.
  - `gcp_pubsub` object — Configuration returned for a `gcp_pubsub` destination (credentials are never returned).
    - `project_id` string, required — Google Cloud project ID.
    - `topic` string, required — Pub/Sub topic name. Accepted alias: `topic_name`.
  - `rabbitmq` object — Configuration returned for a `rabbitmq` destination (credentials are never returned).
    - `exchange` string, required — Name of the RabbitMQ exchange.
    - `server_url` string, required — RabbitMQ host as `host[:port]` (for example `rabbitmq:5672`). You may instead pass a full AMQP URL with embedded credentials; Deck extracts the host, username, and password from it.
  - `azure_servicebus` object — Configuration returned for a `azure_servicebus` destination (credentials are never returned).
    - `name` string, required — Name of the Service Bus queue or topic. Accepted alias: `queue_name`.
  - `hookdeck` object — Configuration returned for a `hookdeck` destination (credentials are never returned).

## Other responses

- `400` — Bad request — validation error or malformed input.
- `401` — Unauthorized.
- `403` — Forbidden.
- `404` — Not found — the requested resource does not exist.
- `409` — Conflict — the request is valid but cannot be completed in the current state.
- `422` — Unprocessable content — the request body is understood but contains invalid values.
- `429` — Too many requests or session concurrency exceeded. Retry with backoff; honor Retry-After and RateLimit headers when present.
- `500` — Internal server error.

---

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