# IInputTelemetryManager
> Controls raw input reporting for a player.
`gg.lode.lecternapi.api.manager.IInputTelemetryManager`
---
## Signature
```java
public interface IInputTelemetryManager
```
---
## Notes
Telemetry is off for everyone by default. While it's on for a player their client uploads a
batch of key and mouse transitions roughly once a second, delivered server-side as
`ClientInputTelemetryEvent`. Records carry key identity and timing only, never typed text.
Enabling this for the whole server is a deliberate choice: every enabled player adds a packet
per second, and the batches are only useful to something that actually consumes them.
**Deprecated.** The client no longer records input timing, so every method here does nothing: `start` and `stop` return without effect, and `isEnabled` always answers false. Kept so existing callers still compile.
---
## Methods
### start
```java
void start(Player player, boolean reportUnboundKeys)
```
Starts reporting for `player`. Survives the player's reconnect.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | |
| `reportUnboundKeys` | `boolean` | also report keys bound to nothing in vanilla controls, the signal for cheat-menu toggle keys, at the cost of a noisier stream |
---
### stop
```java
void stop(Player player)
```
Stops reporting for `player`.
| Parameter | Type |
|---|---|
| `player` | `Player` |
---
### isEnabled
```java
boolean isEnabled(UUID playerId)
```
Whether reporting is currently on for this player.
| Parameter | Type |
|---|---|
| `playerId` | `UUID` |
---
### getEnabledPlayers
```java
Set<UUID> getEnabledPlayers()
```
The players reporting right now.
---
## Example
Turn reporting on for one player and read what comes back:
```java
IInputTelemetryManager telemetry = LecternAPI.getApi().getInputTelemetryManager();
telemetry.start(suspect, false); // true also reports keys with no binding
if (telemetry.isEnabled(suspect.getUniqueId())) {
getLogger().info("Watching " + suspect.getName());
}
telemetry.stop(suspect);
```
Batches arrive as [[ClientInputTelemetryEvent]]. Check `getEnabledPlayers()` on a restart, since a
player who was being watched before a reload no longer is.
---
## Related Pages
- [[ClientInputTelemetryEvent]]. The batches themselves