会話履歴メッセージ一覧を取得
対象アプリ:Chatflow、Agent、チャットボット、レガシー Agent。
会話のメッセージ履歴を新しい順に返します。first_id を渡すと、より古いメッセージへページをさかのぼれます。
1 min read
get/messages
Request example
curl --request GET \
--url https://api.dify.ai/v1/messages \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dify.ai/v1/messages"
headers = {
"Authorization": "Bearer <token>",
}
response = requests.request("GET", url, headers=headers)
print(response.text)const response = await fetch('https://api.dify.ai/v1/messages', {
method: 'GET',
headers: {
'Authorization': 'Bearer <token>'
}
});
const data = await response.json();
console.log(data);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.dify.ai/v1/messages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer <token>',
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.dify.ai/v1/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.dify.ai/v1/messages"))
.header("Authorization", "Bearer <token>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());require 'uri'
require 'net/http'
url = URI('https://api.dify.ai/v1/messages')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'
request = Net::HTTP::Get.new(url)
request['Authorization'] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyResponse
{
"data": [
{
"agent_thoughts": [],
"answer": "iPhone 13 Pro Max specs are listed here:...",
"answer_tokens": 58,
"conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2",
"created_at": 1705407629,
"currency": "USD",
"error": null,
"extra_contents": [],
"feedback": {
"rating": "like"
},
"id": "9da23599-e713-473b-982c-4328d4f5c78a",
"inputs": {
"city": "San Francisco"
},
"message_files": [],
"message_tokens": 100,
"parent_message_id": null,
"provider_response_latency": 1.234,
"query": "What are the specs of the iPhone 13 Pro Max?",
"retriever_resources": [],
"status": "normal",
"total_price": "0.0012825",
"total_tokens": 158
}
],
"has_more": false,
"limit": 20
}{
"code": "not_chat_app",
"message": "Please check if your app mode matches the right API route.",
"status": 400
}{
"code": "not_found",
"message": "Conversation Not Exists.",
"status": 404
}{
"code": "not_found",
"message": "First Message Not Exists.",
"status": 404
}get/messages
Authorization
すべてのリクエストは API キーで認証します:Authorization: Bearer {API_KEY}。アプリのエンドポイントにはアプリの API キーを、ナレッジのエンドポイントにはナレッジベースの API キーを使用します(Dify API クイックスタート)。
キーはサーバーサイドで保管し、クライアントコードには決して埋め込まないでください。キーが欠落または無効なリクエストは HTTP 401(unauthorized)で失敗します。
Query parameters
エンドユーザーの識別子。アプリ側で定義し、アプリ内で一意にします。エンドユーザーの識別 を参照してください。
ページネーションカーソルです。現在のページの最初のメッセージの
id を指定します。渡すと前(より古い)ページを取得し、省略すると最新のメッセージを取得します。Responses
application/json
会話履歴の取得に成功しました。
メッセージのリストです。
Show child attributesHide child attributes
このメッセージのエージェント思考です。
Show child attributesHide child attributes
この思考のチェーン ID です。
作成タイムスタンプ。
この思考に関連するファイル ID です。
エージェント思考 ID です。
この思考が属する一意のメッセージ ID です。
ツール呼び出しからのレスポンスです。
この思考の位置です。
LLM が思考している内容です。
呼び出されたツール(
; で区切り)です。ツールの入力(JSON 形式)です。
使用されたツールのラベルです。
アシスタントの回答テキストです。
生成された回答のトークン数です。
会話 ID。
作成タイムスタンプ(Unix エポック秒)。
total_price の通貨(例:USD)です。価格情報が利用できない場合は null です。status が error の場合のエラーメッセージです。このメッセージに関連する追加の実行コンテンツです。chatflow ワークフローの人間の入力ノードからのフォームデータなどが含まれます。
Show child attributesHide child attributes
人間の入力ノードによってレンダリングされる人間の入力フォームの定義です。
Show child attributesHide child attributes
フォームで利用可能なアクションボタンです。
フォームを UI に表示するかどうかです。
フォームが期限切れになる Unix タイムスタンプです。
フォームと共に表示される Markdown またはテキストコンテンツです。
フォームの一意識別子です。
フォーム送信認証用のトークンです。
フォーム内の入力フィールドです。
Show child attributesHide child attributes
フォーム入力のデフォルト値設定です。
入力値が格納される変数名です。
フォーム入力コントロールの種類。使用可能な値:
paragraph(複数行テキスト)、select(リストからの単一選択)、file(単一ファイルのアップロード)、file-list(複数ファイルのアップロード)。このフォームを生成した人間の入力ノードの ID です。
人間の入力ノードのタイトルです。
出力変数名をキーとする、フォーム入力の解決済みデフォルト値です。
送信された人間の入力フォームからのデータです。
人間の入力フォームが送信されたかどうかです。
human_input は人間の入力コンテンツを示します。このコンテンツが属するワークフロー実行の ID です。
このメッセージのユーザーフィードバックです。
Show child attributesHide child attributes
フィードバック評価。肯定的な場合は
like、否定的な場合は dislike。メッセージ ID。
このメッセージの入力変数です。
このメッセージに添付されたファイルです。
Show child attributesHide child attributes
このファイルの所有者です。ユーザーがアップロードしたファイルの場合は
user、アシスタントが生成したファイルの場合は assistant です。元のファイル名です。
File ID.
ファイルの MIME タイプ。
ファイルサイズ(バイト)。
使用された転送方法です。
remote_url は URL ベースのファイル、local_file はアップロード済みファイル、tool_file はツール生成ファイルを示します。ファイルの種類(例:
image)です。local_file で転送された場合のアップロードファイル ID です。ファイルのプレビュー URL。
入力メッセージのトークン数です。
スレッド会話の親メッセージ ID です。
モデルプロバイダーの応答レイテンシ(秒)です。
ユーザークエリテキストです。
このメッセージに使用された検索リソースです。
Show child attributesHide child attributes
リソースからのコンテンツスニペット。
作成タイムスタンプ(Unix エポック秒)。
データソースのタイプ。
ナレッジベース ID。
ナレッジベース名。
ドキュメント ID。
ドキュメント名。
このチャンクがヒットした回数。
検索リソースの一意の ID。
インデックスノードのハッシュ。
このリソースが属するメッセージの ID。
リスト内のリソースの位置。
リソースの関連性スコア。
ドキュメント内の特定のチャンクの ID。
ドキュメント内のチャンクの位置。
チャンクコンテンツの要約。
チャンクの単語数。
メッセージステータスです。成功したメッセージの場合は
normal、生成に失敗した場合は error です。使用されたトークンの合計金額です。価格情報が利用できない場合は
null です。使用されたトークンの合計。
message_tokens と answer_tokens の合計です。さらにメッセージがあるかどうかです。
1 ページあたりの件数です。