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

# Update alert contact point

> Replaces the contact point and its integration set. An integration listed with an id keeps that id; one listed without an id is created; one that is no longer listed is retired, not erased, so the delivery history that references it still resolves.

Required API key permission: `observe:alerts:write`.



## OpenAPI

````yaml /api-reference/openapi/observe.yaml put /observe/alertContactPoints/{alertContactPointID}
openapi: 3.1.1
info:
  version: 1.0.0
  title: Corbado API
  description: >
    # Introduction

    This documentation gives an overview of all Corbado API calls to implement
    authentication observe.
  contact:
    name: Corbado team
    email: support@corbado.com
    url: https://www.corbado.com
servers:
  - url: https://api.cloud.corbado.io/v1
security:
  - bearerAuth: []
tags:
  - name: ObserveFlow
    description: Flow search and related APIs
    x-group: Journeys and users
  - name: ObserveSubFlow
    description: Subflow search and related APIs
    x-group: Journeys and users
  - name: ObserveUser
    description: User search and related APIs
    x-group: Journeys and users
  - name: ObserveIdentifier
    description: Identifier search over submitted identifiers
    x-group: Journeys and users
  - name: ObserveClientEnv
    description: Client environment search APIs
    x-group: Journeys and users
  - name: ObserveTimeSeries
    description: Time series query APIs
    x-group: Metrics and funnels
  - name: ObserveFunnel
    description: Historical funnel metrics, dictionaries and coverage.
    x-group: Metrics and funnels
  - name: ObserveEvent
    description: Event ingestion and event feed APIs
    x-group: Events
  - name: ObserveError
    description: Named authentication errors and recommendations.
    x-group: Error management
  - name: ObserveErrorFlavour
    description: Error variants and their impact on authentication outcomes.
    x-group: Error management
  - name: ObserveFinding
    description: Curated findings that explain errors, their impact and who has to act.
    x-group: Error management
  - name: ObserveAlert
    description: Authentication alert rules, instances and history.
    x-group: Alert management
  - name: ObserveAnnotation
    description: >-
      Annotations, the project's memory (what is true about the data and how to
      read it)
    x-group: Annotations
  - name: ObserveTableExport
    description: Table export file listing and download APIs
    x-group: Data exports
  - name: ObserveTimeSeriesExport
    description: Time-series export generation and downloads.
    x-group: Data exports
  - name: ObserveDataExport
    description: Data export APIs
    x-group: User data
  - name: ObserveDataDeletionJob
    description: Data deletion job APIs
    x-group: User data
  - name: ObserveFlowTypeDefinition
    description: Flow type definitions used in authentication journeys.
    x-group: Catalogs and labels
  - name: ObserveCatalog
    description: Catalog APIs
    x-group: Catalogs and labels
  - name: OpenAPI
    description: Downloadable API specification
  - name: ProjectOperationExecution
    description: Project-scoped operation history and pipeline health
  - name: ObserveClassification
    description: Flow and subflow classification APIs
  - name: ObserveIntegrationStats
    description: Integration stats APIs
  - name: ObserveTimeSeriesPrecalculation
    description: Time series precalculation APIs
  - name: ObserveIDList
    x-group: Saved ID lists
    description: Stored ID-list selection APIs
  - name: ObserveDataContext
    description: Schema-loose data context APIs for agent and debugging tooling
  - name: ObserveData
    description: Observe data administration APIs
  - name: ObserveTrackingStats
    description: Tracking ingestion stats APIs
  - name: ObserveProbe
    description: Raw probe capture items (internal autocapture diagnostics)
  - name: ObserveTelemetry
    description: Raw SDK/integration diagnostic telemetry
  - name: ObserveExperiment
    x-group: Experiments
    description: Experiment catalog and run APIs
  - name: ObserveDataPolicy
    description: >-
      Project data policy catalogue (retention selected by the SDK's
      meta.dataPolicy code)
  - name: ObserveMetadata
    x-group: Metadata
    description: Authenticator metadata APIs (FIDO MDS + passkey AAGUID)
  - name: ObserveSri
    description: Subresource Integrity hashes of the scripts Corbado hosts for a project
  - name: ObservePasskey
    x-group: Passkey analysis
    description: Observed passkey search and cohort analysis.
