# IRPCEventHandlersAdmin.SetServerEventHandlers

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Administration API](https://developer.m-files.com/APIs/gRPC-API/admin/index.md) > [Event handlers](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/SetServerEventHandlers/

Badges: `Administration API / specialized` `admin` `session` `idempotent`

Replaces all server-level event handlers with the given list.

- **Service:** [Event handlers](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/index.md) `MFiles.IRPCEventHandlersAdmin`
- **gRPC method:** `/MFiles.IRPCEventHandlersAdmin/SetServerEventHandlers`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/set-server-event-handlers`
- **Request:** [`SetServerEventHandlersRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/SetServerEventHandlers/index.md#request)
- **Response:** [`SetServerEventHandlersResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/SetServerEventHandlers/index.md#response)
- **Book and level:** Administration API, specialized
- **Kind:** admin
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

- **Replaces the whole list**: handlers that are not in `event_handlers` are removed.
- Requires the server right `run_code`; signed scripts do not replace it here. A server-level
  session is enough.
- Validation as in [SetVaultEventHandlers](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/SetVaultEventHandlers/index.md),
  except that every `event_type` must be a server event. Fails when the server license does not
  include event handlers.

<a id="request"></a>

## Request: SetServerEventHandlersRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `event_handlers[]` | repeated [`InternalEventHandler`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.InternalEventHandler/index.md) | The complete new list of the server's event handlers. |
| `event_handlers[].event_type` | [`InternalEventType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.InternalEventType/index.md) | The event type the handler is associated with. |
| `event_handlers[].sort_index` | `int32` | The sort index defines the order in which the event handlers are executed in response to an event. |
| `event_handlers[].is_active` | `bool` | True when this handler is active and is executed in response to events. |
| `event_handlers[].description` | `string` | Description of the event handler. A user friendly identifier for the event handler. |
| `event_handlers[].code` | `string` | The actual code for the event handler that is executed in response an event.. |
| `event_handlers[].guid` | `string` | GUID for the event handler. |

<a id="response"></a>

## Response: SetServerEventHandlersResponse

No fields.

<a id="related"></a>

## Related methods

- [SetVaultEventHandlers](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCEventHandlersAdmin/SetVaultEventHandlers/index.md): Replaces all event handlers of the vault with the given list.
