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

# 获取会话历史消息

> **适用于**：Chatflow。

以滚动加载的方式返回会话的历史消息。不传 `first_id` 时，返回最新的 `limit` 条消息，按时间正序排列；传入 `first_id` 时，返回它之前的消息。

**对应的标准 API 接口**：[获取会话历史消息](/zh/3.13.x/develop/api/conversations/list-conversation-messages)。差异：

- `user` 为必填。
- 以下响应字段的取值固定：
    - `feedback` 始终为 `null`。
    - `retriever_resources` 始终为空。
    - `agent_thoughts` 始终为空。
    - `parent_message_id` 始终是全零 UUID。
- 错误码不同。



## OpenAPI

````yaml /zh/3.13.x/develop/api/openapi_service.json get /v2/messages
openapi: 3.0.1
info:
  title: Dify 服务 API
  description: 用于 Dify 应用与知识库的 REST API。应用类接口使用应用 API 密钥认证，知识库类接口使用知识库 API 密钥认证。
  version: 1.0.0
servers:
  - url: https://{api_base_url}
    description: Dify 服务 API 的基础 URL。替换为你部署的 API 基础 URL。
    variables:
      api_base_url:
        default: api.example.com/v1
        description: API 基础 URL 的主机与路径，不含 `https://` 前缀。
security:
  - ApiKeyAuth: []
tags:
  - name: 对话消息
    description: 与聊天消息和交互相关的操作。
  - name: 文件操作
    description: 文件上传和预览操作。
  - name: 终端用户
    description: 终端用户信息相关操作。
  - name: 消息反馈
    description: 用户反馈操作。
  - name: 会话管理
    description: 与管理会话相关的操作。
  - name: 语音与文字转换
    description: 文字转语音和语音转文字操作。
  - name: 应用配置
    description: 获取应用设置和信息的操作。
  - name: 标注管理
    description: 与管理标注直接回复相关的操作。
  - name: 人工介入
    description: 暂停等待人工输入的工作流恢复操作。
  - name: 工作流运行
    description: 用于执行和管理工作流的操作。
  - name: 文本生成消息
    description: 文本生成相关操作。
  - name: 知识库
    description: 用于管理知识库的操作，包括创建、配置和检索。
  - name: 文档
    description: 用于在知识库中创建、更新和管理文档的操作。
  - name: 分段
    description: 用于管理分段和子分段的操作。
  - name: 元数据
    description: 用于管理知识库元数据字段和文档元数据值的操作。
  - name: 标签
    description: 用于管理知识库标签和标签绑定的操作。
  - name: 模型
    description: 用于获取可用模型的操作。
  - name: 知识流水线
    description: 用于管理和运行知识流水线的操作，包括数据源插件和流水线执行。
  - name: 部署环境
    description: >-
      部署环境通过 `v2` 基础 URL 提供的接口。部署环境只提供本组中的接口，调用其他路径会返回 `404
      not_found`。认证方式和错误码与标准服务 API 不同，部署环境以本组页面为准。
