### API Key Example Source: https://docs.incident.io/api-reference/api-keys-v1/list An example of an API key. ```APIDOC ## API Key Example ``` My test API key ``` ``` -------------------------------- ### Alert Source Configuration Example Source: https://docs.incident.io/api-reference/alert-sources-v2/show This example demonstrates the structure of an alert source configuration, including various settings like event URLs, auto-resolve behavior, email options, heartbeat configurations, and custom HTTP options. ```json { "alert_source": { "alert_events_url": "https://api.incident.io/v2/alert_events/http/01GW2G3V0S59R238FAHPDS1R66", "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "email_options": { "email_address": "lawrence@example.com" }, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60, "ping_url": "https://api.incident.io/v2/heartbeat/01GW2G3V0S59R238FAHPDS1R66/ping" }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "return {\n title: $.title || $.name || 'Unknown Alert',\n" } } } ``` -------------------------------- ### Create Alert Source Payload Example Source: https://docs.incident.io/api-reference/alert-sources-v2/create This example demonstrates the structure of a payload for creating an alert source. It includes configurations for HTTP custom options, such as deduplication and transformation expressions. ```json { "alert_source": { "alert_events_url": "https://api.incident.io/v2/alert_events/http/01GW2G3V0S59R238FAHPDS1R66", "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "email_options": { "email_address": "lawrence@example.com" }, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60, "ping_url": "https://api.incident.io/v2/heartbeat/01GW2G3V0S59R238FAHPDS1R66/ping" }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "return {\n title: $.title || $.name || 'Unknown Alert',\n status: $.status === 'resolved' ? 'resolved' : 'firing',\n description: $.description || $.message || '',\n sourceURL: $.url || $.link || '',\n metadata: { team: $.team, severity: $.severity }\n}" }, "id": "01GW2G3V0S59R238FAHPDS1R66", "jira_options": { "project_ids": [ "01GBSQF3FHF7FWZQNWGHAVQ804", "10043" ] }, "name": "Production Web Dashboard Alerts", "owning_team_ids": [ "01G0J1EXE7AXZ2C93K61WBPYEH" ], "secret_token": "some-secret-token", "source_type": "alertmanager", "template": { "attributes": [ { "alert_attribute_id": "abc123", "binding": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "merge_strategy": "first_wins", "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } } ], "description": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" }, "expressions": [ { "else_branch": { "result": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } }, "label": "Team Slack channel", "operations": [ { "branches": { "branches": [ { "condition_groups": [ { "conditions": [ { "operation": { "label": "Lawrence Jones", "value": "01FCQSP07Z74QMMYPDDGQB9FTG" }, "param_bindings": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "subject": "incident.severity", "value": { "literal": "SEV123", "reference": "incident.severity" } } } ] } ] } ] }, "operation_type": "navigate", "parse": { "returns": { "array": true, "type": "IncidentStatus" }, "source": "metadata.annotations[\"github.com/repo\"]" } } ] } ] } } } ``` -------------------------------- ### AlertTemplatePayloadV2 Example Source: https://docs.incident.io/api-reference/alert-sources-v2/update An example payload for an alert template, including attributes, description, and expressions for dynamic content. ```json { "attributes": [ { "alert_attribute_id": "abc123", "binding": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "merge_strategy": "first_wins", "value": { "literal": "SEV123", "reference": "incident.severity" } } } ], "description": { "literal": "SEV123", "reference": "incident.severity" }, "expressions": [ { "else_branch": { "result": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "value": { "literal": "SEV123", "reference": "incident.severity" } } }, "label": "Team Slack channel", "operations": [ { "branches": { "branches": [ { "condition_groups": ``` -------------------------------- ### AlertTemplatePayloadV2 Example Source: https://docs.incident.io/api-reference/alert-sources-v2/create An example payload for an alert template, including an alert attribute ID. ```json { "attributes": [ { "alert_attribute_id": "abc123" } ] } ``` -------------------------------- ### OpenAPI v3 Specification Example Source: https://docs.incident.io/api-reference/utilities-v1/show-openapi-v3-spec This is an example of the OpenAPI v3 specification file for the incident.io API. It outlines the API's structure, endpoints, and information. ```yaml openapi: 3.0.3 info: description: "This is the API reference for incident.io.\n\nIt documents available API endpoints, provides examples of how to use it, and\ninstructions around things like authentication and error handling.\n\nThe API is hosted at:\n\n- https://api.incident.io/\n\nAnd you will need to create an API key via your [incident.io dashboard](https://app.incident.io/settings/api-keys) to make requests.\n\n# Making requests\n\nHere are the key concepts required to make requests to the incident.io API.\n\n## Authentication\n\nFor all requests made to the incident.io API, you'll need an API key.\n\nTo create an API key, head to the incident dashboard and visit [API keys](https://app.incident.io/settings/api-keys). When you create the key, you'll be able to choose what actions it can take for your account: choose carefully, as those roles can only be set when you first create the key. We'll only show you the token once, so make sure you store it somewhere safe.\n\nAPI keys are global to your incident.io account, and can be managed by anyone who has the right permissions. We display the user that created the API key, and the API key will remain valid if that user becomes deactivated.\n\nOnce you have the key, you should make requests to the API that set the `Authorization` request header using a "Bearer" authentication scheme: ``` Authorization: Bearer ``` ## Rate Limits\n\nThe incident.io API enforces rate limits to ensure consistent performance for all users.\n\nThe default rate limit is 1200 requests/minute per API key. This limit applies to most endpoints across the API.\n\nSome endpoints have lower rate limits, particularly those that interact with external third-party systems that impose their own limitations. These specific limits vary by endpoint, and we recommend relying on the rate-limit error responses to understand usage patterns and implement appropriate retry strategies.\n\nWhen you exceed a rate limit, the API will respond with a `429 Too Many Requests` status code, along with a JSON response that includes information about the limit and when you can retry: ```json { "type": "too_many_requests", "status": 429, "request_id": "b839a403-7704-41c1-bf6a-39a2d68caefa", "rate_limit": { "name": "api_key_name", "limit": 1200, "remaining": 0, "retry_after": "Thu, 17 Apr 2025 11:17:18 UTC" }, "errors": [ { "code": "too_many_requests", "message": "Too many requests hit the API too quickly. We recommend an exponential backoff of your requests." } ] } ``` The response includes: * The name of the API key (`name`) * The bucket limit (`limit`) * The number of requests remaining (`remaining`) * When you can retry requests (`retry_after`) ## Errors\n\nWe use standard HTTP response codes to indicate the status or failure of API requests.\n\nThe API response body will be JSON, and contain more detailed information on the nature of the error.\n An example error when a request is made without an API key: ```json { "type": "authentication_error", "status": 401, "request_id": "8e3cc412-b49d-4957-9073-2c19d2c61804", "errors": [ { "code": "missing_authorization_material", "message": "No authorization material provided in request" } ] } ``` Note that the error: - Contains the HTTP status (`401`) - References the type of error (`authentication_error`) - Includes a `request_id` that can be provided to incident.io support to help debug questions with your API request - Provides a list of individual errors, which go into detail about why the error occurred The most common error will be a 422 Validation Error, which is returned when the request was rejected due to failing validations.\n\nThese errors look like this:\n ```json { "type": "validation_error", "status": 422, "request_id": "631766c4-4afd-4803-997c-cd700928fa4b", "errors": [ { "code": "is_required", "message": "A severity is required to open an incident", "source": { "field": "severity_id" } } ] } ``` This error is caused by not providing a severity identifier, which should be at the `severity_id` field of the request payload. Errors like these can be mapped to forms, should you be integrating with the API from a user-interface.\n ## Compatibility\n\nWe won't make breaking changes to existing API services or endpoints, but will expect integrators to upgrade themselves to the latest API endpoints within 3 months of us deprecating the old service.\n\nWe will make changes that are considered backwards compatible, which include: - Adding new API endpoints and services - Adding new properties to respon ``` -------------------------------- ### Create Alert Source Example Source: https://docs.incident.io/api-reference/alert-sources-v2/create This example demonstrates how to create a new alert source with custom HTTP options and Jira integration. It includes configurations for deduplication, transformation expressions, and project IDs. Ensure all required fields are populated according to your alert source type. ```json { "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60 }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "|- return { title: $.title || $.name || 'Unknown Alert', status: $.status === 'resolved' ? 'resolved' : 'firing', description: $.description || $.message || '', sourceURL: $.url || $.link || '', metadata: { team: $.team, severity: $.severity } }" }, "jira_options": { "project_ids": [ "01GBSQF3FHF7FWZQNWGHAVQ804", "10043" ] }, "name": "Production Web Dashboard Alerts", "owning_team_ids": [ "01G0J1EXE7AXZ2C93K61WBPYEH" ], "source_type": "alertmanager", "template": { "attributes": [ { "alert_attribute_id": "abc123", "binding": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "merge_strategy": "first_wins", "value": { "literal": "SEV123", "reference": "incident.severity" } } } ], "description": { "literal": "SEV123", "reference": "incident.severity" }, "expressions": [ { "else_branch": { "result": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "value": { "literal": "SEV123", "reference": "incident.severity" } } }, "label": "Team Slack channel", "operations": [ { "branches": { "branches": [ { "condition_groups": [ { "conditions": [ { "operation": "one_of", "param_bindings": [ { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "value": { "literal": "SEV123", "reference": "incident.severity" } } ], "subject": "incident.severity" } ] } ], "returns": { "array": true, "type": "IncidentStatus" } } ], "returns": { "array": true, "type": "IncidentStatus" } } } ], "concatenate": { "reference": "catalog_attribute[\"01FCNDV6P870EA6S7TK1DSYD5H\"]" }, "filter": { "condition_groups": [ { "conditions": [ { "operation": "one_of" } ] } ] } } ] } } ``` -------------------------------- ### List Alert Sources Response Example Source: https://docs.incident.io/api-reference/alert-sources-v2/list This example shows the structure of a successful response when listing alert sources. It includes details like alert event URLs, auto-resolve settings, email and heartbeat options, and HTTP custom options for deduplication and transformation. ```json { "alert_sources": [ { "alert_events_url": "https://api.incident.io/v2/alert_events/http/01GW2G3V0S59R238FAHPDS1R66", "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "email_options": { "email_address": "lawrence@example.com" }, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60, "ping_url": "https://api.incident.io/v2/heartbeat/01GW2G3V0S59R238FAHPDS1R66/ping" }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "return {\n title: $.title || $.name || 'Unknown Alert',\n status: $.status === 'resolved' ? 'resolved' : 'firing',\n}" } } ] } ``` -------------------------------- ### Alert Template V2 Example Source: https://docs.incident.io/api-reference/alert-sources-v2/show Example of an Alert Template V2, demonstrating attribute bindings and expression-based logic for routing and data transformation. This structure allows for complex alert processing. ```json { "attributes": [ { "alert_attribute_id": "abc123", "binding": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "merge_strategy": "first_wins", "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } } ], "description": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" }, "expressions": [ { "else_branch": { "result": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } }, "label": "Team Slack channel", "operations": [ { "branches": { "branches": [ { "condition_groups": [ { "conditions": [ { "operation": { "label": "Lawrence Jones", "value": "01FCQSP07Z74QMMYPDDGQB9FTG" }, "param_bindings": [ { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } ], "subject": { "label": "Incident Severity", "reference": "incident.severity" } } ] } ], "result": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } } ] } } ] } ] } ``` -------------------------------- ### Authentication Error Example Source: https://docs.incident.io/api-reference/status-page/created-v1 Example of an error response when a request is made without a valid API key. ```APIDOC ## Errors An example error when a request is made without an API key: ```json { "type": "authentication_error", "status": 401, "request_id": "8e3cc412-b49d-4957-9073-2c19d2c61804", "errors": [ { "code": "missing_authorization_material", "message": "No authorization material provided in request" } ] } ``` ``` -------------------------------- ### Example Authentication Error Response Source: https://docs.incident.io/api-reference/action-v1/updated-public This JSON shows an example of an authentication error, typically returned when a request is made without a valid API key. ```json { "type": "authentication_error", "status": 401, "request_id": "8e3cc412-b49d-4957-9073-2c19d2c61804", "errors": [ { "code": "missing_authorization_material", "message": "No authorization material provided in request" } ] } ``` -------------------------------- ### Example Updated Catalog Type Response Source: https://docs.incident.io/api-reference/catalog-types-v3/update-type-schema This is an example of the response received after successfully updating a catalog type's schema. It includes details about the catalog type such as its ID, name, color, and associated integrations. ```json { "catalog_type": { "annotations": { "incident.io/catalog-importer/id": "id-of-config" }, "categories": [ "customer" ], "color": "yellow", "created_at": "2021-08-17T13:28:57.801578Z", "description": "Represents Kubernetes clusters that we run inside of GKE.", "dynamic_resource_parameter": "abc123", "estimated_count": 7, "icon": "alert", "id": "01FCNDV6P870EA6S7TK1DSYDG0", "is_editable": false, "is_team_type": false, "last_synced_at": "2021-08-17T13:28:57.801578Z", "name": "Kubernetes Cluster", "ranked": true, "registry_type": "PagerDutyService", "required_integrations": [] } } ``` -------------------------------- ### Create Alert Source V2 Payload Example Source: https://docs.incident.io/api-reference/alert-sources-v2/create Example of a request payload for creating an alert source. It includes configuration for auto-resolution, heartbeats, HTTP custom options with a transform expression, Jira integration, and source type. ```json { "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60 }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "|- return { title: $.title || $.name || 'Unknown Alert', status: $.status === 'resolved' ? 'resolved' : 'firing', description: $.description || $.message || '', sourceURL: $.url || $.link || '', metadata: { team: $.team, severity: $.severity } }" }, "jira_options": { "project_ids": [ "01GBSQF3FHF7FWZQNWGHAVQ804", "10043" ] }, "name": "Production Web Dashboard Alerts", "owning_team_ids": [ "01G0J1EXE7AXZ2C93K61WBPYEH" ], "source_type": "alertmanager", "template": { "attributes": [ { "alert_attribute_id": "abc123" } ] } } ``` -------------------------------- ### Authentication Example Source: https://docs.incident.io/api-reference/status-page-template/updated-v1 Demonstrates how to authenticate requests to the incident.io API using an API key. ```APIDOC ## Authentication For all requests made to the incident.io API, you'll need an API key. Once you have the key, you should make requests to the API that set the `Authorization` request header using a "Bearer" authentication scheme: ``` Authorization: Bearer ``` ``` -------------------------------- ### Validation Error Example Source: https://docs.incident.io/api-reference/status-page/created-v1 Example of a 422 Validation Error response when request data fails validation. ```APIDOC The most common error will be a 422 Validation Error, which is returned when the request was rejected due to failing validations. These errors look like this: ```json { "type": "validation_error", "status": 422, "request_id": "631766c4-4afd-4803-997c-cd700928fa4b", "errors": [ { "code": "is_required", "message": "A severity is required to open an incident", "source": { "field": "severity_id" } } ] } ``` ``` -------------------------------- ### Update Alert Source Configuration Source: https://docs.incident.io/api-reference/alert-sources-v2/update Use this example to update an existing alert source. It demonstrates how to configure various aspects of an alert source, including auto-resolve settings, heartbeat options, custom HTTP transformations, Jira project associations, owning teams, and detailed template configurations for alert attributes and expressions. ```json { "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "disabled": false, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60 }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "return {\n title: $.title || $.name || 'Unknown Alert',\n status: $.status === 'resolved' ? 'resolved' : 'firing',\n description: $.description || $.message || '',\n sourceURL: $.url || $.link || '',\n metadata: { team: $.team, severity: $.severity }\n}" }, "jira_options": { "project_ids": [ "01GBSQF3FHF7FWZQNWGHAVQ804", "10043" ] }, "name": "Production Web Dashboard Alerts", "owning_team_ids": [ "01G0J1EXE7AXZ2C93K61WBPYEH" ], "template": { "attributes": [ { "alert_attribute_id": "abc123", "binding": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "merge_strategy": "first_wins", "value": { "literal": "SEV123", "reference": "incident.severity" } } } ], "description": { "literal": "SEV123", "reference": "incident.severity" }, "expressions": [ { "else_branch": { "result": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "value": { "literal": "SEV123", "reference": "incident.severity" } } }, "label": "Team Slack channel", "operations": [ { "branches": { "branches": [ { "condition_groups": [ { "conditions": [ { "operation": "one_of", "param_bindings": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "value": { "literal": "SEV123", "reference": "incident.severity" } }, "subject": "incident.severity" } ] } ], "result": { "array_value": [ { "literal": "SEV123", "reference": "incident.severity" } ], "value": { "literal": "SEV123", "reference": "incident.severity" } } } ], "returns": { "array": true } } } ] } ] } } ``` -------------------------------- ### AlertSourceHeartbeatOptionsV2 Example Source: https://docs.incident.io/api-reference/alert-sources-v2/create Configures options for a heartbeat alert source, specifying the failure threshold, grace period, and expected interval for pings. ```json { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60 } ``` -------------------------------- ### Authentication Header Example Source: https://docs.incident.io/api-reference/action-v1/updated-private Demonstrates how to include your API key in the Authorization header for requests to the incident.io API. Ensure you replace '' with your actual key. ```http Authorization: Bearer ``` -------------------------------- ### Update Alert Source V2 Request Body Example Source: https://docs.incident.io/api-reference/alert-sources-v2/update This example demonstrates the structure of the request body for updating an alert source. It includes fields for auto-resolution, heartbeat options, and HTTP custom options with a transformation expression. ```json { "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "disabled": false, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60 }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "|- return { title: $.title || $.name || 'Unknown Alert', status: $.status === 'resolved' ? 'resolved' : 'firing', description: $.description || $.message || '', sourceURL: $.url || $.link || '', metadata: { team: $.team, severity: $.severity } }" } } ``` -------------------------------- ### Update Alert Source Configuration Source: https://docs.incident.io/api-reference/alert-sources-v2/update This example demonstrates a full update payload for an alert source, including various configuration options like event URLs, auto-resolution settings, email and heartbeat options, custom HTTP transformations, Jira project IDs, and alert templating. ```json { "alert_source": { "alert_events_url": ">- https://api.incident.io/v2/alert_events/http/01GW2G3V0S59R238FAHPDS1R66", "auto_resolve_incident_alerts": false, "auto_resolve_timeout_minutes": 1, "email_options": { "email_address": "lawrence@example.com" }, "heartbeat_options": { "failure_threshold": 1, "grace_period_seconds": 0, "interval_seconds": 60, "ping_url": ">- https://api.incident.io/v2/heartbeat/01GW2G3V0S59R238FAHPDS1R66/ping" }, "http_custom_options": { "deduplication_key_path": "$.alert_id", "transform_expression": "|- return { title: $.title || $.name || 'Unknown Alert', status: $.status === 'resolved' ? 'resolved' : 'firing', description: $.description || $.message || '', sourceURL: $.url || $.link || '', metadata: { team: $.team, severity: $.severity } }" }, "id": "01GW2G3V0S59R238FAHPDS1R66", "jira_options": { "project_ids": [ "01GBSQF3FHF7FWZQNWGHAVQ804", "10043" ] }, "name": "Production Web Dashboard Alerts", "owning_team_ids": [ "01G0J1EXE7AXZ2C93K61WBPYEH" ], "secret_token": "some-secret-token", "source_type": "alertmanager", "template": { "attributes": [ { "alert_attribute_id": "abc123", "binding": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "merge_strategy": "first_wins", "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } } ], "description": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" }, "expressions": [ { "else_branch": { "result": { "array_value": [ { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } ], "value": { "label": "Lawrence Jones", "literal": "SEV123", "reference": "incident.severity" } } }, "label": "Team Slack channel", "operations": [ { "branches": { "branches": [ { "condition_groups": [ ] } ] } } ] } ] } } } ``` -------------------------------- ### Ping (GET) Source: https://docs.incident.io/api-reference/heartbeat-v2/ping-get Send a heartbeat ping for the specified alert source. Records a ping, indicating that the monitored job or service is healthy. The heartbeat monitor uses these pings to detect missed heartbeats and fire alerts. Both GET and POST are accepted. ```APIDOC ## GET /v2/heartbeat/{alert_source_config_id}/ping ### Description Send a heartbeat ping for the specified alert source. Records a ping, indicating that the monitored job or service is healthy. The heartbeat monitor uses these pings to detect missed heartbeats and fire alerts. ### Method GET ### Endpoint /v2/heartbeat/{alert_source_config_id}/ping ### Parameters #### Query Parameters - **token** (string) - Optional - Token provided via the token query parameter #### Path Parameters - **alert_source_config_id** (string) - Required - The alert source config this heartbeat ping is for ### Response #### Success Response (204) - Description: No Content response. ``` -------------------------------- ### Get a Severity Source: https://docs.incident.io/api-reference/severities-v1/show Retrieves a specific severity by its ID. ```APIDOC ## GET /v1/severities/{id} ### Description Retrieves a specific severity by its ID. ### Method GET ### Endpoint /v1/severities/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the severity to retrieve. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the severity. - **name** (string) - The name of the severity. - **description** (string) - A detailed description of the severity. - **created_at** (string) - The timestamp when the severity was created. - **updated_at** (string) - The timestamp when the severity was last updated. #### Response Example ```json { "id": "sev_12345", "name": "Critical", "description": "An urgent issue requiring immediate attention.", "created_at": "2023-01-01T12:00:00Z", "updated_at": "2023-01-01T12:00:00Z" } ``` ``` -------------------------------- ### HTTP Alert Source Configuration Source: https://docs.incident.io/api-reference/alert-sources-v2/show Configure HTTP alert sources with details like ping URL, interval, and grace period. Ensure all required fields are provided. ```json { "interval_seconds": 60, "grace_period_seconds": 300, "failure_threshold": 3, "ping_url": "https://api.incident.io/v2/heartbeat/01GW2G3V0S59R238FAHPDS1R66/ping" } ```