- Home
- リファレンス
- API でボットを利用する
- API キーを発行して API を呼び出す
API キーを発行して API を呼び出す
Wisora API の API キー発行手順と、チャット API のサンプル呼び出しを説明します。
Wisora API を利用すると、外部システムから Wisora ボットに問い合わせて、ボットの回答を取得できます。
API リファレンスは管理コンソールで確認できます
エンドポイントの一覧、リクエスト、レスポンスの詳細は、管理コンソールの [管理(テナント)] → [APIドキュメント] に表示される API リファレンスを参照してください。
Wisora Pro プランまたは Wisora Enterprise プランが必要です
API を利用するには、Wisora Pro プランまたは Wisora Enterprise プランの契約が必要です。契約の変更について詳しくは、契約 (プラン) を変更する を参照してください。
API キーを発行する
-
管理者として 管理コンソールにログイン して、メニューの [管理(テナント)] → [テナント設定] を順にクリックします。
-
[APIキー] タブをクリックします。
-
[API キーを発行する] をクリックします。
API キーが発行され、一覧に表示されます。
-
発行された API キーをコピーして、外部システム側で安全に保管します。
API 呼び出しでは、この値を
X-API-KEYヘッダーに指定します。
- API キーは、第三者に共有しないでください。
- API キーは 2 件まで発行できます。
- API キーを無効化する場合は、 [ステータス] を変更して [更新] をクリックします。
- API キーを削除する場合は、対象の API キーの [削除] → [削除] を順にクリックします。
API リファレンスを確認する
-
管理コンソールで、メニューの [管理(テナント)] → [APIドキュメント] を順にクリックします。
API リファレンスが表示されます。
-
エンドポイント、リクエストボディ、レスポンスボディを確認します。
チャット API を呼び出す
次の手順で、会話 ID を生成してからボットへメッセージを送信します。botId を省略するとデフォルトボットを利用します。特定のボットを指定する場合は、リクエストボディに botId を指定します。デフォルトボットを明示する場合は、default を指定します。
手順のコマンド実行例の https://<管理コンソールのホスト名> には、管理コンソールの URL から /ui/... 以降を除いた URL を指定します。たとえば、管理コンソールのログイン URL が https://example.wisora.soracom.io/ui/wisora-login の場合は、https://example.wisora.soracom.io を指定します。
-
POST /api/chat/startを呼び出して、会話 ID を生成します。curl -sS -X POST "https://<管理コンソールのホスト名>/api/chat/start" \ -H "Content-Type: application/json" \ -H "X-API-KEY: <発行した API キー>" \ --data '{ "conversationIdSuffix": "sample-session" }'conversationIdSuffixは任意です。指定すると、識別しやすいサフィックス付きの会話 ID を生成できます。API で取得したレスポンスの例は以下のとおりです。
{ "conversationId": "<生成された会話 ID>", "suffix": "sample-session" } -
レスポンスの
conversationIdを指定して、POST /api/chat/messageを呼び出します。curl -sS -X POST "https://<管理コンソールのホスト名>/api/chat/message" \ -H "Content-Type: application/json" \ -H "X-API-KEY: <発行した API キー>" \ --data '{ "chatMessage": "営業時間を教えてください。", "replyFormat": "markdown", "conversationId": "<生成された会話 ID>" }'主なリクエスト項目は以下のとおりです。
項目 説明 chatMessageボットに送信するメッセージです。 replyFormatレスポンスの形式です。この例では markdownを指定しています。conversationIdPOST /api/chat/startで生成された会話 ID です。同じ値を指定すると会話を継続できます。botId任意です。対象ボットの ID を指定します。省略時はデフォルトボットが対象です。 API で取得したレスポンスの例は以下のとおりです。レスポンスには、ボットの回答、会話 ID、参照したドキュメントなどが含まれます。
{ "chatReply": "お問い合わせありがとうございます。営業時間は平日 9:00 から 18:00 です。", "referenceDocs": [ { "title": "お問い合わせ", "url": "https://example.co.jp/info.html", "content": "営業時間: 平日 9:00 ~ 18:00" } ], "complementaryDocs": [], "format": "markdown", "updatedConversationHistory": [], "conversationId": "<生成された会話 ID>", "timestamp": "2026-05-01T12:34:56.789Z" } -
同じ会話を継続する場合は、手順 2 のレスポンスに含まれる
conversationIdを次回のPOST /api/chat/messageに指定します。curl -sS -X POST "https://<管理コンソールのホスト名>/api/chat/message" \ -H "Content-Type: application/json" \ -H "X-API-KEY: <発行した API キー>" \ --data '{ "chatMessage": "土曜日も営業していますか。", "replyFormat": "markdown", "conversationId": "<生成された会話 ID>" }'API で取得したレスポンスの例は以下のとおりです。
{ "chatReply": "土曜日は営業していません。営業時間は平日 9:00 から 18:00 です。", "referenceDocs": [ { "title": "お問い合わせ", "url": "https://example.co.jp/info.html", "content": "営業時間: 平日 9:00 ~ 18:00" } ], "complementaryDocs": [], "format": "markdown", "updatedConversationHistory": [], "conversationId": "<生成された会話 ID>", "timestamp": "2026-05-01T12:35:12.345Z" }
API キーが指定されていない場合、有効な API キーと一致しない場合、または有効な API キーがテナントに登録されていない場合は、401 Unauthorized が返されます。
チャットログ API を呼び出す
GET /api/v1/chat/logs を呼び出すと、チャットログに記録されたメッセージを会話単位で取得できます。取得対象の期間は、メッセージの送信日時で指定します。
curl -sS "https://<管理コンソールのホスト名>/api/v1/chat/logs?from=1764547200000&to=1764633599999&limit=100" \
-H "X-API-KEY: <発行した API キー>"
主なクエリパラメーターは以下のとおりです。
| 項目 | 説明 |
|---|---|
from | 必須です。取得対象に含めるメッセージ送信日時の開始時刻を UNIX 時間 (ミリ秒) で指定します。(*) |
to | 必須です。取得対象に含めるメッセージ送信日時の終了時刻を UNIX 時間 (ミリ秒) で指定します。(*) |
limit | 1 回のリクエストで取得対象にする会話数の上限です。メッセージ数の上限ではありません。省略時は 100 件です。最大 100 件まで指定できます。 |
continuationToken | 続きの会話を取得するための継続トークンです。前回のレスポンスの nextContinuationToken を指定します。 |
botId | 任意です。対象ボットの ID を指定します。省略時はデフォルトボットが対象です。 |
(*) from と to はメッセージ単位で適用されるため、同じ会話内でも指定範囲外のメッセージはレスポンスに含まれません。
API で取得したレスポンスの例は以下のとおりです。
{
"items": [
{
"conversationId": "cv-1234567890-abc123",
"category": "supportChat",
"chatSessionUserId": "publicSession:sample-user",
"conversations": [
{
"sender": "user",
"message": "営業時間を教えてください。",
"timestamp": "2026-05-01T12:34:56.789Z"
},
{
"sender": "bot",
"message": "営業時間は平日 9:00 から 18:00 です。",
"timestamp": "2026-05-01T12:35:02.345Z"
}
]
}
],
"nextContinuationToken": "<次のページを取得するためのトークン>"
}
レスポンスに nextContinuationToken が含まれる場合は、次のリクエストの continuationToken にその値を指定して、続きの会話を取得してください。items が空でも nextContinuationToken が返ることがあります。
Wisora