> ## Documentation Index
> Fetch the complete documentation index at: /llms.txt
> Use this file to discover all available pages before exploring further.

# Rooms Overview

> SDK-backed model overview for live rooms, co-host rooms, playback fields, and room state.

Rooms are SDK records for live broadcasting sessions. A room can be observed as a single live object or queried as a live collection, then published into a feed by creating a room post from its `roomId`.

This page focuses on source-backed room concepts. Use [Create Room](/social-plus-sdk/video-new/broadcasting/create-room.md) for runnable snippets.

## Platform Availability

| Platform | Room model | Single room observer | Room list/query | Room post |
| - | - | - | - | - |
| TypeScript | `Amity.Room` | `RoomRepository.getRoom(roomId, callback)` | `RoomRepository.getRooms(params, callback)` | `PostRepository.createRoomPost()` |
| iOS | `AmityRoom` | `AmityRoomRepository().getRoom(withId:)` | `AmityRoomRepository().getRooms(with:)` | `AmityPostRepository().createRoomPost()` |
| Android | `AmityRoom` | `AmityVideoClient.newRoomRepository().getRoom(roomId)` | `AmityVideoClient.newRoomRepository().getRooms().build().query()` | `AmitySocialClient.newPostRepository().createRoomPost()` |
| Flutter | No current public `AmityRoom` model found | Not available | Not available | Not available |

## Room Types

| Type value | Meaning | Platform notes |
| - | - | - |
| `coHosts` | Co-host live room type | TypeScript and iOS accept this value during creation. Android exposes it as `AmityRoomType.CO_HOSTS` for queries, but current `createRoom()` does not expose a room type argument. |
| `directStreaming` | Direct streaming room type | TypeScript and iOS expose this value. Android exposes it as `AmityRoomType.DIRECT_STREAMING` for queries. |

## Room Fields

| Concept | TypeScript | iOS | Android |
| - | - | - | - |
| Room ID | `room.roomId` | `room.roomId` | `room.getRoomId()` |
| Status | `room.status` | `room.status` | `room.getStatus()` |
| Title and description | `title`, `description` | `title`, `description` | `getTitle()`, `getDescription()` |
| Chat channel linkage | `liveChannelEnabled`, `liveChannelId`, `getLiveChat()` | `channelEnabled`, `channelId`, `channel` | `isChannelEnabled()`, `getChannelId()`, `getChannel()` |
| Feed/post reference | `referenceType`, `referenceId`, `post` | `referenceType`, `referenceId`, `post` | `getReferenceType()`, `getReferenceId()`, `getPost()` |
| Live playback | `livePlaybackUrl`, `liveThumbnailUrl`, `liveResolution` | `livePlaybackUrl`, `liveThumbnailUrl`, `liveResolution` | `getLivePlaybackUrl()`, `getLiveThumbnailUrl()`, `getLiveResolution()` |
| Recorded playback | `recordedPlaybackInfos`, `recordedResolution` | `recordedData`, `recordedResolution` | `getRecordedPlaybackInfos()`, `getRecordedResolution()` |
| Parent and child rooms | `parentRoomId`, `childRoomIds`, `childRooms` | `parentRoomId`, `childRoomIds`, `childRooms` | `getParentRoomId()`, `getChildRoomIds()`, `getChildRooms()` |
| Creator and deletion | `createdBy`, `isDeleted`, `deletedBy` | `creatorId`, `creator`, `isDeleted`, `deletedById` | `getCreatorId()`, `getCreator()`, `isDeleted()` |
| Custom metadata | `metadata` | `metadata` | `getMetadata()` |
| Moderation | `moderation` | `moderation` | `getModeration()` |

> [!NOTE]
>
> Android's current public `AmityRoom` model does not expose a direct `getType()` accessor even though room type is available in query filters and internal model construction.

## Participants

Participants are users who can broadcast in the room. Viewers are not room participants.

| Field | TypeScript | iOS | Android | |
| - | - | - | - | - |
| Role/type | \`type: "host" | "coHost"\` | `type: String` | `ParticipantType.HOST`, `ParticipantType.CoHost`, or `ParticipantType.Unknown` |
| User ID | `userId` | `userId` | `userId` | |
| Internal user ID | `userInternalId` | `userInternalId` | `userInternalId` | |
| Linked user | `user` | `user` | `user` | |
| Product-tag permission | `canManageProductTags` | `canManageProductTags` | `canManageProductTags` | |

## Status Model

| Status | Meaning |
| - | - |
| `idle` | The room exists but is not broadcasting. |
| `live` | The room is currently broadcasting. |
| `waitingReconnect` | The live session is waiting for reconnection. |
| `ended` | The live session has stopped. |
| `recorded` | Recorded playback metadata is available. |
| `terminated` | The room was terminated. TypeScript and iOS expose this status. |
| `error` | The room is in an error state. |

## Room Posts and Feed Distribution

Creating a room does not by itself document a feed post in the SDK examples. To publish the room into a feed, create a room post with the room ID.

> [card] [Room Posts](/social-plus-sdk/social/content-management/posts/creation/room-post.md)
>
> Create a user or community feed post that references an existing room.

> [card] [Create Room](/social-plus-sdk/video-new/broadcasting/create-room.md)
>
> Create a room before publishing it as a room post.

## Media and Playback Fields

The room model exposes media fields that your app can use for live or recorded playback. The SDK does not render the player for SDK integrations.

| Field | Availability | Use |
| - | - | - |
| `livePlaybackUrl` | While live when available | Viewer playback URL. |
| `liveThumbnailUrl` | Live or reconnecting sessions when available | Live thumbnail generated by the streaming backend. |
| `liveResolution` | Live or reconnecting sessions when available | Live stream aspect ratio, width, and height. |
| `recordedPlaybackInfos` / `recordedData` | After recording is available | Recorded playback URL and thumbnail metadata. |
| `recordedResolution` | After recording is available | Recorded stream aspect ratio, width, and height. |

## Next Steps

> [card] [Create Room](/social-plus-sdk/video-new/broadcasting/create-room.md)
>
> Create rooms and retrieve broadcaster data.

> [card] [Manage Rooms](/social-plus-sdk/video-new/broadcasting/manage-rooms.md)
>
> Observe, query, update, stop, and delete rooms.

> [card] [Co-Host Management](/social-plus-sdk/video-new/broadcasting/co-host-management.md)
>
> Manage co-host invitations, removal, and permissions.

> [card] [Recorded Playback](/social-plus-sdk/video-new/broadcasting/recorded-playback.md)
>
> Read recorded playback fields after processing completes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.