> ## Documentation Index
> Fetch the complete documentation index at: https://ngrok.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Update an existing event destination configuration with new target settings or event filters.

# Update



## OpenAPI

````yaml patch /event_destinations/{id}
openapi: 3.0.0
info:
  title: ngrok OpenAPI
  version: 1.0.0
  description: >
    The ngrok REST API at https://api.ngrok.com provides programmatic access to
    provision and configure every ngrok resource: endpoints, domains, API keys,
    IP policies, tunnels, certificates, and more. Full documentation:
    https://ngrok.com/docs/api


    **Authentication:** Send an API key as a bearer token: "Authorization:
    Bearer {API key}". Create and revoke keys at
    https://dashboard.ngrok.com/api-keys or via the /api_keys resource. Requests
    without credentials receive an error with code ERR_NGROK_200.


    **Versioning and deprecation policy:** Every request must include the
    "ngrok-version: 2" header; a missing header returns HTTP 400 with error code
    ERR_NGROK_218. Version 2 is the current version; all earlier versions are
    deprecated. ngrok never makes breaking changes to a published API version.
    Breaking changes ship only as a new version that clients explicitly opt in
    to via this header. Additive changes (new resources, methods, and fields,
    and bug fixes that match documented behavior) may ship to a live version.
    Full policy: https://ngrok.com/docs/api#versioning-and-api-stability


    **Rate limits:** By default, the API allows 120 requests per rolling
    60-second window per account; some plans have higher limits. Exceeding the
    limit returns HTTP 429 with error code ERR_NGROK_226; wait for the window to
    pass before retrying. Details: https://ngrok.com/docs/errors/err_ngrok_226


    **Errors:** Every 4xx and 5xx response carries the Error schema: the
    status_code, a human-readable msg, and in most cases a globally unique
    machine-readable error_code and a details object. Every error code is
    documented at https://ngrok.com/docs/errors
servers:
  - url: https://api.ngrok.com
security:
  - authentication: []
