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

# Update an alert route

> Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.**

### Asynchronous Rule Creation

For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background.

**Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules.

If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization.



## OpenAPI

````yaml https://rootly-heroku.s3.amazonaws.com/swagger/v1/swagger.json put /v1/alert_routes/{id}
openapi: 3.0.1
info:
  title: Rootly API v1
  version: v1
  description: >+
    # How to generate an API Key?

    - **Organization dropdown** > **Organization Settings** > **API Keys**


    # JSON:API Specification

    Rootly is using **JSON:API** (https://jsonapi.org) specification:

    - JSON:API is a specification for how a client should request that resources
    be fetched or modified, and how a server should respond to those requests.

    - JSON:API is designed to minimize both the number of requests and the
    amount of data transmitted between clients and servers. This efficiency is
    achieved without compromising readability, flexibility, or discoverability.

    - JSON:API requires use of the JSON:API media type
    (**application/vnd.api+json**) for exchanging data.


    # Authentication and Requests

    We use standard HTTP Authentication over HTTPS to authorize your requests.

    ```
      curl --request GET \
    --header 'Content-Type: application/vnd.api+json' \

    --header 'Authorization: Bearer YOUR-TOKEN' \

    --url https://api.rootly.com/v1/incidents

    ```


    <br/>


    # Rate limiting

    - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls
    **per API key** every **60 seconds** (0 hours). The limit is calculated over
    a **0-hour sliding window** looking back from the current time. While the
    limit can be configured to support higher thresholds, you must first contact
    your **Rootly Customer Success Manager** to make any adjustments.

    - There is a default limit of **3** **POST**, **PUT**, **PATCH** or
    **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit
    is calculated over a **0-hour sliding window** looking back from the current
    time. While the limit can be configured to support higher thresholds, you
    must first contact your **Rootly Customer Success Manager** to make any
    adjustments.

    - When rate limits are exceeded, the API will return a **429 Too Many
    Requests** HTTP status code with the response: `{"error": "Rate limit
    exceeded. Try again later."}`

    - **X-RateLimit headers** are included in every API response, providing
    real-time rate limit information:
      - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., "1000, 1000;window=3600" for 1000 requests per hour)
      - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window
      - **X-RateLimit-Used** - The number of requests already made in the current window
      - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds

    # Pagination

    - Pagination is supported for all endpoints that return a collection of
    items.

    - Pagination is controlled by the **page** query parameter


    ## Example

    ```
      curl --request GET \
    --header 'Content-Type: application/vnd.api+json' \

    --header 'Authorization: Bearer YOUR-TOKEN' \

    --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10

    ```

  x-logo:
    url: https://rootly-heroku.s3.us-east-1.amazonaws.com/swagger/v1/logo.png
servers:
  - url: https://api.rootly.com
security: []
paths:
  /v1/alert_routes/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    put:
      tags:
        - AlertRoutes
      summary: Update an alert route
      description: >-
        Update a specific alert route by id. **Note: This endpoint requires
        access to Advanced Alert Routing. If you're unsure whether you have
        access to this feature, please contact Rootly customer support.**


        ### Asynchronous Rule Creation


        For organizations with large numbers of routing rules, Rootly supports
        asynchronous rule processing to improve performance. When enabled, rule
        updates happen in the background.


        **Important**: When async processing is enabled, the rules list in the
        API response will not be up-to-date immediately after update. You should
        refetch the alert route after a few minutes to get the updated rules.


        If you experience slow operations when managing alert routes with many
        rules, contact Rootly customer support to enable asynchronous rule
        processing for your organization.
      operationId: updateAlertRoute
      parameters: []
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/update_alert_route'
        required: true
      responses:
        '200':
          description: 'update: handles mixed position types correctly'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/alert_route_response'
        '404':
          description: cross-team access denied
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_list'
        '422':
          description: 'update: raises error when multiple fallback rules are present'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_list'
      security:
        - bearer_auth: []