paths:
  /observe/alertContactPoints/{alertContactPointID}:
    put:
      tags:
        - ObserveAlert
      summary: Update alert contact point
      description: >-
        Replaces the contact point and its integration set. An integration
        listed with an id keeps that id; one listed without an id is created;
        one that is no longer listed is retired, not erased, so the delivery
        history that references it still resolves.


        Required API key permission: `observe:alerts:write`.
      operationId: ObserveAlertContactPointUpdate
      parameters:
        - name: alertContactPointID
          in: path
          required: true
          description: Alert contact point ID (format `acp-<number>`).
          schema:
            type: string
          x-oapi-codegen-extra-tags:
            validate: required,id=acp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/observeAlertContactPointUpdateReq'
      responses:
        '200':
          description: Contact point updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/observeAlertContactPoint'
        default:
          $ref: '#/components/responses/error'
      security:
        - bearerAuth:
            - observe:alerts:write
components:
  schemas:
    observeAlertContactPointUpdateReq:
      type: object
      required:
        - name
        - integrations
      properties:
        name:
          type: string
          x-oapi-codegen-extra-tags:
            validate: required,min=1,max=255
        description:
          type: string
          x-oapi-codegen-extra-tags:
            validate: omitempty,min=1,max=2000
        integrations:
          type: array
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/observeAlertContactPointIntegrationReq'
          x-oapi-codegen-extra-tags:
            validate: required,min=1,dive
        deliveryHours:
          $ref: '#/components/schemas/observeAlertHours'
    observeAlertContactPoint:
      type: object
      required:
        - id
        - name
        - integrations
        - deliveryHours
        - createdMs
        - updatedMs
      properties:
        id:
          type: string
          description: Alert contact point ID (format `acp-<number>`).
        name:
          type: string
        description:
          type: string
        integrations:
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/observeAlertContactPointIntegration'
        deliveryHours:
          $ref: '#/components/schemas/observeAlertHours'
        createdMs:
          type: integer
          format: int64
        updatedMs:
          type: integer
          format: int64
    observeAlertContactPointIntegrationReq:
      type: object
      required:
        - type
        - settings
      properties:
        id:
          type: string
          description: >-
            Integration ID (format `aci-<number>`). Omit to create a new
            integration; supply it to keep an existing

            one.
          x-oapi-codegen-extra-tags:
            validate: omitempty,id=aci
        type:
          type: string
          enum:
            - email
            - webhook
            - pagerduty
          x-oapi-codegen-extra-tags:
            validate: required,oneof=email webhook pagerduty
        settings:
          type: object
          additionalProperties: true
          description: >-
            Settings belonging to `type`:
            `observeAlertContactPointIntegrationSettingsEmail`,

            `observeAlertContactPointIntegrationSettingsWebhook` or
            `observeAlertContactPointIntegrationSettingsPagerDuty`.

            For a webhook, leave `secret` out. For an update, send back the
            masked settings from a previous response: a

            masked value that is sent back unchanged keeps the stored value.
          x-oapi-codegen-extra-tags:
            validate: required
        minSeverity:
          type: string
          enum:
            - info
            - warning
            - critical
          x-oapi-codegen-extra-tags:
            validate: omitempty,oneof=info warning critical
        status:
          type: string
          enum:
            - active
            - paused
          x-oapi-codegen-extra-tags:
            validate: omitempty,oneof=active paused
    observeAlertHours:
      type: object
      description: >
        A weekly schedule, used in two places. It is read in the project's
        timezone, looked up each time the schedule is checked, so changing the
        project's timezone moves the schedule along. Only an override's
        evaluationHours may set a timezone of their own.

        As a contact point's deliveryHours it is when the contact point's
        integrations may deliver. A notification that falls outside these hours
        is not sent, and not sent later either; the alert's state is recorded
        all the same. Omit on create to deliver at any time, omit on update to
        keep the current hours.

        As a rule's evaluationHours it is when the rule's alerts are evaluated
        at all. Outside these hours an alert gets no value, with noDataReason
        outside_evaluation_hours, and the no-data policy does not apply: a
        firing alert stays firing, a pending alert returns to normal so its for
        period starts again, and nothing is notified. Set on an override, it
        replaces the rule's hours for that alert and may set a timezone, e.g.
        Australia/Sydney for an alert on Australia; mode always evaluates that
        alert at any time. Omit to evaluate at any time (on an override: to
        inherit the rule's hours).
      required:
        - mode
      properties:
        mode:
          type: string
          enum:
            - always
            - scheduled
          x-enum-varnames:
            - ObserveAlertHoursModeAlways
            - ObserveAlertHoursModeScheduled
          x-oapi-codegen-extra-tags:
            validate: required,oneof=always scheduled
          description: >-
            always is open at any time and takes no timezone or ranges;
            scheduled is open only inside ranges.
        timezone:
          type: string
          description: >
            IANA timezone the ranges are read in, e.g. Australia/Sydney. Only on
            an override's evaluationHours, and optional there; omit it to use
            the project's timezone. Delivery hours and a rule's own
            evaluationHours always use the project's timezone and reject this
            field.
          x-oapi-codegen-extra-tags:
            validate: omitempty,max=64
        ranges:
          type: array
          maxItems: 10
          description: Required when mode is scheduled.
          items:
            $ref: '#/components/schemas/observeAlertHoursRange'
          x-oapi-codegen-extra-tags:
            validate: omitempty,max=10,dive
    observeAlertContactPointIntegration:
      type: object
      required:
        - id
        - type
        - settings
        - status
      properties:
        id:
          type: string
          description: Integration ID (format `aci-<number>`).
        type:
          type: string
          enum:
            - email
            - webhook
            - pagerduty
          description: >-
            The delivery mechanism. Same vocabulary as an alert notification's
            channel.
        settings:
          type: object
          additionalProperties: true
          description: >-
            Settings belonging to `type`:

            - `email`: `observeAlertContactPointIntegrationSettingsEmail`. The
            mail server, its credentials and the
              sender address belong to the deployment, not to the project.
            - `webhook`: `observeAlertContactPointIntegrationSettingsWebhook`.
            The signing secret and every header
              value are masked (e.g. `Bearer ****abcd`) in every response except the one that creates the integration:
              the create response, or the update response for an integration the update adds.
            - `pagerduty`:
            `observeAlertContactPointIntegrationSettingsPagerDuty`. The
            integration key is masked (e.g.
              `****abcd`) in every response except the one that creates the integration.
        minSeverity:
          type: string
          enum:
            - info
            - warning
            - critical
          description: >
            Suppresses anything less severe than this level. Omit for no floor.
            Resolved notifications are always delivered regardless, so an
            integration that heard about a problem also hears that it is over.
        status:
          type: string
          enum:
            - active
            - paused
    errorRspV2:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            message:
              description: Error message
              type: string
              example: Validation failed
            details:
              description: Validation error details per field
              type: array
              items:
                type: object
                required:
                  - field
                  - message
                properties:
                  field:
                    description: Field name that failed validation
                    type: string
                    example: projectID
                  message:
                    description: Validation error message
                    type: string
                    example: required
    observeAlertHoursRange:
      type: object
      description: >
        One block of time within a day, on some weekdays. start is before end;
        end is exclusive and may be 24:00, so a whole day is 00:00-24:00. Times
        are on a 15-minute step.
      required:
        - weekdays
        - start
        - end
      properties:
        weekdays:
          type: array
          minItems: 1
          maxItems: 7
          items:
            type: string
            enum:
              - mon
              - tue
              - wed
              - thu
              - fri
              - sat
              - sun
            x-enum-varnames:
              - ObserveAlertHoursRangeWeekdaysMon
              - ObserveAlertHoursRangeWeekdaysTue
              - ObserveAlertHoursRangeWeekdaysWed
              - ObserveAlertHoursRangeWeekdaysThu
              - ObserveAlertHoursRangeWeekdaysFri
              - ObserveAlertHoursRangeWeekdaysSat
              - ObserveAlertHoursRangeWeekdaysSun
          x-oapi-codegen-extra-tags:
            validate: required,min=1,max=7,dive,oneof=mon tue wed thu fri sat sun
        start:
          type: string
          description: Start time, HH:MM.
          example: '09:00'
          x-oapi-codegen-extra-tags:
            validate: required,min=5,max=5
        end:
          type: string
          description: End time, HH:MM, exclusive. 24:00 runs to the end of the day.
          example: '18:00'
          x-oapi-codegen-extra-tags:
            validate: required,min=5,max=5
  responses:
    error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorRspV2'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Use an Observe API key from the management console. The key selects the
        project and must grant the permission listed on the operation. Keep this
        key on your server.

````

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