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

# Conversation & Message

> Reference for Conversation, Message, Page, and related types used in conversation history.

## Conversation

`data class Conversation` — **Package:** `com.chatbase.sdk.model`

```kotlin theme={null}
data class Conversation(
    val id: String,
    val title: String?,
    val createdAt: Long,
    val updatedAt: Long,
    val userId: String?,
    val status: ConversationStatus
)
```

**id** `String` *required*

Unique conversation ID.

**title** `String?`

Auto-generated or server-assigned title.

**createdAt** `Long` *required*

Creation timestamp (Unix epoch seconds).

**updatedAt** `Long` *required*

Timestamp of the last message (Unix epoch seconds).

**userId** `String?`

The identified user who owns this conversation, or `null` for anonymous (device-scoped) conversations.

**status** `ConversationStatus` *required*

`ONGOING`, `ENDED`, or `TAKEN_OVER`.

### ConversationStatus

```kotlin theme={null}
enum class ConversationStatus {
    ONGOING,     // serialized as "ongoing" — active conversation
    ENDED,       // serialized as "ended" — conversation has ended
    TAKEN_OVER   // serialized as "taken_over" — conversation taken over by a human agent
}
```

## Message

`data class Message` — **Package:** `com.chatbase.sdk.model`

```kotlin theme={null}
data class Message(
    val id: String,
    val role: Role,
    val parts: List<Part>,
    val createdAt: Long?,
    val feedback: Feedback?,
    val metadata: MessageMetadata?
)
```

**id** `String` *required*

Unique message ID.

**role** `Role` *required*

`USER` or `ASSISTANT`.

**parts** `List\<Part\>` *required*

Message content parts — `Text`, `ToolCall`, or `ToolResult`. See [ChatResponse](https://chatbase.co/docs/android-sdk/chat-response.md) for details.

**createdAt** `Long?`

Creation timestamp (Unix epoch seconds). Absent on some older messages.

**feedback** `Feedback?`

User feedback on this message.

**metadata** `MessageMetadata?`

**properties**

**score** `Double?`

Confidence/relevance score.

### Feedback

```kotlin theme={null}
enum class Feedback {
    POSITIVE,  // serialized as "positive"
    NEGATIVE   // serialized as "negative"
}
```

## Page\<T>

`data class Page<T>` — **Package:** `com.chatbase.sdk.model`

Returned by `listConversations()` and `listMessages()`.

```kotlin theme={null}
data class Page<T>(
    val data: List<T>,
    val cursor: String?,
    val hasMore: Boolean,
    val total: Int
)
```

**data** `List\<T\>` *required*

Items on this page.

**cursor** `String?`

Cursor for the next page. `null` if no more pages.

**hasMore** `Boolean` *required*

Whether more pages exist.

**total** `Int` *required*

Total item count across all pages.

```kotlin theme={null}
val canLoadMore: Boolean
```

`true` if `hasMore` is true and `cursor` is non-null.

```kotlin theme={null}
suspend fun loadMore(): Page<T>?
```

Load the next page. Returns a new `Page` with the older items prepended to the existing `data`, so you always have the full accumulated list. Returns `null` if there are no more pages.


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