components:
  schemas:
    update_alert_route:
      type: object
      properties:
        data:
          type: object
          properties:
            type:
              type: string
              enum:
                - alert_routes
            attributes:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the alert route
                enabled:
                  type: boolean
                  description: Whether the alert route is enabled
                alerts_source_ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                    description: The ID of the alerts source
                owning_team_ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                    description: The ID of the owning team
                rules:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: The name of the alert routing rule
                      position:
                        type: integer
                        description: >-
                          The position of the alert routing rule for ordering
                          evaluation
                      fallback_rule:
                        type: boolean
                        description: Whether this is a fallback rule
                        default: false
                      destinations:
                        type: array
                        items:
                          type: object
                          properties:
                            target_type:
                              type: string
                              enum:
                                - Service
                                - Group
                                - Functionality
                                - EscalationPolicy
                              description: >-
                                The type of the target. Please contact support
                                if you encounter issues using `Functionality` as
                                a target type.
                            target_id:
                              type: string
                              format: uuid
                              description: The ID of the target
                          required:
                            - target_type
                            - target_id
                      condition_groups:
                        type: array
                        items:
                          type: object
                          properties:
                            position:
                              type: integer
                              description: The position of the condition group
                            conditions:
                              type: array
                              items:
                                type: object
                                properties:
                                  property_field_condition_type:
                                    type: string
                                    enum:
                                      - is_one_of
                                      - is_not_one_of
                                      - contains
                                      - does_not_contain
                                      - starts_with
                                      - ends_with
                                      - matches_regex
                                      - is_empty
                                  property_field_name:
                                    type: string
                                    description: The name of the property field
                                  property_field_type:
                                    type: string
                                    enum:
                                      - attribute
                                      - payload
                                      - alert_field
                                  property_field_value:
                                    type: string
                                    description: The value of the property field
                                    nullable: true
                                  property_field_values:
                                    type: array
                                    items:
                                      type: string
                                    nullable: true
                                  alert_urgency_ids:
                                    type: array
                                    description: >-
                                      The Alert Urgency IDs to check in the
                                      condition
                                    items:
                                      type: string
                                    nullable: true
                                  conditionable_type:
                                    type: string
                                    description: The type of the conditionable
                                    enum:
                                      - AlertField
                                    nullable: true
                                  conditionable_id:
                                    type: string
                                    format: uuid
                                    description: The ID of the conditionable
                                    nullable: true
                                required:
                                  - property_field_condition_type
                                  - property_field_type
                          required:
                            - conditions
                    required:
                      - name
                      - destinations
                      - condition_groups
              additionalProperties: false
          required:
            - type
            - attributes
      required:
        - data
    alert_route_response:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
              description: Unique ID of the alert route
            type:
              type: string
              enum:
                - alert_routes
            attributes:
              type: object
              allOf:
                - $ref: '#/components/schemas/alert_route'
          required:
            - id
            - type
            - attributes
      required:
        - data
    errors_list:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              status:
                type: string
              code:
                type: string
                nullable: true
              detail:
                type: string
                nullable: true
            required:
              - title
              - status
    alert_route:
      type: object
      properties:
        name:
          type: string
          description: The name of the alert route
        enabled:
          type: boolean
          description: Whether the alert route is enabled
        alerts_source_ids:
          type: array
          items:
            type: string
            format: uuid
            description: The ID of the alerts source
        owning_team_ids:
          type: array
          items:
            type: string
            format: uuid
            description: The ID of the owning team
        rules:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the alert routing rule
              position:
                type: integer
                description: The position of the alert routing rule for ordering evaluation
              fallback_rule:
                type: boolean
                description: Whether this is a fallback rule
                default: false
              destinations:
                type: array
                items:
                  type: object
                  properties:
                    target_type:
                      type: string
                      enum:
                        - Service
                        - Group
                        - Functionality
                        - EscalationPolicy
                      description: >-
                        The type of the target. Please contact support if you
                        encounter issues using `Functionality` as a target type.
                    target_id:
                      type: string
                      format: uuid
                      description: The ID of the target
                  required:
                    - target_type
                    - target_id
              condition_groups:
                type: array
                items:
                  type: object
                  properties:
                    position:
                      type: integer
                      description: The position of the condition group
                    conditions:
                      type: array
                      items:
                        type: object
                        properties:
                          property_field_condition_type:
                            type: string
                            enum:
                              - is_one_of
                              - is_not_one_of
                              - contains
                              - does_not_contain
                              - starts_with
                              - ends_with
                              - matches_regex
                              - is_empty
                          property_field_name:
                            type: string
                            description: The name of the property field
                          property_field_type:
                            type: string
                            enum:
                              - attribute
                              - payload
                              - alert_field
                          property_field_value:
                            type: string
                            description: The value of the property field
                            nullable: true
                          property_field_values:
                            type: array
                            items:
                              type: string
                            nullable: true
                          alert_urgency_ids:
                            type: array
                            description: The Alert Urgency IDs to check in the condition
                            items:
                              type: string
                            nullable: true
                          conditionable_type:
                            type: string
                            description: The type of the conditionable
                            enum:
                              - AlertField
                            nullable: true
                          conditionable_id:
                            type: string
                            format: uuid
                            description: The ID of the conditionable
                            nullable: true
                        required:
                          - property_field_condition_type
                          - property_field_type
                  required:
                    - conditions
            required:
              - name
              - destinations
              - condition_groups
      required:
        - name
        - alerts_source_ids
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer

````