> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://api.docs.modulards.com/modular-ds-public-api/notification-configurations/configurations/retrieve-a-notification-configuration/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api.docs.modulards.com/_mcp/server. # Retrieve a notification configuration GET https://api.modulards.com/api/public/v1/alerts/{alert_id} Returns one notification configuration with its event settings, its Slack and Discord destinations (with their complete URL) and the contacts it notifies, together with the number of websites it covers that your token can reach. Use `include` to narrow the answer to some of them. Websites are added and removed explicitly with "Add websites to a notification configuration" and "Remove websites from a notification configuration", never replaced as a whole selection. Reference: https://api.docs.modulards.com/modular-ds-public-api/notification-configurations/configurations/retrieve-a-notification-configuration ## Authentication - `Authorization` header (bearer token, required) — Personal access token created in the Modular DS dashboard; read-only tokens can only call GET endpoints. ## Request ### Path parameters - `alert_id` (string, required) ### Query parameters - `include` (string, optional) — Narrows the related data returned to the listed ones. Accepted: `items`, `integrations` and `contacts`, separated by commas. All three are returned when omitted. ## Response ### 200 200 - Configuration - `data` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaData, optional) - `included` (list of ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaIncludedItems, optional) - `jsonapi` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaJsonapi, optional) ## Errors ### 404 Not Found Error 404 - Foreign configuration - `errors` (list of ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaErrorsItems, optional) - `jsonapi` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaJsonapi, optional) ## Types ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaData - `attributes` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataAttributes, optional) - `id` (string, optional) - `links` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataLinks, optional) - `relationships` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationships, optional) - `type` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaIncludedItems - `attributes` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaIncludedItemsAttributes, optional) - `id` (string, optional) - `links` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaIncludedItemsLinks, optional) - `type` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaJsonapi - `version` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaErrorsItems - `detail` (string, optional) - `status` (string, optional) - `title` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataAttributes - `created_at` (string, optional) - `discord_channel` (boolean, optional) - `email_channel` (boolean, optional) - `is_default` (boolean, optional) - `name` (string, optional) - `sites_count` (double, optional) - `slack_channel` (boolean, optional) - `status` (string, optional) - `updated_at` (string, optional) - `whatsapp_channel` (boolean, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataLinks - `self` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationships - `contacts` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsContacts, optional) - `integrations` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsIntegrations, optional) - `items` (ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsItems, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaIncludedItemsAttributes - `company` (any, optional, nullable) - `created_at` (string, optional) - `last_name` (string, optional) - `name` (string, optional) - `status` (string, optional) - `type` (string, optional) - `updated_at` (string, optional) - `url` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaIncludedItemsLinks - `self` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsContacts - `data` (list of ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsContactsDataItems, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsIntegrations - `data` (list of ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsIntegrationsDataItems, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsItems - `data` (list of ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsItemsDataItems, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsContactsDataItems - `id` (string, optional) - `type` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsIntegrationsDataItems - `id` (string, optional) - `type` (string, optional) ### ApiPublicV1AlertsAlertIdGetResponsesContentApplicationJsonSchemaDataRelationshipsItemsDataItems - `id` (string, optional) - `type` (string, optional) ## Examples **Response** ```json { "data": { "attributes": { "created_at": "2026-09-20T09:00:00.000000Z", "discord_channel": false, "email_channel": true, "is_default": true, "name": "Operations", "sites_count": 1, "slack_channel": true, "status": "enabled", "updated_at": "2026-09-20T09:00:00.000000Z", "whatsapp_channel": false }, "id": "12", "links": { "self": "https://api.modulards.com/api/public/v1/alerts/12" }, "relationships": { "contacts": { "data": [ { "id": "7", "type": "contacts" } ] }, "integrations": { "data": [ { "id": "9", "type": "alert-integrations" } ] }, "items": { "data": [ { "id": "301", "type": "alert-items" } ] } }, "type": "alerts" }, "included": [ { "attributes": { "status": "enabled", "type": "uptime.down" }, "id": "301", "type": "alert-items" }, { "attributes": { "created_at": "2026-09-18T10:00:00.000000Z", "type": "slack", "updated_at": "2026-09-18T10:00:00.000000Z", "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" }, "id": "9", "type": "alert-integrations" }, { "attributes": { "company": null, "created_at": "2026-08-01T09:00:00.000000Z", "last_name": "Doe", "name": "Alice", "updated_at": "2026-08-01T09:00:00.000000Z" }, "id": "7", "links": { "self": "https://api.modulards.com/api/public/v1/contacts/7" }, "type": "contacts" } ], "jsonapi": { "version": "1.1" } } ``` **SDK Code** ```python 200 - Configuration import requests url = "https://api.modulards.com/api/public/v1/alerts/alert_id" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript 200 - Configuration const url = 'https://api.modulards.com/api/public/v1/alerts/alert_id'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go 200 - Configuration package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.modulards.com/api/public/v1/alerts/alert_id" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby 200 - Configuration require 'uri' require 'net/http' url = URI("https://api.modulards.com/api/public/v1/alerts/alert_id") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java 200 - Configuration import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.modulards.com/api/public/v1/alerts/alert_id") .header("Authorization", "Bearer ") .asString(); ``` ```php 200 - Configuration request('GET', 'https://api.modulards.com/api/public/v1/alerts/alert_id', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp 200 - Configuration using RestSharp; var client = new RestClient("https://api.modulards.com/api/public/v1/alerts/alert_id"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift 200 - Configuration import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.modulards.com/api/public/v1/alerts/alert_id")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```