---
title: Delete notification alert
slug: reference/delete-notification-alert
docTags: 
createdAt: 2025-08-13T21:16:12.609Z
---

{
  "id": "FCd4D5mDG_3dOA6u4lLCo",
  "type": "api-oas-v2",
  "data": {
    "method": "DELETE",
    "url": "https://app.amberflo.io/notifications/{notification_id}",
    "servers": [
      {
        "url": "https://app.amberflo.io/notifications/{notification_id}"
      }
    ],
    "name": "Delete notification alert",
    "description": "<p>Deletes an existing notification alert and stops all monitoring for that configuration.\nUse this endpoint to permanently remove notifications that are no longer needed or\nto clean up test configurations.</p>\n<p>Once deleted, the notification will immediately stop monitoring events and no further\nalerts will be sent. This operation cannot be undone - you must recreate the\nnotification if needed again.</p>\n<p><strong>Important Note:</strong> Historical alert events logged in the <a>Account Event API</a>\nwill remain available even after notification deletion.</p>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "notification_id",
          "type": "string",
          "description": "Unique identifier for the notification to delete. Format is UUID v4."
        }
      ],
      "headerParameters": [],
      "queryParameters": [],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "api_key",
          "name": "x-api-key",
          "kind": "optional",
          "type": "apiKey",
          "in": "header"
        }
      ]
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Notification successfully deleted with confirmation details",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "Complete notification alert configuration including system-generated metadata and timestamps.",
            "customType": "notification-response",
            "schema": [
              {
                "name": "id",
                "kind": "required",
                "type": "string",
                "description": "Unique identifier of the notification alert. Format is UUID v4.",
                "example": ""
              },
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "Name of the notification. This must be unique.",
                "example": "",
                "default": "Too many api calls"
              },
              {
                "name": "description",
                "kind": "optional",
                "type": "string",
                "description": "Description displayed on the UI.",
                "example": "",
                "default": "Alert on too many api calls"
              },
              {
                "name": "notificationType",
                "kind": "optional",
                "type": "string<usage | usage-cost | invoice | prepaid | pay-as-you-go-promotion | product-item-units | product-item-price | undefined-meter | undefined-customer>",
                "description": "What to notify about.",
                "example": "",
                "default": "usage"
              },
              {
                "name": "meterId",
                "kind": "optional",
                "type": "string",
                "description": "Id of a meter, as defined in [Meters API](ref:get_meters).\n",
                "example": "",
                "default": "24ad0b40-a217-11eb-b01a-19ff91d9370d"
              },
              {
                "name": "cron",
                "kind": "optional",
                "type": "string",
                "description": "Cron expression for the schedule. For details see [crontab.guru](https://crontab.guru/examples.html).\n\nThis determines when (or how frequently) the conditions for the notification are checked.\n",
                "example": ""
              },
              {
                "name": "frequency",
                "kind": "optional",
                "type": "string",
                "description": "Maximum frequency with which to send the notifications.\n\nPossible values are, i.e. the notification will be sent:\n- `always`: every time the condition is met\n- `once`: at most one time for a given customer;\n- `once-per-billing-period`: at most one *per billing period* of the customer;\n- `every #h`, where `#` is a number: at most every `#` hours.\n\nDefaults to `always` for the `usage` notification type, `every 1h` for all others.\n\nNote that `once-per-billing-period` cannot be used with notification types: `usage`, `undefined-meter` and `undefined-customer`.\n",
                "example": "",
                "default": "every 1h"
              },
              {
                "name": "createPrepaidCard",
                "kind": "optional",
                "type": "boolean",
                "description": "Set this to `true` if you want to create a prepaid card for the customer when the notification is triggered.\nThe prepaid card will be created with the `prepaidPrice` amount when the invoice meets the threshold condition and value.\n\nNote that this can only be used for `invoice` notification type with customer filter mode as `specific-customer`.\n",
                "example": ""
              },
              {
                "name": "prepaidPrice",
                "kind": "optional",
                "type": "number",
                "description": "Amount to be added to the prepaid card when the notification is triggered.\n",
                "example": ""
              },
              {
                "name": "webhookUrl",
                "kind": "optional",
                "type": "string",
                "description": "Webhook url endpoint. Make a POST HTTP request to this url.",
                "example": "",
                "default": "https://hooks.slack.com/services/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"
              },
              {
                "name": "webhookHeaders",
                "kind": "optional",
                "type": "string",
                "description": "Stringified JSON for headers with keywords. See \"keywords\" in the guide.",
                "example": ""
              },
              {
                "name": "webhookPayload",
                "kind": "optional",
                "type": "string",
                "description": "Stringified JSON with keywords. See \"keywords\" in the guide.",
                "example": ""
              },
              {
                "name": "email",
                "kind": "optional",
                "type": "array",
                "description": "Email addresses to send the notifications to.",
                "example": "",
                "default": [
                  "alert@mycompany.io"
                ],
                "itemType": "string",
                "customType": "string[]",
                "itemExample": "",
                "itemDefault": ""
              },
              {
                "name": "emailToCustomer",
                "kind": "optional",
                "type": "boolean",
                "description": "Set this to `true` if you want to send the notification to the customer email, as defined in the [Customer API](ref:post_customers).\nNote this can only be used when customer filter mode is `per-customer` or `specific-customer`.",
                "example": ""
              },
              {
                "name": "filter",
                "kind": "optional",
                "type": "map",
                "description": "\"where\" clause for the [Usage](ref:post_usage) query. Each entry is a dimension and a list of values to filter for.\n\nValid filters are:\n- `customerId`\n- `customerName`\n- Any dimension defined in for the meter, see the [dimensions field](ref:post_meters).\n\nNote that filter can be only used with notification type `usage`.\n",
                "example": "",
                "customType": "map<string, string[]>",
                "schema": []
              },
              {
                "name": "filterByTags",
                "kind": "optional",
                "type": "map",
                "description": "\"where\" clause that filters meters based on tags.\n\nExample value: {\"meter_group\": {\"meter\": [\"ai\"]}}.\n\nNote that filterByTag can be only used with notification type \"usage-cost\".\n",
                "example": "",
                "customType": "map<string, object>",
                "schema": []
              },
              {
                "name": "groupByDimensions",
                "kind": "optional",
                "type": "array",
                "description": "array of dimensions on which to group by. The dimensions must be a subset of the dimensions defined on your meter.\n\nA different alert will be sent for each combination of dimension values that meets the threshold condition.\n\nTo understand the effect of groupByDimensions on your alert, consider you ingest:\n- {\"meterValue\": 100, \"dimensions\": {\"region\": \"us\"}}\n- {\"meterValue\": 150, \"dimensions\": {\"region\": \"ca\"}}\n\nIf you set groupByDimensions to [\"region\"], you will get two alerts: one for \"us\" with value 100, and one for \"ca\" with value 150.\nIf you don't set groupByDimensions, you will get a single alert for the value of 250.\n\nNote that:\n- groupByDimensions can be only used with notification types usage and usage-cost\n- up to 2 dimensions can be used for groupByDimensions\n- for notification type usage-cost, the dimensions must be part of a pricing-plan.\n",
                "example": "",
                "itemType": "string",
                "customType": "string[]",
                "itemExample": "",
                "itemDefault": ""
              },
              {
                "name": "customSubject",
                "kind": "optional",
                "type": "string",
                "description": "Set this if you want to customize the alert email subject. The email subject will then have the following format:\n```\n{customSubject} - {customerName}\n```\n",
                "example": ""
              },
              {
                "name": "thresholdCondition",
                "kind": "optional",
                "type": "string<less-than | greater-than | equals | percent-change | always-true | less-than-percent | greater-than-percent>",
                "description": "",
                "example": "",
                "default": "greater-than"
              },
              {
                "name": "thresholdValue",
                "kind": "optional",
                "type": "number",
                "description": "Threshold value for the condition",
                "example": "",
                "default": 1000
              },
              {
                "name": "range",
                "kind": "optional",
                "type": "string",
                "description": "Time range for the condition. The range is calculated from the time the notification is evaluated.\n\nOptions:\n- \"hour\"\n- \"day\"\n- \"week\"\n- \"month\"\n- A custom range in the format \"[NUMBER] [UNIT] to date\". Accepted units are \"hour\", \"day\", \"week\", \"month\", and \"year\". For example: \"month to date\", and \"2 weeks to date\".\n",
                "example": "",
                "default": "day"
              },
              {
                "name": "customerFilterMode",
                "kind": "optional",
                "type": "string<* | per-customer | specific-customer>",
                "description": "Options:\n- `*` aggregates for all customers\n- `per-customer` runs aggregation per customer\n- `specific-customer` filter data for customer and provide `customerId`\n",
                "example": "",
                "default": "*"
              },
              {
                "name": "customerId",
                "kind": "optional",
                "type": "string",
                "description": "`customerId` as defined in the [Customer API](ref:post_customers).",
                "example": ""
              },
              {
                "name": "productPlanId",
                "kind": "optional",
                "type": "string",
                "description": "`productPlanId` as defined in the [Product Plan API](ref:get_payments-pricing-amberflo-account-pricing-product-plans-list).",
                "example": ""
              },
              {
                "name": "enabled",
                "kind": "optional",
                "type": "boolean",
                "description": "Whether the notification is enabled or not.",
                "example": "",
                "default": true
              },
              {
                "name": "createTime",
                "kind": "optional",
                "type": "integer",
                "description": "Creation time in milliseconds since [UNIX epoch](https://en.wikipedia.org/wiki/Unix_time).",
                "example": 0
              },
              {
                "name": "updateTime",
                "kind": "optional",
                "type": "integer",
                "description": "Last update time in milliseconds since [UNIX epoch](https://en.wikipedia.org/wiki/Unix_time).",
                "example": 0
              }
            ],
            "modelRef": "#/components/schemas/notification-response",
            "complexItems": [
              {
                "name": "object",
                "schema": [
                  {
                    "name": "id",
                    "kind": "required",
                    "type": "string",
                    "description": "Unique identifier of the notification alert. Format is UUID v4.",
                    "example": ""
                  },
                  {
                    "name": "name",
                    "kind": "required",
                    "type": "string",
                    "description": "Name of the notification. This must be unique.",
                    "example": "",
                    "default": "Too many api calls"
                  },
                  {
                    "name": "description",
                    "kind": "optional",
                    "type": "string",
                    "description": "Description displayed on the UI.",
                    "example": "",
                    "default": "Alert on too many api calls"
                  },
                  {
                    "name": "notificationType",
                    "kind": "optional",
                    "type": "string<usage | usage-cost | invoice | prepaid | pay-as-you-go-promotion | product-item-units | product-item-price | undefined-meter | undefined-customer>",
                    "description": "What to notify about.",
                    "example": "",
                    "default": "usage"
                  },
                  {
                    "name": "meterId",
                    "kind": "optional",
                    "type": "string",
                    "description": "Id of a meter, as defined in [Meters API](ref:get_meters).\n",
                    "example": "",
                    "default": "24ad0b40-a217-11eb-b01a-19ff91d9370d"
                  },
                  {
                    "name": "cron",
                    "kind": "optional",
                    "type": "string",
                    "description": "Cron expression for the schedule. For details see [crontab.guru](https://crontab.guru/examples.html).\n\nThis determines when (or how frequently) the conditions for the notification are checked.\n",
                    "example": ""
                  },
                  {
                    "name": "frequency",
                    "kind": "optional",
                    "type": "string",
                    "description": "Maximum frequency with which to send the notifications.\n\nPossible values are, i.e. the notification will be sent:\n- `always`: every time the condition is met\n- `once`: at most one time for a given customer;\n- `once-per-billing-period`: at most one *per billing period* of the customer;\n- `every #h`, where `#` is a number: at most every `#` hours.\n\nDefaults to `always` for the `usage` notification type, `every 1h` for all others.\n\nNote that `once-per-billing-period` cannot be used with notification types: `usage`, `undefined-meter` and `undefined-customer`.\n",
                    "example": "",
                    "default": "every 1h"
                  },
                  {
                    "name": "createPrepaidCard",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Set this to `true` if you want to create a prepaid card for the customer when the notification is triggered.\nThe prepaid card will be created with the `prepaidPrice` amount when the invoice meets the threshold condition and value.\n\nNote that this can only be used for `invoice` notification type with customer filter mode as `specific-customer`.\n",
                    "example": ""
                  },
                  {
                    "name": "prepaidPrice",
                    "kind": "optional",
                    "type": "number",
                    "description": "Amount to be added to the prepaid card when the notification is triggered.\n",
                    "example": ""
                  },
                  {
                    "name": "webhookUrl",
                    "kind": "optional",
                    "type": "string",
                    "description": "Webhook url endpoint. Make a POST HTTP request to this url.",
                    "example": "",
                    "default": "https://hooks.slack.com/services/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"
                  },
                  {
                    "name": "webhookHeaders",
                    "kind": "optional",
                    "type": "string",
                    "description": "Stringified JSON for headers with keywords. See \"keywords\" in the guide.",
                    "example": ""
                  },
                  {
                    "name": "webhookPayload",
                    "kind": "optional",
                    "type": "string",
                    "description": "Stringified JSON with keywords. See \"keywords\" in the guide.",
                    "example": ""
                  },
                  {
                    "name": "email",
                    "kind": "optional",
                    "type": "array",
                    "description": "Email addresses to send the notifications to.",
                    "example": "",
                    "default": [
                      "alert@mycompany.io"
                    ],
                    "itemType": "string",
                    "customType": "string[]",
                    "itemExample": "",
                    "itemDefault": ""
                  },
                  {
                    "name": "emailToCustomer",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Set this to `true` if you want to send the notification to the customer email, as defined in the [Customer API](ref:post_customers).\nNote this can only be used when customer filter mode is `per-customer` or `specific-customer`.",
                    "example": ""
                  },
                  {
                    "name": "filter",
                    "kind": "optional",
                    "type": "map",
                    "description": "\"where\" clause for the [Usage](ref:post_usage) query. Each entry is a dimension and a list of values to filter for.\n\nValid filters are:\n- `customerId`\n- `customerName`\n- Any dimension defined in for the meter, see the [dimensions field](ref:post_meters).\n\nNote that filter can be only used with notification type `usage`.\n",
                    "example": "",
                    "customType": "map<string, string[]>",
                    "schema": []
                  },
                  {
                    "name": "filterByTags",
                    "kind": "optional",
                    "type": "map",
                    "description": "\"where\" clause that filters meters based on tags.\n\nExample value: {\"meter_group\": {\"meter\": [\"ai\"]}}.\n\nNote that filterByTag can be only used with notification type \"usage-cost\".\n",
                    "example": "",
                    "customType": "map<string, object>",
                    "schema": []
                  },
                  {
                    "name": "groupByDimensions",
                    "kind": "optional",
                    "type": "array",
                    "description": "array of dimensions on which to group by. The dimensions must be a subset of the dimensions defined on your meter.\n\nA different alert will be sent for each combination of dimension values that meets the threshold condition.\n\nTo understand the effect of groupByDimensions on your alert, consider you ingest:\n- {\"meterValue\": 100, \"dimensions\": {\"region\": \"us\"}}\n- {\"meterValue\": 150, \"dimensions\": {\"region\": \"ca\"}}\n\nIf you set groupByDimensions to [\"region\"], you will get two alerts: one for \"us\" with value 100, and one for \"ca\" with value 150.\nIf you don't set groupByDimensions, you will get a single alert for the value of 250.\n\nNote that:\n- groupByDimensions can be only used with notification types usage and usage-cost\n- up to 2 dimensions can be used for groupByDimensions\n- for notification type usage-cost, the dimensions must be part of a pricing-plan.\n",
                    "example": "",
                    "itemType": "string",
                    "customType": "string[]",
                    "itemExample": "",
                    "itemDefault": ""
                  },
                  {
                    "name": "customSubject",
                    "kind": "optional",
                    "type": "string",
                    "description": "Set this if you want to customize the alert email subject. The email subject will then have the following format:\n```\n{customSubject} - {customerName}\n```\n",
                    "example": ""
                  },
                  {
                    "name": "thresholdCondition",
                    "kind": "optional",
                    "type": "string<less-than | greater-than | equals | percent-change | always-true | less-than-percent | greater-than-percent>",
                    "description": "",
                    "example": "",
                    "default": "greater-than"
                  },
                  {
                    "name": "thresholdValue",
                    "kind": "optional",
                    "type": "number",
                    "description": "Threshold value for the condition",
                    "example": "",
                    "default": 1000
                  },
                  {
                    "name": "range",
                    "kind": "optional",
                    "type": "string",
                    "description": "Time range for the condition. The range is calculated from the time the notification is evaluated.\n\nOptions:\n- \"hour\"\n- \"day\"\n- \"week\"\n- \"month\"\n- A custom range in the format \"[NUMBER] [UNIT] to date\". Accepted units are \"hour\", \"day\", \"week\", \"month\", and \"year\". For example: \"month to date\", and \"2 weeks to date\".\n",
                    "example": "",
                    "default": "day"
                  },
                  {
                    "name": "customerFilterMode",
                    "kind": "optional",
                    "type": "string<* | per-customer | specific-customer>",
                    "description": "Options:\n- `*` aggregates for all customers\n- `per-customer` runs aggregation per customer\n- `specific-customer` filter data for customer and provide `customerId`\n",
                    "example": "",
                    "default": "*"
                  },
                  {
                    "name": "customerId",
                    "kind": "optional",
                    "type": "string",
                    "description": "`customerId` as defined in the [Customer API](ref:post_customers).",
                    "example": ""
                  },
                  {
                    "name": "productPlanId",
                    "kind": "optional",
                    "type": "string",
                    "description": "`productPlanId` as defined in the [Product Plan API](ref:get_payments-pricing-amberflo-account-pricing-product-plans-list).",
                    "example": ""
                  },
                  {
                    "name": "enabled",
                    "kind": "optional",
                    "type": "boolean",
                    "description": "Whether the notification is enabled or not.",
                    "example": "",
                    "default": true
                  }
                ],
                "modelRef": "#/components/schemas/notification-put-request",
                "customType": "notification-put-request"
              },
              {
                "name": "object",
                "schema": [
                  {
                    "name": "createTime",
                    "kind": "optional",
                    "type": "integer",
                    "description": "Creation time in milliseconds since [UNIX epoch](https://en.wikipedia.org/wiki/Unix_time).",
                    "example": 0
                  },
                  {
                    "name": "updateTime",
                    "kind": "optional",
                    "type": "integer",
                    "description": "Last update time in milliseconds since [UNIX epoch](https://en.wikipedia.org/wiki/Unix_time).",
                    "example": 0
                  }
                ]
              }
            ],
            "complexType": "allOf",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "400",
        "description": "Invalid notification ID format or malformed request",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "401",
        "description": "Missing or invalid API key authentication",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "403",
        "description": "Insufficient permissions to access this resource",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "404",
        "description": "Notification not found or already deleted",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "500",
        "description": "Internal server error occurred while processing request",
        "jsonExample": "",
        "isExpanded": true
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "Z-rvErfJM812_vImPgvyO",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request DELETE \\\n     --url https://app.amberflo.io/notifications/{notification_id} \\\n     --header 'accept: application/json'"
        },
        {
          "id": "ay-fQDcPFcWOIjno18L2j",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'DELETE',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://app.amberflo.io/notifications/{notification_id}\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "43yhn74tepKWddP529eEl",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://app.amberflo.io/notifications/{notification_id}\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Delete.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "rd1FzsHzSVvB_OjWuI9kI",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://app.amberflo.io/notifications/{notification_id}\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"DELETE\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "Z-rvErfJM812_vImPgvyO"
    },
    "results": {
      "languages": [
        {
          "id": "response-0-200",
          "language": "200",
          "code": "// Notification successfully deleted with confirmation details\n{\n  \"id\": \"\",\n  \"name\": \"\",\n  \"description\": \"\",\n  \"notificationType\": \"\",\n  \"meterId\": \"\",\n  \"cron\": \"\",\n  \"frequency\": \"\",\n  \"createPrepaidCard\": false,\n  \"prepaidPrice\": 0,\n  \"webhookUrl\": \"\",\n  \"webhookHeaders\": \"\",\n  \"webhookPayload\": \"\",\n  \"email\": [\n    \"\"\n  ],\n  \"emailToCustomer\": false,\n  \"filter\": \"\",\n  \"filterByTags\": \"\",\n  \"groupByDimensions\": [\n    \"\"\n  ],\n  \"customSubject\": \"\",\n  \"thresholdCondition\": \"\",\n  \"thresholdValue\": 0,\n  \"range\": \"\",\n  \"customerFilterMode\": \"\",\n  \"customerId\": \"\",\n  \"productPlanId\": \"\",\n  \"enabled\": false,\n  \"createTime\": 0,\n  \"updateTime\": 0\n}"
        },
        {
          "id": "response-1-400",
          "language": "400",
          "code": "// Invalid notification ID format or malformed request\n"
        },
        {
          "id": "response-2-401",
          "language": "401",
          "code": "// Missing or invalid API key authentication\n"
        },
        {
          "id": "response-3-403",
          "language": "403",
          "code": "// Insufficient permissions to access this resource\n"
        },
        {
          "id": "response-4-404",
          "language": "404",
          "code": "// Notification not found or already deleted\n"
        },
        {
          "id": "response-5-500",
          "language": "500",
          "code": "// Internal server error occurred while processing request\n"
        }
      ],
      "selectedLanguageId": "response-0-200"
    }
  },
  "children": [
    {
      "text": "",
      "id": "Z0gGXagdvBv-Cv5CNF8y8"
    }
  ]
}