paths:
  /event_destinations/{id}:
    patch:
      tags:
        - EventDestinations
      summary: Update
      description: |
        Update attributes of an Event Destination.
      operationId: EventDestinationsUpdate
      parameters:
        - $ref: '#/components/parameters/ngrokVersion'
        - name: id
          description: |
            Unique identifier for this Event Destination.
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventDestinationUpdate'
      responses:
        '200':
          description: |
            Update attributes of an Event Destination.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventDestination'
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
components:
  parameters:
    ngrokVersion:
      name: ngrok-version
      in: header
      required: true
      schema:
        type: integer
        default: 2
  schemas:
    EventDestinationUpdate:
      type: object
      properties:
        id:
          description: |
            Unique identifier for this Event Destination.
          type: string
        metadata:
          description: >
            Arbitrary user-defined machine-readable data of this Event
            Destination. Optional, max 4096 bytes.
          type: string
        description:
          description: >
            Human-readable description of the Event Destination. Optional, max
            255 bytes.
          type: string
        format:
          description: >
            The output format you would like to serialize events into when
            sending to their target. Currently the only accepted value is
            `JSON`.
          type: string
        target:
          $ref: '#/components/schemas/EventTarget'
          description: >
            An object that encapsulates where and how to send your events. An
            event destination must contain exactly one of the following objects,
            leaving the rest null: `kinesis`, `firehose`, `cloudwatch_logs`, or
            `s3`.
    EventDestination:
      type: object
      properties:
        id:
          description: |
            Unique identifier for this Event Destination.
          type: string
        metadata:
          description: >
            Arbitrary user-defined machine-readable data of this Event
            Destination. Optional, max 4096 bytes.
          type: string
        created_at:
          description: |
            Timestamp when the Event Destination was created, RFC 3339 format.
          type: string
        description:
          description: >
            Human-readable description of the Event Destination. Optional, max
            255 bytes.
          type: string
        format:
          description: >
            The output format you would like to serialize events into when
            sending to their target. Currently the only accepted value is
            `JSON`.
          type: string
        target:
          $ref: '#/components/schemas/EventTarget'
          description: >
            An object that encapsulates where and how to send your events. An
            event destination must contain exactly one of the following objects,
            leaving the rest null: `kinesis`, `firehose`, `cloudwatch_logs`, or
            `s3`.
        uri:
          description: |
            URI of the Event Destination API resource.
          type: string
    EventTarget:
      type: object
      properties:
        firehose:
          $ref: '#/components/schemas/EventTargetFirehose'
          description: |
            Configuration used to send events to Amazon Kinesis Data Firehose.
        kinesis:
          $ref: '#/components/schemas/EventTargetKinesis'
          description: |
            Configuration used to send events to Amazon Kinesis.
        cloudwatch_logs:
          $ref: '#/components/schemas/EventTargetCloudwatchLogs'
          description: |
            Configuration used to send events to Amazon CloudWatch Logs.
        datadog:
          $ref: '#/components/schemas/EventTargetDatadog'
          description: |
            Configuration used to send events to Datadog.
        azure_logs_ingestion:
          $ref: '#/components/schemas/EventTargetAzureLogsIngestion'
          description: n/a
    Error:
      type: object
      description: >
        The error body every api.ngrok.com 4xx and 5xx response returns. Every
        error condition has a globally unique, documented error code; see
        https://ngrok.com/docs/errors
      required:
        - status_code
        - msg
      properties:
        error_code:
          description: >
            Globally unique machine-readable error code, for example
            ERR_NGROK_226. Each code is documented at
            https://ngrok.com/docs/errors/reference. Omitted on transport-level
            errors such as a plain 404 for an unknown path.
          type: string
        status_code:
          description: |
            The HTTP status code of the response, duplicated in the body.
          type: integer
        msg:
          description: |
            Human-readable description of the error and how to resolve it.
          type: string
        details:
          description: >
            Additional error context. details.operation_id identifies the failed
            request when contacting support.
          type: object
          additionalProperties:
            type: string
    EventTargetFirehose:
      type: object
      properties:
        auth:
          $ref: '#/components/schemas/AWSAuth'
          description: >
            Configuration for how to authenticate into your AWS account. Exactly
            one of `role` or `creds` should be configured.
        delivery_stream_arn:
          description: >
            An Amazon Resource Name specifying the Firehose delivery stream to
            deposit events into.
          type: string
    EventTargetKinesis:
      type: object
      properties:
        auth:
          $ref: '#/components/schemas/AWSAuth'
          description: >
            Configuration for how to authenticate into your AWS account. Exactly
            one of `role` or `creds` should be configured.
        stream_arn:
          description: >
            An Amazon Resource Name specifying the Kinesis stream to deposit
            events into.
          type: string
    EventTargetCloudwatchLogs:
      type: object
      properties:
        auth:
          $ref: '#/components/schemas/AWSAuth'
          description: >
            Configuration for how to authenticate into your AWS account. Exactly
            one of `role` or `creds` should be configured.
        log_group_arn:
          description: >
            An Amazon Resource Name specifying the CloudWatch Logs group to
            deposit events into.
          type: string
    EventTargetDatadog:
      type: object
      properties:
        api_key:
          description: |
            Datadog API key to use.
          type: string
        ddtags:
          description: |
            Tags to send with the event.
          type: string
        service:
          description: |
            Service name to send with the event.
          type: string
        ddsite:
          description: |
            Datadog site to send event to.
          type: string
    EventTargetAzureLogsIngestion:
      type: object
      required:
        - tenant_id
        - client_id
        - client_secret
        - logs_ingestion_uri
        - data_collection_rule_id
        - data_collection_stream_name
      properties:
        tenant_id:
          description: |
            Tenant ID for the Azure account
          type: string
        client_id:
          description: |
            Client ID for the application client
          type: string
        client_secret:
          description: |
            Client Secret for the application client
          type: string
        logs_ingestion_uri:
          description: |
            Data collection endpoint logs ingestion URI
          type: string
        data_collection_rule_id:
          description: |
            Data collection rule immutable ID
          type: string
        data_collection_stream_name:
          description: >
            Data collection stream name to use as destination, located inside
            the DCR
          type: string
    AWSAuth:
      type: object
      properties:
        role:
          $ref: '#/components/schemas/AWSRole'
          description: >
            A role for ngrok to assume on your behalf to deposit events into
            your AWS account.
        creds:
          $ref: '#/components/schemas/AWSCredentials'
          description: >
            Credentials to your AWS account if you prefer ngrok to sign in with
            long-term access keys.
    AWSRole:
      type: object
      required:
        - role_arn
      properties:
        role_arn:
          description: >
            An ARN that specifies the role that ngrok should use to deliver to
            the configured target.
          type: string
    AWSCredentials:
      type: object
      required:
        - aws_access_key_id
        - aws_secret_access_key
      properties:
        aws_access_key_id:
          description: |
            The ID portion of an AWS access key.
          type: string
        aws_secret_access_key:
          description: |
            The secret portion of an AWS access key.
          type: string
  responses:
    Error:
      description: >
        An error. The body carries a machine-readable error_code and a
        human-readable msg; every code is documented at
        https://ngrok.com/docs/errors. A 429 with error code ERR_NGROK_226 means
        the account exceeded the documented request-rate limit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    authentication:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.