# peer_reservations_add

[[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Reservations.cpp)

The  method adds or updates a reserved slot for a specific peer server in the XRP Ledger [peer-to-peer network](/es-es/docs/concepts/networks-and-servers/peer-protocol).

*The  method is an [admin method](/es-es/docs/references/http-websocket-apis/admin-api-methods) that cannot be run by unprivileged users.*

### Request Format

An example of the request format:

WebSocket

```json
{
    "id": "peer_reservations_add_example_1",
    "command": "",
    "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99",
    "description": "Ripple s1 server 'WOOL'"
}
```

JSON-RPC

```json
{
    "method": "",
    "params": [{
      "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99",
      "description": "Ripple s1 server 'WOOL'"
    }]
}
```

Commandline

```sh
#Syntax:  <public_key> [<description>]
rippled  n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'"
```

The request includes the following parameters:

| `Field` | Type | Description |
|  --- | --- | --- |
| `public_key` | String | The [node public key](/docs/concepts/networks-and-servers/peer-protocol#node-key-pair) of the peer reservation to add a reservation for, in [base58](/docs/references/protocol/data-types/base58-encodings). |
| `description` | String | *(Optional)* A custom description for the peer reservation. The server truncates descriptions longer than 64 characters when it restarts. |


### Response Format

An example of a successful response:

WebSocket

```json
{
  "id": "peer_reservations_add_example_1",
  "result": {
    "previous": {
      "description": "Maecenas atavis edite regibus, O et praesidium et dulce decus meum, Sunt quos curriculo pulverem Olympicum Collegisse iuvat metaque fervidis Evitata rotis palmaque nobilis Terrarum dominos evehit ad deos; Hunc, si mobilium turba Quiritium Certat tergeminis tollere honoribus; Illum, si proprio condidit horreo, Quidquid de Libycis verritur areis.",
      "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99"
    }
  },
  "status": "success",
  "type": "response"
}
```

JSON-RPC

```json
{
  "result": {
    "previous": {
      "description": "Maecenas atavis edite regibus, O et praesidium et dulce decus meum, Sunt quos curriculo pulverem Olympicum Collegisse iuvat metaque fervidis Evitata rotis palmaque nobilis Terrarum dominos evehit ad deos; Hunc, si mobilium turba Quiritium Certat tergeminis tollere honoribus; Illum, si proprio condidit horreo, Quidquid de Libycis verritur areis.",
      "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99"
    },
    "status": "success"
  }
}
```

Commandline

```json
Loading: "/etc/rippled.cfg"
Connecting to 127.0.0.1:5005

{
  "result": {
    "previous": {
      "description": "Maecenas atavis edite regibus, O et praesidium et dulce decus meum, Sunt quos curriculo pulverem Olympicum Collegisse iuvat metaque fervidis Evitata rotis palmaque nobilis Terrarum dominos evehit ad deos; Hunc, si mobilium turba Quiritium Certat tergeminis tollere honoribus; Illum, si proprio condidit horreo, Quidquid de Libycis verritur areis.",
      "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99"
    },
    "status": "success"
  }
}
```

The response follows the [standard format](/docs/references/http-websocket-apis/api-conventions/response-formatting), with a successful result containing the following fields:

| `Field` | Type | Description |
|  --- | --- | --- |
| `previous` | Object | *(May be omitted)* The previous entry for the same [node public key](/docs/concepts/networks-and-servers/peer-protocol#node-key-pair), if there was already a reservation with the same node public key. This object is formatted as a **Peer Reservation Object**, as described below. |


If there was not a previous entry for the same [node public key](/docs/concepts/networks-and-servers/peer-protocol#node-key-pair), the `result` object is empty.

#### Peer Reservation Object

If the `previous` field is provided, it shows the previous status of this peer reservation, with the following fields:

| `Field` | Type | Description |
|  --- | --- | --- |
| `node` | String | The [node public key][] of the peer server this reservation is for, as [base58][]. |
| `description` | String | *(May be omitted)* The description provided with this peer reservation, if any. |


### Possible Errors

- Any of the [universal error types](/docs/references/http-websocket-apis/api-conventions/error-formatting#universal-errors).
- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing.
- `publicMalformed` - The `public_key` field of the request is not valid. It must be a valid node public key in [base58](/docs/references/protocol/data-types/base58-encodings) format.