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

# NDS.Services.Replication

## Overview

Handles content replication across multi-server PADS4 deployments. Manages replication targets, schedules content sync jobs, and monitors replication health and latency.

| Field           | Value                                                                        |
| --------------- | ---------------------------------------------------------------------------- |
| Swagger UI      | `https://<your-server>/rdx/NDS.Services.Replication/swagger/index.html`      |
| OpenAPI spec    | `https://<your-server>/rdx/NDS.Services.Replication/swagger/v1/swagger.json` |
| Base URL        | `https://<your-server>/rdx/NDS.Services.Replication`                         |
| Total endpoints | 31                                                                           |

***

## Authentication

All endpoints use the standard PADS4 session cookie. Obtain it once and reuse:

```bash theme={null}
# Log in and save the session cookie
curl -c cookies.txt -X POST 'https://<your-server>/api/v1/Account/Logon' \
  -H 'Content-Type: application/json' \
  -d '{"UserName": "admin", "Password": "yourpassword", "Domain": "yourdomain"}'

# Use the cookie on all subsequent requests
curl -b cookies.txt -X GET 'https://<your-server>/rdx/<ServiceName>/...'
```

> Replace `https://<your-server>` with your PADS4 server address and `<ServiceName>` with the service path shown above.

***

## Endpoint Reference

| Method | Path                                                         | Description                       |
| ------ | ------------------------------------------------------------ | --------------------------------- |
| `GET`  | `/api/v1/Replication/Admin`                                  | Get Collections                   |
| `POST` | `/api/v1/Replication/Admin/ResetCollectionNode`              | Reset Collection Node             |
| `GET`  | `/api/v1/Replication/Admin/Servers`                          | Get Servers                       |
| `POST` | `/api/v1/Replication/Admin/ServerStatus`                     | Set Server Status                 |
| `GET`  | `/api/v1/Replication/Admin/Addresses`                        | Get Address List                  |
| `POST` | `/api/v1/Replication/Admin/RemoveNodes`                      | Remove Nodes                      |
| `POST` | `/api/v1/Replication/Admin/ForwardReplicationTable`          | Forward Replication Table         |
| `POST` | `/api/v1/Replication/Admin/ResetReplicationTable`            | Reset Replication Table           |
| `POST` | `/api/v1/Replication/Admin/ExpropriateReplicationTable`      | Expropriate Replication Table     |
| `POST` | `/api/v1/Replication/Admin/GetCollectionStatus`              | Get Collection Status             |
| `POST` | `/api/v1/Replication/Diagnostics/changeSetState`             | Get Change Set Status             |
| `GET`  | `/api/v1/Replication/Diagnostics/replicationChangeSetState`  | Get Replication Change Set Status |
| `GET`  | `/api/v1/Replication/Diagnostics/replicationState`           | Get Replication State             |
| `GET`  | `/api/v1/Replication/Diagnostics/replicationJobsState`       | Get Replication Jobs              |
| `GET`  | `/api/v1/Replication/Diagnostics/busDiagnostics`             | Get Bus Diagnostics               |
| `GET`  | `/api/v1/ReplicationClient/Diagnostics/contentTransferState` | Get Content Transfer State        |
| `GET`  | `/api/v1/ReplicationClient/Diagnostics/busDiagnostics`       | Get Bus Diagnostics               |
| `GET`  | `/api/v1/diagnostics/toggles`                                | Get Toggles                       |
| `GET`  | `/api/v1/diagnostics/configuration`                          | Get Config Section                |
| `GET`  | `/api/v1/diagnostics/configurationex`                        | Get Configuration                 |
| `GET`  | `/api/v1/diagnostics/circuitbreakers`                        | Get Circuit Breakers              |
| `GET`  | `/api/v1/diagnostics/circuitbreakers/reset`                  | Reset Circuit Breaker             |
| `GET`  | `/api/v1/diagnostics/circuitbreakers/isolate`                | Isolate Circuit Breaker           |
| `POST` | `/api/v1/diagnostics/events`                                 | Get Events                        |
| `GET`  | `/api/v1/health`                                             | Get                               |
| `GET`  | `/api/v1/health/clean`                                       | Get Clean                         |
| `POST` | `/api/v1/Management/RequeueErrorMessages`                    | Requeue Error Messages            |
| `POST` | `/api/v1/Management/PurgeErrorMessages`                      | Purge Error Messages              |
| `GET`  | `/migration`                                                 | Get Migrations                    |
| `POST` | `/migration`                                                 | Execute Migration                 |
| `GET`  | `/version`                                                   | Get                               |

***

## Request & Response Examples

### GET `/api/v1/Replication/Admin`

**Request:**

```bash theme={null}
curl -b cookies.txt -X GET 'https://<your-server>/rdx/NDS.Services.Replication/api/v1/Replication/Admin'
```

**Response `200 OK`:**

```json theme={null}
{"Code": "OK", "Succeeded": true}
```

***

### POST `/api/v1/Replication/Admin/ResetCollectionNode`

**Request:**

```bash theme={null}
curl -b cookies.txt -X POST 'https://<your-server>/rdx/NDS.Services.Replication/api/v1/Replication/Admin/ResetCollectionNode' \
  -H 'Content-Type: application/json' \
  -d '{"PageIndex": 0, "PageSize": 20}'
```

**Response `200 OK`:**

```json theme={null}
{"Items": [], "TotalCount": 0, "PageIndex": 0, "PageSize": 20, "Code": "OK", "Succeeded": true}
```

***

### GET `/api/v1/Replication/Admin/Servers`

**Request:**

```bash theme={null}
curl -b cookies.txt -X GET 'https://<your-server>/rdx/NDS.Services.Replication/api/v1/Replication/Admin/Servers'
```

**Response `200 OK`:**

```json theme={null}
{"Code": "OK", "Succeeded": true}
```

***

### POST `/api/v1/Replication/Admin/ServerStatus`

**Request:**

```bash theme={null}
curl -b cookies.txt -X POST 'https://<your-server>/rdx/NDS.Services.Replication/api/v1/Replication/Admin/ServerStatus' \
  -H 'Content-Type: application/json' \
  -d '{"PageIndex": 0, "PageSize": 20}'
```

**Response `200 OK`:**

```json theme={null}
{"Items": [], "TotalCount": 0, "PageIndex": 0, "PageSize": 20, "Code": "OK", "Succeeded": true}
```

***

### GET `/api/v1/Replication/Admin/Addresses`

**Request:**

```bash theme={null}
curl -b cookies.txt -X GET 'https://<your-server>/rdx/NDS.Services.Replication/api/v1/Replication/Admin/Addresses'
```

**Response `200 OK`:**

```json theme={null}
{"Code": "OK", "Succeeded": true}
```

***

### POST `/api/v1/Replication/Admin/RemoveNodes`

**Request:**

```bash theme={null}
curl -b cookies.txt -X POST 'https://<your-server>/rdx/NDS.Services.Replication/api/v1/Replication/Admin/RemoveNodes' \
  -H 'Content-Type: application/json' \
  -d '{"PageIndex": 0, "PageSize": 20}'
```

**Response `200 OK`:**

```json theme={null}
{"Items": [], "TotalCount": 0, "PageIndex": 0, "PageSize": 20, "Code": "OK", "Succeeded": true}
```

***

> Additional endpoints follow the same patterns shown above. See the Swagger UI for full parameter schemas.
