# Admin: Update Secondary Node
## Endpoint
`/api/admin/cluster/primary/updateSecondary`
## Method
GET
## Description
Used by the Secondary node to update its details (URL, IP addresses, TLS certificate) on the Primary node. This call can only be made at the Primary node.
## Authentication
Required. Token must be provided via the `token` parameter.
## Permissions
Administration: Delete
## Parameters
| `token` | string | Yes | No | The session token generated by the `login` or the `createToken` call. |
| `secondaryNodeId` | integer | Yes | No | The Secondary node ID that identifies the node. |
| `secondaryNodeUrl` | string | Yes | No | The HTTPS API web service URL of the Secondary node to be updated. |
| `secondaryNodeIpAddresses` | string | Yes | No | A comma-separated list of IP addresses of the Secondary node to be updated. |
| `secondaryNodeCertificate` | string | Yes | No | The web service TLS certificate encoded in Base64 URL format. |
## Response Fields
| `clusterInitialized` | boolean | `true` indicating the cluster is active. |
| `dnsServerDomain` | string | The FQDN of this DNS server. |
| `version` | string | The DNS server software version. |
| `clusterDomain` | string | The cluster domain name. |
| `heartbeatRefreshIntervalSeconds` | integer | Heartbeat refresh interval. |
| `heartbeatRetryIntervalSeconds` | integer | Heartbeat retry interval. |
| `configRefreshIntervalSeconds` | integer | Config refresh interval. |
| `configRetryIntervalSeconds` | integer | Config retry interval. |
| `configLastSynced` | string (datetime) | Timestamp of last config sync. |
| `nodes` | array | List of all cluster node objects with updated details. |
| `nodes[].id` | integer | Unique node ID. |
| `nodes[].name` | string | Node FQDN. |
| `nodes[].url` | string | Node HTTPS API URL. |
| `nodes[].ipAddresses` | array of strings | Node IP addresses. |
| `nodes[].type` | string | Node type: `Primary` or `Secondary`. |
| `nodes[].state` | string | Node state: `Self`, `Connected`, or `Unreachable`. |
| `nodes[].lastSeen` | string (datetime) | Timestamp of last contact. |
## Conditional Logic Notes
- This call can only be made at the Primary node.
- All four Secondary node parameters (ID, URL, IP addresses, certificate) are required.
- Typically invoked programmatically by the Secondary node when its network details change, not by end users directly.
## Edge Cases
- The `secondaryNodeCertificate` must be Base64 URL encoded, not standard Base64.
- If the Secondary node ID does not match any existing node, the call will likely fail.
- The TLS certificate update is critical for the Primary to maintain secure communication with the Secondary.