---
title: "Process a tax research query"
method: POST
path: "/internal/api/research/chat"
tags: ["TAX RESEARCH CHAT"]
---

# Process a tax research query

`POST /internal/api/research/chat`

## 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/research/chat`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Handle a tax research query from the user and return the updated conversation ID.

This endpoint is specific to tax research conversations and handles:
- Processing tax-related queries
- Creating new tax research conversations
- Adding messages to existing tax research conversations
- Generating AI responses for tax questions

Note: For listing conversations or getting conversation details,
use the generic chat endpoints:
- GET /chat/conversations?conversation_type=TAX_RESEARCH
- GET /chat/conversations/{conversation_id}

## Request body

- ResearchChatRequest
  - `message` string, required: User's tax research query
  - `conversation_id` string, uuid, nullable
  - `conversation_type` 'TAX_RESEARCH' | 'STATE_TAX_RESEARCH' | 'GENERAL' | 'INVOICE_HELP' | 'TEMPLATE_HELP'

## Response `201`

Response containing the conversation ID

- ResearchChatResponse
  - `status` string, required
  - `conversation_id` string, uuid, required
  - `user_message_id` string, uuid, required
  - `system_message_id` string, uuid, required
  - `task_id` string, nullable: Background task ID for tracking AI response generation

## 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)
