> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ariacompute.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a GPU Node

> Partially update a GPU node in Aria Compute PIN, including SSH credentials, labels, spec, and status.

Send a partial update to an existing GPU node. Only provided fields are changed; omitted fields keep their current values. SSH credentials are re-encrypted before storage when supplied.

## Endpoint

**PUT** `/v1/gpu-nodes/:id`

Authorization: Bearer API key required.

## Path parameters

<ParamField path="id" type="string" required>
  GPU node identifier, e.g. gn\_a1b2c3d4.
</ParamField>

## Request body

<ParamField body="name" type="string">
  Updated human-readable name.
</ParamField>

<ParamField body="ip" type="string">
  Updated IP address.
</ParamField>

<ParamField body="ssh_port" type="integer">
  Updated SSH port.
</ParamField>

<ParamField body="ssh_user" type="string">
  Updated SSH username.
</ParamField>

<ParamField body="ssh_key" type="string">
  New SSH private key (re-encrypted before storage).
</ParamField>

<ParamField body="ssh_password" type="string">
  New SSH password (re-encrypted before storage).
</ParamField>

<ParamField body="spec" type="string">
  Updated hardware spec summary.
</ParamField>

<ParamField body="labels" type="array of strings">
  Replacement label list.
</ParamField>

<ParamField body="status" type="string">
  New status string, e.g. active or maintenance.
</ParamField>

## Response

<ResponseField name="id" type="string" required>
  Node identifier.
</ResponseField>

<ResponseField name="name" type="string" required>
  Updated name.
</ResponseField>

<ResponseField name="ip" type="string" required>
  Updated IP.
</ResponseField>

<ResponseField name="ssh_port" type="integer">
  SSH port.
</ResponseField>

<ResponseField name="ssh_user" type="string" required>
  SSH username.
</ResponseField>

<ResponseField name="spec" type="string">
  Spec summary.
</ResponseField>

<ResponseField name="labels" type="array of strings">
  Labels.
</ResponseField>

<ResponseField name="status" type="string">
  Current status.
</ResponseField>

<ResponseField name="created_at" type="string (ISO 8601)">
  Creation timestamp.
</ResponseField>

<ResponseField name="updated_at" type="string (ISO 8601)">
  Last update timestamp.
</ResponseField>

## Example

```bash theme={null}
curl -s -X PUT http://<pin-host>:8001/v1/gpu-nodes/gn_a1b2c3d4 \
  -H "Authorization: Bearer $ARIA_PIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "node-01-renamed",
    "spec": "A100-80G x8",
    "labels": ["training", "a100", "priority"]
  }'
```

```json theme={null}
{
  "id": "gn_a1b2c3d4",
  "name": "node-01-renamed",
  "ip": "10.0.1.10",
  "ssh_port": 22,
  "ssh_user": "ubuntu",
  "spec": "A100-80G x8",
  "labels": ["training", "a100", "priority"],
  "status": "active",
  "created_at": "2024-05-01T12:00:00Z",
  "updated_at": "2024-05-11T09:15:00Z"
}
```


## Related topics

- [Delete a GPU Node](/api-reference/pin/gpu-nodes/delete.md)
- [Create a GPU Node](/api-reference/pin/gpu-nodes/create.md)
- [Get a GPU Node](/api-reference/pin/gpu-nodes/get.md)
- [List GPU Nodes](/api-reference/pin/gpu-nodes/list.md)
- [Update an Agent](/api-reference/pin/agents/update.md)