paths:
  /v2/messages:
    get:
      tags:
        - 部署环境
      summary: 获取会话历史消息
      description: >-
        **适用于**：Chatflow。


        以滚动加载的方式返回会话的历史消息。不传 `first_id` 时，返回最新的 `limit` 条消息，按时间正序排列；传入
        `first_id` 时，返回它之前的消息。


        **对应的标准 API
        接口**：[获取会话历史消息](/zh/3.13.x/develop/api/conversations/list-conversation-messages)。差异：


        - `user` 为必填。

        - 以下响应字段的取值固定：
            - `feedback` 始终为 `null`。
            - `retriever_resources` 始终为空。
            - `agent_thoughts` 始终为空。
            - `parent_message_id` 始终是全零 UUID。
        - 错误码不同。
      operationId: listDeployedMessagesCn
      parameters:
        - name: user
          in: query
          required: true
          description: >-
            终端用户标识，由你的应用定义，需在应用内唯一。会话同时归属于应用、环境和该 `user`，后续的读取和修改都要传入相同的值。参见
            [终端用户身份](/zh/3.13.x/develop/api/guides/end-user-identity)。
          schema:
            type: string
            minLength: 1
            maxLength: 255
        - name: conversation_id
          in: query
          required: true
          description: >-
            要读取的会话 ID。会话 ID 可从
            [获取会话列表](/zh/3.13.x/develop/api/deployed-environments/list-conversations)
            获取。
          schema:
            type: string
            format: uuid
        - name: first_id
          in: query
          required: false
          description: 分页游标：当前页第一条消息的 `id`。传入它可获取上一页（更早的消息）；省略则获取最新消息。
          schema:
            type: string
            format: uuid
        - name: limit
          in: query
          required: false
          description: 每次请求返回的聊天历史消息数量。
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: 该会话的一页消息，最早的排在前。
          content:
            application/json:
              schema:
                type: object
                properties:
                  limit:
                    type: integer
                    description: 本页实际使用的分页大小。
                  has_more:
                    type: boolean
                    description: 是否还有更早的消息。
                  data:
                    type: array
                    description: 消息列表，按时间正序排列。
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: 消息 ID。
                        conversation_id:
                          type: string
                          description: 会话 ID。
                        parent_message_id:
                          type: string
                          description: 通过本接口创建的消息，该字段始终为全零 UUID。
                        inputs:
                          type: object
                          description: 本轮对话的输入变量。
                          additionalProperties: true
                        query:
                          type: string
                          description: 用户提出的问题。
                        answer:
                          type: string
                          description: 应用给出的回答。其中可识别的文件链接会刷新为当前可用的下载 URL。
                        feedback:
                          type: object
                          nullable: true
                          description: 固定为 `null`，部署环境不支持消息反馈。
                          additionalProperties: true
                        retriever_resources:
                          type: array
                          description: 在部署环境中固定为空数组。
                          items:
                            type: object
                            properties: {}
                        created_at:
                          type: integer
                          description: 创建时间，Unix 时间戳（秒）。
                        agent_thoughts:
                          type: array
                          description: 在部署环境中固定为空数组。
                          items:
                            type: object
                            properties: {}
                        message_files:
                          type: array
                          description: 本轮对话附带的文件。
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                description: 关联消息与文件的稳定 ID。
                              filename:
                                type: string
                                description: 文件名。
                              type:
                                type: string
                                description: 文件类别：`image`、`audio`、`video` 或 `document`。
                              url:
                                type: string
                                description: >-
                                  相对下载 URL，其中已带上 `user` 查询参数（工具生成的文件还会带
                                  `kind=tool`）。基于部署环境的基础 URL 请求该地址即可。
                              mime_type:
                                type: string
                                description: MIME 类型。
                              size:
                                type: integer
                                description: 文件大小（字节）。
                              transfer_method:
                                type: string
                                description: 上传的文件为 `local_file`，工具生成的文件为 `tool_file`。
                              belongs_to:
                                type: string
                                description: 取值为 `user` 或 `assistant`。
                              upload_file_id:
                                type: string
                                description: >-
                                  文件自身的 ID，可用于
                                  [下载文件](/zh/3.13.x/develop/api/deployed-environments/download-file)。
                        message_tokens:
                          type: integer
                          description: 输入的 token 数量。
                        answer_tokens:
                          type: integer
                          description: 输出的 token 数量。
                        total_tokens:
                          type: integer
                          description: >-
                            本轮对话的 token 总数，等于 `message_tokens` 加
                            `answer_tokens`。
                        provider_response_latency:
                          type: number
                          description: 在部署环境中固定为 `0`。
                        total_price:
                          type: string
                          nullable: true
                          description: 本轮对话的总费用，无法获取时为 `null`。
                        currency:
                          type: string
                          nullable: true
                          description: 费用币种，无法获取时为 `null`。
                        status:
                          type: string
                          description: >-
                            取值为 `normal`、`stopped` 或 `error`。仍在运行的轮次报告为
                            `normal`。
                        error:
                          type: string
                          nullable: true
                          description: 运行的错误信息，成功时为 `null`。
                        extra_contents:
                          type: array
                          description: 在部署环境中固定为空数组。
                          items:
                            type: object
                            properties: {}
              examples:
                ok:
                  summary: 响应示例
                  value:
                    limit: 20
                    has_more: false
                    data:
                      - id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
                        conversation_id: 0f8fad5b-d9cb-469f-a165-70867728950e
                        parent_message_id: 00000000-0000-0000-0000-000000000000
                        inputs:
                          order_id: ORDER-1001
                        query: Where is my refund now?
                        answer: Your refund is being processed by the bank.
                        feedback: null
                        retriever_resources: []
                        created_at: 1787788860
                        agent_thoughts: []
                        message_files:
                          - id: a8098c1a-f86e-51da-bd1e-66d42f3f323a
                            filename: receipt.pdf
                            type: document
                            url: >-
                              /v2/files/16fd2706-8baf-433b-82eb-8c7fada847da/preview?user=customer-001
                            mime_type: application/pdf
                            size: 48231
                            transfer_method: local_file
                            belongs_to: user
                            upload_file_id: 16fd2706-8baf-433b-82eb-8c7fada847da
                        message_tokens: 28
                        answer_tokens: 19
                        total_tokens: 47
                        provider_response_latency: 0
                        total_price: '0.0012'
                        currency: USD
                        status: normal
                        error: null
                        extra_contents: []
        '400':
          description: >-
            - `invalid_param`：某个路径参数或查询参数未通过校验规则。`message` 会指出值违反了哪条规则，例如
            `conversation_id` 格式错误时返回 `value must be a valid UUID`。

            - `invalid_param`：`user` 只包含空白字符，此时 `message` 为 `invalid argument`。

            - `not_chat_app`：该 API 密钥所属的应用不是 Chatflow。

            - `app_unavailable`：该应用当前无法在此环境中处理 API 请求。
                - 应用关闭了 API 访问。
                - 应用未在此环境中部署。
                - 部署仍在进行中。
                - 环境正在删除。

                联系应用负责人确认 **访问点** 标签页的设置，或联系管理员在企业管理后台中查看该环境，待应用恢复服务后再重试。
          content:
            application/json:
              examples:
                invalid_param:
                  summary: invalid_param
                  value:
                    code: invalid_param
                    message: >-
                      invalid ListServiceAPIMessagesRequest.ConversationId:
                      value must be a valid UUID | caused by: invalid uuid
                      format
                    status: 400
                invalid_param_user:
                  summary: invalid_param（空白 user）
                  value:
                    code: invalid_param
                    message: invalid argument
                    status: 400
                not_chat_app:
                  summary: not_chat_app
                  value:
                    status: 400
                    code: not_chat_app
                    message: Please check if your app mode matches the right API route.
                app_unavailable:
                  summary: app_unavailable
                  value:
                    status: 400
                    code: app_unavailable
                    message: App unavailable, please check your app configurations.
        '401':
          description: '`unauthorized`：API 密钥缺失、格式错误、无法识别或已撤销。'
          content:
            application/json:
              examples:
                unauthorized:
                  summary: unauthorized
                  value:
                    code: unauthorized
                    message: Access token is invalid
                    status: 401
        '404':
          description: |-
            - `not_found`：该会话不存在，或不属于此 `user`。
            - `not_found`：`first_id` 指向的消息不在该会话中。
          content:
            application/json:
              examples:
                not_found:
                  summary: not_found
                  value:
                    status: 404
                    code: not_found
                    message: Conversation Not Exists.
                not_found_first_message:
                  summary: not_found（first_id）
                  value:
                    code: not_found
                    message: First Message Not Exists.
                    status: 404
        '500':
          description: '`internal_server_error`：平台未能完成本次请求。可重试，若持续出现则联系管理员。'
          content:
            application/json:
              examples:
                internal_server_error:
                  summary: internal_server_error
                  value:
                    code: internal_server_error
                    message: internal error
                    status: 500
      servers:
        - url: https://{deployed_api_base_url}
          description: 所有部署环境共用的基础 URL，即把标准服务 API 地址中的 `/v1` 换成 `/v2`。
          variables:
            deployed_api_base_url:
              default: api.example.com
              description: >-
                打开应用的 **访问点** 标签页，从任一部署环境的 **后端服务 API** 卡片复制完整 URL，再去掉开头的
                `https://` 和末尾的 `/v2`。
components:
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        每个请求都通过 API Key 认证：`Authorization: Bearer {API_KEY}`。应用接口使用应用 API
        Key，知识库接口使用知识库 API
        Key（[快速开始](/zh/3.13.x/develop/api/guides/get-started)）。


        API Key 应保存在服务端，切勿嵌入客户端代码。缺失或无效的 Key 会返回 HTTP `401`（`unauthorized`）。

````