Skip to main content
GET
Get chat history for a conversation

Authorizations

Authorization
string
header
required

An API key from your Devic console, sent as Authorization: Bearer <key>. An embedded front end sends a tenant-session token instead, so no API key reaches the browser, and an OAuth integration sends its access token. Missing, invalid or expired credentials get a 401. See Authentication.

Path Parameters

identifier
string
required

Identifier of the assistant that holds the conversation

chatUid
string
required

Identifier of the conversation

Response

The conversation

A conversation with an assistant: its messages and everything the platform recorded about the run — model, tokens, cost, tags and the memory or compaction events it went through.

chatUID
string

Unique identifier of the conversation. This is the chatUid you send to continue it.

Example:

"550e8400-e29b-41d4-a716-446655440000"

clientUID
string

Account the conversation belongs to

Example:

"f9a44905-3193-4bd2-a81a-71156aa7eb66"

userUID
string

Identity that opened the conversation

Example:

"7a735eda-69e7-420b-9507-6abf80ad2e34"

name
string | null

Title of the conversation, when one was given or generated

Example:

"Solar panel recommendations"

archived
boolean

Archived conversations stay readable but are kept out of the default listings

assistantSpecializationIdentifier
string

Assistant that holds the conversation

Example:

"550e8400-e29b-41d4-a716-446655440000"

chatContent
object[]

The messages, oldest first. Omitted when the request asked for omitContent=true.

creationTimestampMs
number

When the conversation was created, Unix milliseconds

Example:

1789630543006

lastEditTimestampMs
number

When it last changed, Unix milliseconds

Example:

1789630572077

llm
string

Model that answered

Example:

"gpt-4.1"

provider
string

Provider of that model

Example:

"open-ai"

contextWindow
number

Context capacity of the model in tokens. Absent for models the platform does not know the capacity of.

Example:

1050000

inputTokens
number

Input tokens of the whole conversation

Example:

6380

outputTokens
number

Output tokens of the whole conversation

Example:

372

tokenUsage
object

Full accounting of the conversation: the model's own tokens and cost, plus what the secondary calls (summarisation, compaction, evaluations) added, broken down by operation.

metadata
object | null

The metadata the conversation was opened with, including the canonical subtenantId

tenantId
string | null

Tenant the conversation is attributed to, in multi-tenant setups

Example:

"tenant_12345"

tags
string[] | null

Tags stored on the conversation

Example:
stopReason
string

Why the platform stopped the conversation, when it did (max_chat_messages_reached, error, ...)

Example:

"max_chat_messages_reached"

triggerSource
object

Set when an app-integration trigger opened the conversation instead of a person

guardrailResults
object

What the guardrails decided on this conversation

handedOff
boolean

The conversation is paused waiting for a subagent to finish

handedOffSubThreadId
string

Thread of the subagent it is waiting on

Example:

"64f5a5b8c123456789abcdef"

pausedUntil
number

When a self-paused assistant resumes, Unix milliseconds

pausedReason
string

Reason the assistant gave for pausing

recalledMemories
object[]

Long-term-memory recalls of this conversation, each with the facts or entities it surfaced and the messageUid of the message that brought it in, so a client can interleave them with the messages. Only for assistants with memory enabled.

coreMemories
object[]

Snapshots of the core-memory block the conversation was given, recorded whenever its revision changed. The block itself is re-rendered into the prompt on every call and never persisted with it. Only for assistants with core memory enabled.

compactions
object[]

Compaction checkpoints. Each folds the messages before its boundary into a summary plus the identifiers, paths and urls kept verbatim; from then on the model receives the checkpoint instead of those messages, which stay in chatContent. Only the newest one is in force.