---
title: "Fetch the caller's message history for a (client, year) scope."
method: GET
path: "/internal/api/cpa-chat/messages"
tags: ["CPA CHAT"]
---

# Fetch the caller's message history for a (client, year) scope.

`GET /internal/api/cpa-chat/messages`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/cpa-chat/messages`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Return the displayable message history for the caller's scope.

Tenant is derived from the JWT bearer token. Returns an empty list if no
conversation exists yet. Internal tool_use / tool_result messages are
filtered out — only user inputs and the assistant's parsed narratives
are emitted.

## Query parameters

- `client_id` string, uuid, required
- `tax_year` integer

## Response `200`

Successful Response

- MessageHistoryResponse: Body of GET /internal/api/cpa-chat/messages.
  - `conversation_id` string, uuid, nullable: None when no conversation exists yet for this scope.
  - `messages` MessageHistoryItem[]
    - `role` 'user' | 'assistant', required
    - `text` string, required
    - `created_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
