# Instance Redundancy

Redundancy is part of the inter-server solidarity that PeerTube fosters. Manage the list of instances you wish to help by seeding their videos according to the policy of video selection of your choice. Note that you have a similar functionality to mirror individual videos, see [video mirroring](https://docs.joinpeertube.org/api-rest-reference/api.md#tag-video-mirroring).


## Update a server redundancy policy

`PUT /api/v1/server/redundancy/{host}`

Authentication (security requirement alternatives):

```json
[
  {
    "OAuth2": [
      "admin"
    ]
  }
]
```

- OAuth2: oauth2. Authenticating via OAuth requires the following steps:
- Have an activated account
- [Generate] an access token for that account at `/api/v1/users/token`.
- Make requests with the *Authorization: Bearer <token\>* header
- Profit, depending on the role assigned to the account

Note that the __access token is valid for 1 day__ and is given
along with a __refresh token valid for 2 weeks__.

[Generate]: https://docs.joinpeertube.org/api/rest-getting-started
; scopes: admin

Parameters:

- `host` (path, string, hostname, required) - server domain to mirror
  Type: string, hostname

Request body: application/json

Type: object

- `redundancyAllowed` (required)
  Type: boolean
  
  allow mirroring of the host's local videos

Responses:

- 204: successful operation

- 404: server is not already known

## Examples

### cURL

```bash
curl -X PUT 'https://peertube2.cpy.re/api/v1/server/redundancy/example.com' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "redundancyAllowed": true
}'
```

### JavaScript

```javascript
const body = `{
  "redundancyAllowed": true
}`;

const response = await fetch('https://peertube2.cpy.re/api/v1/server/redundancy/example.com', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN',
    'Content-Type': 'application/json',
  },
  body,
});

const data = await response.text();
```

### Python

```python
import requests

body = '''{
  "redundancyAllowed": true
}'''

response = requests.put(
    'https://peertube2.cpy.re/api/v1/server/redundancy/example.com',
    data=body.encode('utf-8'),
    headers={
        'Authorization': 'Bearer YOUR_TOKEN',
        'Content-Type': 'application/json',
    },
)
print(response.text)
```
