本機能は有償です。
本機能の料金を含む利用についての詳細・契約等については、担当営業までご連絡ください。
概要
外部連携用APIを有効にすると、REST APIを使用してVoice X AI Viewerから簡易通話履歴や通話録音ファイルを取得がすることが可能になります。
外部連携用APIの使用方法について
外部連携用APIを使用するには弊社サポートによる対応が必要になります。
外部連携用APIを使用したい場合、担当営業にご相談のうえ、「お問い合わせ」から弊社サポートにご依頼ください。外部連携用APIを利用するために必要となるログインIDとパスワードが発行されます。
APIの制限事項
- APIリクエストのパラメータ・フォーマットは「Content-Type: application/json」の形式のみを許容します
- 本システム側の負荷軽減のため、「秒間十数件以上」「1分ごとに24時間常時」といった連続したAPIリクエストがおこなわれた場合、APIの利用に一時的な制限がかけられる可能性があります
- 一部のAPIは抽出するデータや、出力する項目を絞り込むことが可能です。それらのAPIでは必要なデータだけを取得するよう適切にパラメータ設定をおこなってください
定期的なデータを取得を希望する場合、『オプション機能 – Webフック通知』の利用もご検討ください
APIについて
API エンドポイント
- https://api.ai.voicex.jp
API一覧
APIについて、各メソッドの名称、HTTPメソッド(GET、POSTなど)、エンドポイントURL、説明は以下です。各APIの詳細については、API一覧以降に記載しています。
| メソッドの名称 | HTTPメソッド | エンドポイント | 説明 |
|---|---|---|---|
| 外部連携用トークン発行 | POST | /external/token/authentication | 外部連携用APIを使用するための認証をおこなう |
| テキスト化情報取得 | POST | /external/get-text-info | 簡易通話履歴ID(scUniqueid)を指定することで、テキスト化情報の単一取得をおこなう |
| テキスト解析結果取得 | POST | /external/get-text-analysis | 簡易通話履歴ID(scUniqueid)とテキスト解析プロンプトID(promptid)を指定することで、テキスト解析結果の単一取得をおこなう |
| 簡易通話履歴検索 | POST | /external/simple-call-history | 指定した検索条件に一致する簡易通話履歴のリスト取得をおこなう |
| 通話録音ファイル取得 | POST | /external/get-presigned-url | 簡易通話履歴ID(scUniqueid)と指定することで、それに紐づく通話録音ファイルのダウンロードURLの取得をおこなう |
API【外部連携用トークン発行】
API【外部連携用トークン発行】の詳細は以下です。
- エンドポイント:/external/token/authentication
- HTTPメソッド:POST
- 説明:外部連携用APIを使用するための認証をおこなう
外部連携用APIの認証に対して、CIDRフォーマットのIPアドレス制限を複数設定することが可能です。IPアドレス制限はホワイトリスト形式となります。
※このIPアドレス制限は画面ログインのものとは異なる設定です
(例)「192.168.0.1/32」「192.168.0.2/32」「192.168.0.3/32」の3つが登録されている場合、これらの IP アドレスのいずれかと合致すれば許可されます。「192.168.0.0/16」が登録されている場合、IP アドレスが2番目のオクテットまでと合致すれば許可されます。
IPアドレス制限を設定したい場合、「お問い合わせ」から弊社サポートにご依頼ください。
リクエスト概要
| リクエストボディー | 必須 | タイプ | 備考 |
|---|---|---|---|
| tenantCode | ○ | string | テナントID |
| loginId | ○ | string | 認証ID |
| password | ○ | string | パスワード |
正常終了時のレスポンス例
{
"code": 0,
"executionId": "${Lambda実行ID}",
"message": "認証成功",
"date": ${Unix Time},
"data": {
"name": "${ユーザー名称}",
"accessToken": "${アクセストークン}",
"refreshToken": "${リフレッシュトークン}",
"isAdmin": "${管理者権限か}",
"groups": [${所属するグループID}]
}
}
API【テキスト化情報取得】
API【テキスト化情報取得】の詳細は以下です。
- エンドポイント:/external/get-text-info
- HTTPメソッド:POST
- 説明:簡易通話履歴ID(scUniqueid)を指定することで、テキスト化情報の単一取得をおこなう
リクエスト概要
| リクエストヘッダー | 必須 | タイプ | 備考 |
|---|---|---|---|
| Authorization | ○ | string | “Bearer ${accessToken}”の形式で指定 API【外部連携用トークン発行】で取得したaccessTokenを使用する (例) Bearer sampleToken1234 |
| リクエストボディー | 必須 | タイプ | 備考 |
|---|---|---|---|
| format | ○ | number | 返戻するフォーマットを指定する 1: JSON 2: CSV |
| scUniqueid | ○ | string | 通話毎のユニークID |
| field | ○ | array:string | 返戻項目を指定する ※指定可能な返戻項目は以下参照。 |
[field]に指定可能な返戻項目
| transcript | 会話内容 |
| fileName | 音声録音ファイル |
| index | 話者を示す 1: 電話を掛けた人 2: 電話を受けた人 |
| start | 会話内容の喋り始めの時間 |
| end | 会話内容が喋り終わった時間 |
| startMs | 会話内容の喋り始めの時間(単位:ms) |
| endMs | 会話内容が喋り終わった時間(単位:ms) |
正常終了時のレスポンス例
<JSONフォーマットの場合>
{
"code": 0,
"executionId": "${Lambda実行ID}",
"message": "処理成功",
"date": ${Unix Time},
"data": {
"results": [
{
"transcript": "予約したいんですけど メニュー の確認ってできますか",
"fileName": "1692336939939.wav",
"index": 1,
"start": "00:00:00,000",
"end": "00:00:14,240",
"startMs": 0,
"endMs": 14240,
},
{
"transcript": "ヘッドスパとカットです 今週の土曜日の午後3時頃で可能",
"fileName": "1718078130129.wav",
"index": 1,
"start": "00:00:14,240",
"end": "00:00:24,000",
"startMs": 14240,
"endMs": 24000,
},
~~~~~ 省略 ~~~~~
]
}
]
<CSVフォーマットの場合>
"transcript","fileName","index","start","end","startMs","endMs"
"予約したいんですけど メニュー の確認ってできますか","1692336939939.wav",1,"00:00:00,000","00:00:14,240",0,14240
"ヘッドスパとカットです 今週の土曜日の午後3時頃で可能","1692336939939.wav",1,"00:00:14,240","00:00:24,000",14240,24000,
JSON/CSV フォーマットのキーに対する説明
| キー名 | 項目階層 | 説明 |
|---|---|---|
| results | 2 | VRS v2テキスト化結果 |
| transcript | 3 | 会話内容 |
| fileName | 3 | 音声録音ファイル |
| index | 3 | 話者を示す 1: 電話を掛けた人 2: 電話を受けた人 |
| start | 3 | 会話内容の喋り始めの時間 |
| end | 3 | 会話内容が喋り終わった時間 |
| startMs | 3 | 会話内容の喋り始めの時間(単位:ms) |
| endMs | 3 | 会話内容が喋り終わった時間(単位:ms) |
API【テキスト解析結果取得】
API【テキスト解析結果取得】の詳細は以下です。
- エンドポイント:/external/get-text-analysis
- HTTPメソッド:POST
- 説明:簡易通話履歴ID(scUniqueid)とテキスト解析プロンプトID(promptid)を指定することで、テキスト解析結果の単一取得をおこなう
リクエスト概要
| リクエストヘッダー | 必須 | タイプ | 備考 |
|---|---|---|---|
| Authorization | ○ | string | “Bearer ${accessToken}”の形式で指定 API【外部連携用トークン発行】で取得したaccessTokenを使用する (例) Bearer sampleToken1234 |
| リクエストボディー | 必須 | タイプ | 備考 |
|---|---|---|---|
| format | ○ | number | 返戻するフォーマットを指定する 1: JSON 2: CSV |
| scUniqueid | ○ | string | 通話毎のユニークID |
| promptid | ○ | string | 返戻対象とするテキスト解析プロンプトID [通話要約の場合] 98f827cafc [予約判定の場合] 800907caa0 |
正常終了時のレスポンス例
<JSONフォーマットの場合>
{
"code": 0,
"executionId": "${Lambda実行ID}",
"message": "処理成功",
"date": ${Unix Time},
"data": {
"会話タイトル": "予約の確認と希望日時の調整",
"お客様情報": {
"名前": "ニコライバーグマン",
"連絡先電話番号": "000-000-0000",
"連絡先メールアドレス": "不明"
},
"要約": "ニコライバーグマン氏がウェア本店に予約をしたいとの要件があり、ヘッドスパとカットのメニューの確認をしました。希望日時は土曜日の午後3時頃でしたが、既に予約が入っていたため、次の週の火曜日の午後3時頃を提案しました。佐藤さんが火曜日の午後3時に予約を受け付けることを了承し、連絡先電話番号を教えました。予約を受け付けた旨を伝え、当日は連絡をしてもらうようにお願いしました。"
}
}
<CSVフォーマットの場合>
"会話タイトル","お客様情報-名前","お客様情報-連絡先電話番号","お客様情報-連絡先メールアドレス","要約"
"予約の確認と希望日時の調整","ニコライバーグマン","000-000-0000","不明","ニコライバーグマン氏がウェア本店に予約をしたいとの要件があり、ヘッドスパとカットのメニューの確認をしました。希望日時は土曜日の午後3時頃でしたが、既に予約が入っていたため、次の週の火曜日の午後3時頃を提案しました。佐藤さんが火曜日の午後3時に予約を受け付けることを了承し、連絡先電話番号を教えました。予約を受け付けた旨を伝え、当日は連絡をしてもらうようにお願いしました。"
JSON/CSV フォーマットのキーに対する説明
| キー名 | 項目階層 | 説明 |
|---|---|---|
| 会話タイトル | 2 | 会話タイトル |
| お客様情報 | 2 | お客様の情報 |
| 名前 | 3 | お客様の名前 |
| 連絡先電話番号 | 3 | お客様の連絡先電話番号 |
| 連絡先メールアドレス | 3 | お客様の連絡先メールアドレス |
| 要約 | 2 | テキスト解析による通話要約 |
API【簡易通話履歴検索】
API【簡易通話履歴検索】の詳細は以下です。
- エンドポイント:/external/simple-call-history
- HTTPメソッド:POST
- 説明:指定した検索条件に一致する簡易通話履歴のリスト取得をおこなう
リクエスト概要
| リクエストヘッダー | 必須 | タイプ | 備考 |
|---|---|---|---|
| Authorization | ○ | string | “Bearer ${accessToken}”の形式で指定 API【外部連携用トークン発行】で取得したaccessTokenを使用する (例) Bearer sampleToken1234 |
| リクエストボディー | 必須 | タイプ | 例 | 備考 | ||
|---|---|---|---|---|---|---|
| filter | ○ | object | 検索条件 | |||
| sc_start_from | ○ | string | 2024-11-01 15:11:07 | 期間(開始日時) ※開始日時~終了日時の期間は2ヵ月以内 | ||
| sc_start_to | ○ | string | 2024-11-30 23:59:59 | 期間(終了日時) | ||
| sc_direction | array:string | [‘IN’, ‘OUT’, ‘LOCAL’] | 通話種別 ※配列で指定した種別をor検索 外線着信:IN 外線発信:OUT 内線:LOCAL | |||
| sc_calleridnum | string | 01234567890 | 発信者番号 | |||
| sc_calleridname | string | なまえ | 発信者名 | |||
| sc_dialednum | string | 01234567890 | 宛先番号 | |||
| sc_whoanswered | string | 301 | 受信者番号 | |||
| recordingTime | object | { min: 10, max: 30 } | 録音時間 ※最大値は最小値未満にはならない | |||
| min | number | 録音時間(最小) | ||||
| max | number | 録音時間(最大) | ||||
| sc_duration | object | { min: 10, max: 30 } | 処理時間 ※最大値は最小値未満にはならない | |||
| min | number | 処理時間(最小) | ||||
| max | number | 処理時間(最大) | ||||
| sc_uniqueid | string | pbx01-1705000000.00000 | 通話毎のユニークID | |||
| search_word | string | こんにちは | 検索キーワード | |||
| field | array:string | [“sc_start”, “recordingTime”] | 返戻項目を指定する ※指定可能な返戻項目は下記参照。 | |||
| sortColumn | string | recordingTime | ソート対象となるカラム | |||
| sortOrder | string | asc | 昇順(asc)/降順(desc) | |||
[field] に指定可能な返戻項目
| sc_start | 着信日時 |
| sc_direction | 発信か着信か内線か |
| sc_calleridnum | 発信者電話番号 |
| sc_calleridname | 発信者名 |
| sc_dialednum | 宛先電話番号 |
| sc_duration | 処理時間 |
| sc_uniqueid | 通話毎のユニークID |
| sc_whoanswered | 応答者電話番号 |
| recordingTime | 通話時間 |
| _registered | 登録日時 |
| _updated | 更新日時 |
| vrsv2 | vrsv2を利用した内容 |
| transcript | 会話内容要約 |
| transcriptiondetails | 会話内容 |
| transcript | 会話内容 |
| index | 話者を示す |
| start | 会話内容の喋り始めの時間 |
| end | 会話内容が喋り終わった時間 |
| ${プロンプトID} | テキスト解析結果 |
正常終了時のレスポンス例
{
"code": 0,
"executionId": "${Lambda実行ID}",
"message": "処理成功",
"date": ${Unix Time},
"data": {
"hits": [
{
"sc_te_id": "1",
"tenantcode": "voixai",
"sc_start": "${yyyy-mm-dd hh:ii:ss}",
"sc_direction": "LOCAL",
"sc_calleridnum": "田中 太郎",
"sc_dialednum": "09012345678",
"sc_disposition": "ANSWERED",
"sc_duration": 100,
"sc_uniqueid": "pbx01-11111",
"sc_whoanswered": "09011111111",
"recordingTime": 80.64,
"vx_stereo_s3key": "voixai/2023/10/19/17/pbx01-1697702674.23571.wav",
"registered": "${yyyy-mm-dd hh:ii:ss}",
"updated": "${yyyy-mm-dd hh:ii:ss}"
"vrsv2": {
"transcript": "はい、レストランです。XXXXXXXXXXXXXXXXXXXXX",
"transcriptiondetails": [
{
"transcript": "はい、レストランです。",
"index": 1,
"start": "00:00:05,580",
"end": "00:00:07,580",
"startMs": 5580,
"endMs": 7580,
"alternative": {
"transcript": "はい、レストランです。",
"timestamps": "[\"はい、レストランです。\",5.58,7.58]"
}
}
],
"54877a02a3": {
"title": "予約判定",
"detail": "{\"分類結果\":\"OK\",\"理由\":\"予約が成功したため\"}",
},
"3339d84ee0": {
"title": "通話要約",
"detail": "{\n \"会話タイトル\": \"レストラン予約\",\n \"お客様情報\": {\n \"名前\": \"山田\",\n \"連絡先電話番号\": \"090-3233-3233\",\n \"連絡先メールアドレス\": \"不明\"\n },\n \"要約\": \"はい、レストランでの予約を希望します。日時は10月21日の土曜日の夜7時からで、4名での予約です。お名前は山田さんで、電話番号は090-3233-3233です。お待ちしています。\"\n}",
}
},
}
~~~~~ 省略 ~~~~~
],
"total": 10
}
}
API【通話録音ファイル取得】
API【通話録音ファイル取得】の詳細は以下です。
- エンドポイント:/external/get-presigned-url
- HTTPメソッド:POST
- 説明:簡易通話履歴ID(scUniqueid)と指定することで、それに紐づく通話録音ファイルのダウンロードURLの取得をおこなう
リクエスト概要
| リクエストヘッダー | 必須 | タイプ | 備考 |
|---|---|---|---|
| Authorization | ○ | string | “Bearer ${accessToken}”の形式で指定 API【外部連携用トークン発行】で取得したaccessTokenを使用する (例) Bearer sampleToken1234 |
| リクエストボディー | 必須 | タイプ | 備考 |
|---|---|---|---|
| scUniqueid | ○ | string | 通話毎のユニークID |
正常終了時のレスポンス例
{
code: 0,
executionId: '239ca13f-6f8b-4145-bc1a-a522a4ce4e69',
message: '処理成功',
date: 1733470721046,
data: {
getPresignedUrl: 'https://...'
}
}
