# Inband Objects
Inband objects enables clients to subscribe to LiveObjects updates in realtime, even on platforms that don't yet have a native LiveObjects Realtime client implementation.
Inband objects works by delivering changes to channel objects as regular channel messages, similar to [inband occupancy](https://ably.com/docs/channels/options#occupancy).
## Enable Inband Objects
To enable inband objects, use the `objects` [channel parameter](https://ably.com/docs/channels/options#objects) when getting a channel:
```javascript
// When getting a channel instance
const channelOpts = { params: { objects: 'objects' } };
const channel = realtime.channels.get('my-channel', channelOpts);
// Or using setOptions on an existing channel
await channel.setOptions({ params: { objects: 'objects' } });
```
## Subscribe to updates
When using inband objects, the client will receive special `[meta]objects` messages whenever the objects on the channel are updated. These messages provide a snapshot of the current set of objects on the channel.
[Subscribe](https://ably.com/docs/api/realtime-sdk/channels#subscribe) to `[meta]objects` messages like you would any other message on the channel. For convenience, use a message name filter to only receive messages with the name `[meta]objects` in your listener:
```javascript
// Subscribe to [meta]objects messages
channel.subscribe('[meta]objects', (message) => {
const { syncId, nextCursor, object } = message.data;
console.log("Received inband objects message:", syncId, nextCursor, JSON.stringify(message.data));
});
```
## Message Format
Inband objects messages are sent as a sequence of messages, where each message contains a snapshot of a single object on the channel. Taken together, a set of messages belonging to the same sequence describes the complete set of objects on the channel.
Each inband objects message has a message `name` of `[meta]objects`.
The message `data` is a JSON object with the following top-level properties:
| Property | Description |
| -------- | ----------- |
| `syncId` | A unique ID for this sequence. All messages with the same `syncId` are part of the same sequence of messages which describes the complete set of the objects on the channel. |
| `nextCursor` | A cursor for the next message in the sequence, or `undefined` if this is the last message in the sequence. |
| `object` | A JSON representation of the object included in the message. |
The shape of the `object` is the same as the response format of an object when listing them via the [REST API](https://ably.com/docs/liveobjects/rest-api-usage#fetching-objects-list-values).