/systems/{id}/alerts/silences/{silence_id} - Update a silence

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://api.my.nethesis.it/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "my.nethesis.it MCP server": {
    "url": "https://api.my.nethesis.it/mcp"
  }
}

Close
PUT /systems/{id}/alerts/silences/{silence_id}

Updates the end time and/or comment of an existing silence. Preserves the original matchers and start time. Ownership is verified via the system_key matcher. Requires manage:systems permission.

Path parameters

  • id string Required

    System ID (database UUID)

  • silence_id string Required

    Alertmanager silence ID

application/json

Body Required

  • comment string

    New comment for the silence. Defaults to previous value if empty.

  • end_at string(date-time) Required

    New end time (RFC3339). Must be in the future.

Responses

  • 200 application/json

    Silence updated successfully

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object
      Hide data attribute Show data attribute object
      • silence_id string
  • 400 application/json

    Validation failed. data.type is always validation_error. data.errors[] lists per-field failures with stable message codes the UI consumes for i18n: required (missing field), invalid_format (bad fingerprint regex or non-RFC3339 end_at), must_be_future (end_at in the past), max / min (out of range duration_minutes).

    Hide response attributes Show response attributes object
    • code integer

      HTTP error code

    • message string

      Error message

    • data object
      Hide data attributes Show data attributes object
      • type string

        Type of error

        Values are validation_error or external_api_error.

      • errors array[object]
        Hide errors attributes Show errors attributes object
        • key string

          Field name that failed validation

        • message string

          Error code or message

        • value string

          Value that failed validation

      • details

        Additional error details

  • 401 application/json

    Unauthorized - invalid or missing token

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 403 application/json

    Forbidden - insufficient permissions

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 404 application/json

    Resource not found

    Hide response attributes Show response attributes object
    • code integer

      HTTP error code

    • message string

      Error message

    • data object
      Hide data attributes Show data attributes object
      • type string

        Type of error

        Values are validation_error or external_api_error.

      • errors array[object]
        Hide errors attributes Show errors attributes object
        • key string

          Field name that failed validation

        • message string

          Error code or message

        • value string

          Value that failed validation

      • details

        Additional error details

PUT /systems/{id}/alerts/silences/{silence_id}
curl \
 --request PUT 'https://collect.your-domain.com/api/systems/sys_123456789/alerts/silences/4e6f0c30-c383-4e22-9443-0d7b6a8bd40b' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"comment":"extended for maintenance window","end_at":"2026-05-12T12:16:36Z"}'
Request example
Alertmanager treats an update as "create a new silence with the same matchers and start_at, then drop the old one", so the response carries a new `silence_id`. The activity timeline records this as a `silence_updated` event.
{
  "comment": "extended for maintenance window",
  "end_at": "2026-05-12T12:16:36Z"
}
Response examples (200)
{
  "code": 200,
  "message": "silence updated successfully",
  "data": {
    "silence_id": "f1e1c2a4-7e57-4b1a-aaa0-2b96c8b5a3aa"
  }
}
Response examples (400)
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "fingerprint",
        "message": "required"
      }
    ]
  }
}
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "fingerprint",
        "message": "invalid_format",
        "value": "bad!fingerprint"
      }
    ]
  }
}
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "end_at",
        "message": "invalid_format",
        "value": "not-a-date"
      }
    ]
  }
}
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "end_at",
        "message": "must_be_future",
        "value": "2020-01-01T00:00:00Z"
      }
    ]
  }
}
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "duration_minutes",
        "message": "max",
        "value": "999999"
      }
    ]
  }
}
Response examples (401)
{
  "code": 401,
  "message": "invalid token",
  "data": {}
}
Response examples (403)
{
  "code": 403,
  "message": "insufficient permissions",
  "data": {}
}
Response examples (404)
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "username",
        "message": "required",
        "value": "string"
      }
    ]
  }
}