---
title: "POST /v1/compute/clusters/{cluster_id}/instances/{instance_id}/remediations"
method: POST
path: "/v1/compute/clusters/{cluster_id}/instances/{instance_id}/remediations"
tags: ["RemediationService"]
---

# POST /v1/compute/clusters/{cluster_id}/instances/{instance_id}/remediations

`POST /v1/compute/clusters/{cluster_id}/instances/{instance_id}/remediations`

## Request

- Base URL: `https://api.together.ai`
- URL: `https://api.together.ai/v1/compute/clusters/{cluster_id}/instances/{instance_id}/remediations`
- Auth: HTTP bearer

Creates a new remediation for an instance.

Remediations created via the API goes directly to PENDING state.

Our system may trigger automated remediations that require approval. These remediations are created with PENDING_APPROVAL state.
The user must call /approve to start the actual remediation process.
These operations can also be rejected by calling /reject.

## Path parameters

- `cluster_id` string, required
- `instance_id` string, required

## Request body

- Remediation: Remediation represents a node remediation request for an instance. An instance can have multiple remediations over time (e.g., failed attempts followed by retries).
  - `id` string, required
  - `cluster_id` string, required
  - `instance_id` string, required
  - `mode` 'REMEDIATION_MODE_VM_ONLY' | 'REMEDIATION_MODE_HOST_AWARE' | 'REMEDIATION_MODE_EVICT_WITHOUT_REPLACEMENT' | 'REMEDIATION_MODE_REBOOT_VM' | 'REMEDIATION_MODE_HOST_POWER_CYCLE', required: Remediation mode specifies how the remediation should be performed. - `REMEDIATION_MODE_VM_ONLY`: Deletes the VM and provisions a new one on any available host. - `REMEDIATION_MODE_HOST_AWARE`: Cordons the host, deletes the VM, and provisions a new one on a different host. - `REMEDIATION_MODE_EVICT_WITHOUT_REPLACEMENT`: Evicts the VM without provisioning a replacement. - `REMEDIATION_MODE_REBOOT_VM`: Reboots the VM in place. - `REMEDIATION_MODE_HOST_POWER_CYCLE`: Cordons and power-cycles the bare-metal host while preserving host and node identity.
  - `trigger` 'REMEDIATION_TRIGGER_MANUAL' | 'REMEDIATION_TRIGGER_AUTOMATED', required: RemediationTrigger specifies how the remediation was triggered. - `REMEDIATION_TRIGGER_MANUAL`: A user-initiated remediation (either via web UI or API call). - `REMEDIATION_TRIGGER_AUTOMATED`: A system-initiated remediation that requires approval.
  - `state` 'PENDING_APPROVAL' | 'PENDING' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'CANCELLED' | 'AUTO_RESOLVED' | 'QUARANTINING' | 'QUARANTINED', required: RemediationState represents the lifecycle state of a remediation. - `PENDING_APPROVAL`: Awaiting approval before processing can begin. - `PENDING`: Approved and queued for processing. - `RUNNING`: Actively being processed. - `SUCCEEDED`: Successfully completed. - `FAILED`: Failed with an error. - `CANCELLED`: Cancelled by user or system. - `AUTO_RESOLVED`: The underlying issue was automatically resolved before processing. - `QUARANTINING`: Cordoning or preparing the host before remediation. - `QUARANTINED`: Host has been cordoned or isolated for remediation.
  - `reason` string: User-provided reason for the remediation.
  - `active_health_check_run_id` string: Active health check run ID (UUID) that triggered this remediation.
  - `passive_health_check_event_id` string: Passive health check event ID that triggered this remediation.
  - `requested_by` string: Who requested the remediation.
  - `create_time` string, date-time: When the remediation was created.
  - `reviewed_by` string: Who reviewed the remediation.
  - `review_time` string, date-time: When the remediation was reviewed.
  - `review_comment` string: Review comment.
  - `start_time` string, date-time: When processing started.
  - `end_time` string, date-time: When the remediation completed.
  - `error_message` string: Error message if the remediation failed.
  - `update_time` string, date-time: When the remediation was last updated.
  - `instance_name` string: Display name of the targeted instance.
  - `linked_alerts` PassiveHealthCheckAlert[]: Passive health check alerts linked to this remediation, including resolved alerts.
    - `passive_health_check_alert_id` string, required: Primary key UUID for the passive health check alert.
    - `instance_id` string: Resolved instance UUID. Empty until the alert is joined to an instance.
    - `cluster_id` string, required: Cluster UUID the alert was raised against.
    - `target_vm` string, required: VM name extracted from the Alertmanager labels.
    - `alert_name` string, required: Alertmanager alert name.
    - `severity` 'PHC_SEVERITY_INFO' | 'PHC_SEVERITY_WARNING' | 'PHC_SEVERITY_CRITICAL', required: Canonical severity tier for the alert.
    - `annotations` object, required: Legacy Alertmanager annotations as key-value strings.
    - `started_at` string, date-time, required: Time when the underlying alert first fired.
    - `resolved_at` string, date-time: Time when the underlying alert resolved. Empty while the alert is firing.
    - `node_remediation_intent_id` string: Remediation intent UUID attached to this alert, if any.
    - `annotation` PHCAnnotation, required: Typed content parsed from passive health check alert annotations.
      - `title` string, required: Alert title from the Alertmanager summary annotation.
      - `description` string, required: Static explanation for the alert.
      - `summary_line` string, required: Per-firing summary line parsed from the evidence annotation.
      - `xid` XidDetail: Details for a DmesgXidError passive health check alert.
        - `events` XidEvent[], required: Xid events observed during the alert window.
          - `xid_code` string, required: NVIDIA Xid code, such as `79`.
          - `mnemonic` string, required: Driver mnemonic for the Xid code when metadata is available.
          - `count` integer, required: Number of times this Xid code appeared in the alert window.
      - `slurm_node_unavailable` SlurmNodeUnavailableDetail: Details for a Slurm node unavailable passive health check alert.
        - `reason` string, required: Drain reason reported for the unavailable Slurm node.

