LiveKit docs › Data › Overview

---

# Data overview

> An overview of realtime text and data features for LiveKit.

## Overview

LiveKit provides several APIs for exchanging data between participants. Each is designed for a different interaction pattern — guaranteed delivery of text or files, request-response workflows, continuous low-latency streaming, or synchronized shared state.

## Choosing the right API

| Task | Recommended API | Pattern | Description |
| Send text (chat, LLM responses) | [Text streams](https://docs.livekit.io/transport/data/text-streams.md) | Guaranteed, message-based | Automatic chunking and topic-based routing. |
| Send files or binary data | [Byte streams](https://docs.livekit.io/transport/data/byte-streams.md) | Guaranteed, message-based | Transfer files, images, or any binary data with progress tracking. |
| Call a method on another participant | [RPC](https://docs.livekit.io/transport/data/rpc.md) | Guaranteed, message-based | Execute custom methods on other participants and await a response. |
| Stream continuous data (sensors, telemetry, game state) | [Data tracks](https://docs.livekit.io/transport/data/data-tracks.md) | Lossy, continuous | Prioritizes staying realtime over guaranteed delivery. Frames that can't be delivered in time are dropped. |
| Synchronize shared state | [State synchronization](https://docs.livekit.io/transport/data/state.md) | Guaranteed, message-based | Replicate participant attributes and room metadata across all participants. |
| Low-level control over individual packet delivery | [Data packets](https://docs.livekit.io/transport/data/packets.md) | Guaranteed or lossy, message-based | Advanced API for precise control over individual packet behavior. For lossy delivery, data tracks offer similar control when frame payloads fit in a single packet. |

## In this section

- **[Sending text](https://docs.livekit.io/transport/data/text-streams.md)**: Use text streams to send and receive text data, such as LLM responses or chat messages.

- **[Sending files & bytes](https://docs.livekit.io/transport/data/byte-streams.md)**: Use byte streams to transfer files, images, or any other binary data.

- **[Remote method calls](https://docs.livekit.io/transport/data/rpc.md)**: Use RPC to execute custom methods on other participants in the room and await a response.

- **[Data tracks](https://docs.livekit.io/transport/data/data-tracks.md)**: Stream continuous, low-latency data for robotics, IoT, and telemetry use cases.

- **[Data packets](https://docs.livekit.io/transport/data/packets.md)**: Low-level API for advanced control over individual packet delivery.

- **[State synchronization](https://docs.livekit.io/transport/data/state.md)**: Synchronize participant attributes and room metadata across all participants.

---

This document was rendered at 2026-06-07T11:32:58.892Z.
For the latest version of this document, see [https://docs.livekit.io/transport/data.md](https://docs.livekit.io/transport/data.md).

To explore all LiveKit documentation, see [llms.txt](https://docs.livekit.io/llms.txt).