# Standby servers

Base URL `https://pfcloud.pfctek.com/api/v1`. Every call needs `Authorization: Bearer mf_…`. Changes accept an `Idempotency-Key` header. Ids are public ids (UUIDs).

## GET /sites/{site}/standbys

**Standby servers and load balancing**

Scope: `sites:read`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

## POST /sites/{site}/standbys

**Add a standby server**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

| Body field | Type | Description |
| --- | --- | --- |
| `server` | string |  |
| `sync_minutes` | integer |  |
| `failover` | string | manual or automatic |

## PATCH /sites/{site}/standbys

**Standby settings**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

| Body field | Type | Description |
| --- | --- | --- |
| `sync_minutes` | integer |  |
| `failover` | string |  |

## POST /sites/{site}/standbys/sync

**Copy data to the standbys now**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

## POST /sites/{site}/standbys/switch

**Make a standby live**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

| Body field | Type | Description |
| --- | --- | --- |
| `standby` | string | The standby’s site id |
| `dns` | string | automatic or manual |
| `confirm` | string | The site’s domain, typed out to confirm |

## POST /sites/{site}/standbys/confirm-dns

**Confirm a manual DNS change**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

## POST /sites/{site}/standbys/cancel-switch

**Cancel a switch**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

## POST /sites/{site}/standbys/resume

**Resume syncing after a failover**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

## POST /sites/{site}/standbys/load-balancing

**Turn on load balancing**

Scope: `sites:write`

| Parameter | In | Description |
| --- | --- | --- |
| `site` | path | Public id from the dashboard address (required) |

| Body field | Type | Description |
| --- | --- | --- |
| `connection` | string |  |
| `host` | string |  |
| `port` | integer |  |
| `database` | string |  |
| `username` | string |  |
| `password` | string |  |
| `copy_data` | boolean |  |
| `uploads_shared` | boolean |  |