## Response `200`

OK

- Remediation: Remediation represents a node remediation request for an instance. An instance can have multiple remediations over time (e.g., failed attempts followed by retries).
  - `id` string, required
  - `cluster_id` string, required
  - `instance_id` string, required
  - `mode` 'REMEDIATION_MODE_VM_ONLY' | 'REMEDIATION_MODE_HOST_AWARE' | 'REMEDIATION_MODE_EVICT_WITHOUT_REPLACEMENT' | 'REMEDIATION_MODE_REBOOT_VM' | 'REMEDIATION_MODE_HOST_POWER_CYCLE', required: Remediation mode specifies how the remediation should be performed. - `REMEDIATION_MODE_VM_ONLY`: Deletes the VM and provisions a new one on any available host. - `REMEDIATION_MODE_HOST_AWARE`: Cordons the host, deletes the VM, and provisions a new one on a different host. - `REMEDIATION_MODE_EVICT_WITHOUT_REPLACEMENT`: Evicts the VM without provisioning a replacement. - `REMEDIATION_MODE_REBOOT_VM`: Reboots the VM in place. - `REMEDIATION_MODE_HOST_POWER_CYCLE`: Cordons and power-cycles the bare-metal host while preserving host and node identity.
  - `trigger` 'REMEDIATION_TRIGGER_MANUAL' | 'REMEDIATION_TRIGGER_AUTOMATED', required: RemediationTrigger specifies how the remediation was triggered. - `REMEDIATION_TRIGGER_MANUAL`: A user-initiated remediation (either via web UI or API call). - `REMEDIATION_TRIGGER_AUTOMATED`: A system-initiated remediation that requires approval.
  - `state` 'PENDING_APPROVAL' | 'PENDING' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'CANCELLED' | 'AUTO_RESOLVED' | 'QUARANTINING' | 'QUARANTINED', required: RemediationState represents the lifecycle state of a remediation. - `PENDING_APPROVAL`: Awaiting approval before processing can begin. - `PENDING`: Approved and queued for processing. - `RUNNING`: Actively being processed. - `SUCCEEDED`: Successfully completed. - `FAILED`: Failed with an error. - `CANCELLED`: Cancelled by user or system. - `AUTO_RESOLVED`: The underlying issue was automatically resolved before processing. - `QUARANTINING`: Cordoning or preparing the host before remediation. - `QUARANTINED`: Host has been cordoned or isolated for remediation.
  - `reason` string: User-provided reason for the remediation.
  - `active_health_check_run_id` string: Active health check run ID (UUID) that triggered this remediation.
  - `passive_health_check_event_id` string: Passive health check event ID that triggered this remediation.
  - `requested_by` string: Who requested the remediation.
  - `create_time` string, date-time: When the remediation was created.
  - `reviewed_by` string: Who reviewed the remediation.
  - `review_time` string, date-time: When the remediation was reviewed.
  - `review_comment` string: Review comment.
  - `start_time` string, date-time: When processing started.
  - `end_time` string, date-time: When the remediation completed.
  - `error_message` string: Error message if the remediation failed.
  - `update_time` string, date-time: When the remediation was last updated.
  - `instance_name` string: Display name of the targeted instance.
  - `linked_alerts` PassiveHealthCheckAlert[]: Passive health check alerts linked to this remediation, including resolved alerts.
    - `passive_health_check_alert_id` string, required: Primary key UUID for the passive health check alert.
    - `instance_id` string: Resolved instance UUID. Empty until the alert is joined to an instance.
    - `cluster_id` string, required: Cluster UUID the alert was raised against.
    - `target_vm` string, required: VM name extracted from the Alertmanager labels.
    - `alert_name` string, required: Alertmanager alert name.
    - `severity` 'PHC_SEVERITY_INFO' | 'PHC_SEVERITY_WARNING' | 'PHC_SEVERITY_CRITICAL', required: Canonical severity tier for the alert.
    - `annotations` object, required: Legacy Alertmanager annotations as key-value strings.
    - `started_at` string, date-time, required: Time when the underlying alert first fired.
    - `resolved_at` string, date-time: Time when the underlying alert resolved. Empty while the alert is firing.
    - `node_remediation_intent_id` string: Remediation intent UUID attached to this alert, if any.
    - `annotation` PHCAnnotation, required: Typed content parsed from passive health check alert annotations.
      - `title` string, required: Alert title from the Alertmanager summary annotation.
      - `description` string, required: Static explanation for the alert.
      - `summary_line` string, required: Per-firing summary line parsed from the evidence annotation.
      - `xid` XidDetail: Details for a DmesgXidError passive health check alert.
        - `events` XidEvent[], required: Xid events observed during the alert window.
          - `xid_code` string, required: NVIDIA Xid code, such as `79`.
          - `mnemonic` string, required: Driver mnemonic for the Xid code when metadata is available.
          - `count` integer, required: Number of times this Xid code appeared in the alert window.
      - `slurm_node_unavailable` SlurmNodeUnavailableDetail: Details for a Slurm node unavailable passive health check alert.
        - `reason` string, required: Drain reason reported for the unavailable Slurm node.

## Changes

- **2026-10-22** `02840d18ae6d`: 1 warning
  - deleted the `query` request parameter `remediation_id`
- **2026-10-22** `bb5257b3173a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/together/apis/together-apis/changes/v1/compute/clusters/:cluster_id/instances/:instance_id/remediations/post.md)

---

[API](https://skmtc.dev/together/apis/together-apis.md) - [All operations](https://skmtc.dev/together/apis/together-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/together/apis/together-apis/revisions/93438ddac711?raw)
