会話
会話メンバー一覧
group タイプの会話メンバーを一覧します。conversation_id はクエリで渡し、cursor / limit でページングします。各項目は peer_id / display_name / avatar_url を返し、role は member / admin / superadmin のいずれかです。superadmin はグループの所有者または作成者です。1 対 1 など未対応の会話タイプでは 400 を返します。
https://api.unifyport.ai/v1/accounts/{account_id}/conversations/members対応チャネル
呼び出す前に
対象ワークスペースの X-Api-Key をサーバー側で使用します。実行前にすべてのプレースホルダーを置き換えます。
パラメーターの取得元
- account_id
- アカウント作成・取得応答の data.id を使います。識別子は X-Api-Key のワークスペースに属します。 アカウント取得
- conversation_id
- 参照する会話 — List conversations が conversation_id として返す値。
リクエストパラメータ
ヘッダー
X-Api-Keyワークスペース API キー。このヘッダーからワークスペースを特定します。
パスパラメータ
account_idconversations ルートで使用される識別子。
クエリパラメータ
conversation_id参照する会話 — List conversations が conversation_id として返す値。
type参照を一意に特定するための会話タイプ(user、group、または channel)。
enum: user, group, channel
cursorプロバイダの不透明なカーソル。前の応答の next_cursor を変更せずに渡します。最初のページでは省略または空にします。偽造、期限切れ、別クエリで再利用したカーソルは、無視、最初のページへのリセット、またはプロバイダエラーとなる場合があります。一律の 400 応答を前提にしないでください。
limitページサイズは 1〜100。既定値は各エンドポイント説明を参照してください。
minimum: 1 · maximum: 100
リクエストボディ
このエンドポイントは JSON ボディを必要としません。
結果の確認
この API に記載された応答項目と HTTP 状態で結果を判断し、関連操作から次の手順を選びます。
レスポンス 200 OK
{
"request_id": "<REQUEST_ID>",
"data": {
"items": [
{
"peer_id": "user_example",
"display_name": "",
"avatar_url": "",
"role": "superadmin"
}
],
"next_cursor": "",
"has_more": false
}
}
レスポンスボディ
peer_idチャネル側の安定したメンバー識別子。不透明な文字列として保存し、そのまま使用します。
username利用可能な場合のメンバーのプロバイダ側ユーザー名。
display_nameメンバーの表示名。ない場合は空文字列。
avatar_urlメンバーのアバター URL。ない場合は空文字列。
role正規化ロール。所有者/作成者は superadmin、管理者は admin、一般または不明は member。
enum: member, admin, superadmin
joined_atプロバイダが報告したメンバーの参加時刻。
format: date-time
extra電話番号などのプロバイダ固有メンバーフィールド。
next_cursor次ページ用の不透明なカーソル。cursor として渡し直します。空文字列の場合は次のページがないことを意味します。
has_moreこのページの先にさらに結果がある場合は true。
レスポンス
200200 OK
リクエスト成功。レスポンスボディの例を参照してください。
400Bad Request
リクエストボディ、パス、またはパラメータが不正です。
401Unauthorized
X-Api-Key ヘッダが欠落しているか無効です。
403Forbidden
リクエストは識別されましたが、この操作は許可されていません。
404Not Found
要求されたリソースが見つかりません。error.code と現在の操作を合わせて確認してください。
409Conflict
要求された操作が、既存のプロバイダアカウントまたはリソースと競合しています。
500Internal Server Error
サービスで予期しないエラーが発生しました。
501Not Implemented
選択したプロバイダはこの操作を実装していません。
502Bad Gateway
プロバイダアダプタまたは上流サービスが操作を完了できませんでした。
失敗時の対応
HTTP 状態と error.code/numeric_code を確認し、request_id を保存します。原因に応じてパラメーター修正・認証・状態確認を行い、送信や書き込みの再試行前に前回の結果を確認します。 エラーリファレンス
HTTP ステータス、error.code、error.numeric_code を現在の操作と合わせて確認します。数値コードは文字列です。request_id は調査用で、冪等性キーやタスク ID ではありません。
- invalid_conversation_type · 37000 · 400
type は user、group、channel のいずれかです。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 37000
{ "request_id": "req_example", "error": { "code": "invalid_conversation_type", "numeric_code": "37000", "message": "Field 'type' must be one of: user, group, channel" } }- invalid_request · 10000 · 400
JSON 本文と必須項目を確認してください。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 10000
{ "request_id": "req_example", "error": { "code": "invalid_request", "numeric_code": "10000", "message": "Invalid request parameters" } }- invalid_target_workspace · 11003 · 400
上書き対象のワークスペースが空、または形式が無効です。上書き用ヘッダーを削除し、対象ワークスペースの API Key を使用してください。
発生条件: ワークスペースを上書きする X-Workspace-Id リクエストヘッダーを送った場合に適用されます。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 11003
{ "request_id": "req_example", "error": { "code": "invalid_target_workspace", "numeric_code": "11003", "message": "Invalid target workspace" } }- provider_invalid_request · 30001 · 400
チャネル固有の項目と形式を確認してください。
対処と再試行: 操作とチャネルの条件に従ってパラメーターを修正してから再実行します。同じ無効なリクエストを繰り返しても解決しません。
JSON の例です。message は実際の原因によって変わります · 400 · 30001
{ "request_id": "req_example", "error": { "code": "provider_invalid_request", "numeric_code": "30001", "message": "Provider rejected the request" } }- unsupported_conversation_type · 37001 · 400
チャネルが未対応です。対応表から利用可能な操作を選んでください。
対処と再試行: ドキュメントで対応しているチャネルと操作を選びます。同じリクエストを繰り返しても機能やベータ権限は追加されません。
JSON の例です。message は実際の原因によって変わります · 400 · 37001
{ "request_id": "req_example", "error": { "code": "unsupported_conversation_type", "numeric_code": "37001", "message": "Operation not supported for this conversation type" } }- invalid_api_key · 11001 · 401
API Key が正しく有効か確認してください。
対処と再試行: request_id と構造化されたコードを保存し、現在の操作を調査してから次の対応を決めます。
JSON の例です。message は実際の原因によって変わります · 401 · 11001
{ "request_id": "req_example", "error": { "code": "invalid_api_key", "numeric_code": "11001", "message": "Invalid API key" } }- missing_api_key · 11000 · 401
X-Api-Key ヘッダーを追加してください。
対処と再試行: request_id と構造化されたコードを保存し、現在の操作を調査してから次の対応を決めます。
例 · 401 · 11000
{ "request_id": "req_xxx", "error": { "code": "missing_api_key", "numeric_code": "11000", "message": "Missing X-Api-Key header" } }- workspace_override_forbidden · 11002 · 403
この API Key に許可されていないワークスペースの上書きを要求しています。上書き用ヘッダーを削除し、対象ワークスペースの API Key を使用してください。
発生条件: ワークスペースを上書きする X-Workspace-Id リクエストヘッダーを送った場合に適用されます。
対処と再試行: request_id と構造化されたコードを保存し、現在の操作を調査してから次の対応を決めます。
JSON の例です。message は実際の原因によって変わります · 403 · 11002
{ "request_id": "req_example", "error": { "code": "workspace_override_forbidden", "numeric_code": "11002", "message": "Workspace override is not allowed" } }- conversation_not_found · 37002 · 404
チャネルで会話が見つかりません。識別子とアカウントを確認してください。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 404 · 37002
{ "request_id": "req_example", "error": { "code": "conversation_not_found", "numeric_code": "37002", "message": "Conversation not found" } }- target_workspace_not_found · 11004 · 404
上書きで指定したワークスペースが存在しないか利用できません。所有範囲を確認し、上書き用ヘッダーを削除して対象ワークスペースの API Key を使用します。再試行で権限は増えません。
発生条件: ワークスペースを上書きする X-Workspace-Id リクエストヘッダーを送った場合に適用されます。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 404 · 11004
{ "request_id": "req_example", "error": { "code": "target_workspace_not_found", "numeric_code": "11004", "message": "Target workspace not found" } }- account_binding_not_found · 30006 · 409
有効なチャネル接続への紐付けがありません。アカウントの状態を確認してください。
対処と再試行: 認証と実行状態を照会し、目的の状態とチャネルの対応範囲に応じて更新・起動・再接続を選びます。接続の問題だけではログアウトしたとは判断できません。接続が必要な業務操作の前に running を確認してください。
JSON の例です。message は実際の原因によって変わります · 409 · 30006
{ "request_id": "req_example", "error": { "code": "account_binding_not_found", "numeric_code": "30006", "message": "Account is not bound to an available server" } }- egress_configuration_pending · 20032 · 409
プラットフォームの既定のネットワーク設定を確認または読み込みできません。ログアウトを意味するものではありません。
発生条件: この操作はプラットフォームのネットワーク容量、またはアカウントに固定された既定のネットワーク設定を使用します。
対処と再試行: request_id を保存し、再度書き込む前にアカウントや作成結果を確認してください。容量や設定の復旧を待つか、サポートに連絡してください。アカウント作成、ネットワーク変更、再起動を自動で繰り返さないでください。
JSON の例です。message は実際の原因によって変わります · 409 · 20032
{ "request_id": "req_example", "error": { "code": "egress_configuration_pending", "numeric_code": "20032", "message": "Account network configuration is pending verification" } }- provider_not_ready · 30009 · 409
接続が未準備です。認可と runtime_status を確認してから再試行を判断してください。
対処と再試行: 認証と実行状態を照会し、目的の状態とチャネルの対応範囲に応じて更新・起動・再接続を選びます。接続の問題だけではログアウトしたとは判断できません。接続が必要な業務操作の前に running を確認してください。
JSON の例です。message は実際の原因によって変わります · 409 · 30009
{ "request_id": "req_example", "error": { "code": "provider_not_ready", "numeric_code": "30009", "message": "Provider client is not ready" } }- provider_not_ready · 30014 · 409
このアカウントに必要なチャネルのインスタンスがありません。実行環境の可用性の問題であり、認証の期限切れを示すものではありません。
対処と再試行: 認証と実行状態を照会し、目的の状態とチャネルの対応範囲に応じて更新・起動・再接続を選びます。接続の問題だけではログアウトしたとは判断できません。接続が必要な業務操作の前に running を確認してください。
対象チャネル: WhatsApp
JSON の例です。message は実際の原因によって変わります · 409 · 30014
{ "request_id": "req_example", "error": { "code": "provider_not_ready", "numeric_code": "30014", "message": "Provider instance is missing" } }- provider_not_ready · 30015 · 409
チャネルの実行プロセスは停止しています。起動前に意図した停止かを確認してください。実行の停止自体はログアウトを意味しません。
対処と再試行: 認証と実行状態を照会し、目的の状態とチャネルの対応範囲に応じて更新・起動・再接続を選びます。接続の問題だけではログアウトしたとは判断できません。接続が必要な業務操作の前に running を確認してください。
対象チャネル: WhatsApp
JSON の例です。message は実際の原因によって変わります · 409 · 30015
{ "request_id": "req_example", "error": { "code": "provider_not_ready", "numeric_code": "30015", "message": "Provider runtime is stopped" } }- list_conversation_members_failed · 20020 · 500
account_id を確認し、アカウントが属するワークスペースの X-Api-Key を使います。このワークスペースにないアカウントには現在のキーでアクセスできません。
発生条件: アカウントが見つからない場合、従来の HTTP ステータスと操作の code を維持し、numeric_code でアカウントの不存在を示します。
対処と再試行: 対象の識別子、所有範囲、現在のワークスペースを確認します。不存在やアクセス不可が確認された対象を、一時的なサービス障害として自動再試行しないでください。
JSON の例です。message は実際の原因によって変わります · 500 · 20020
{ "request_id": "req_example", "error": { "code": "list_conversation_members_failed", "numeric_code": "20020", "message": "Account not found" } }- list_conversation_members_failed · 30010 · 500
チャネルが操作を完了できませんでした。message に「Provider operation failed:」以降の元の原因が含まれる場合があります。原因の文面は可変で、安定したプログラムのインターフェースではありません。
発生条件: チャネルがより具体的な失敗分類を返さない場合、現在の操作のエラーを維持します。
対処と再試行: request_id を保存し、識別子とアカウントのアクセス範囲を確認します。原因を確認してから照会を再試行してください。照会失敗は空の結果やリソースの不存在を意味しません。
対象チャネル: WhatsApp
JSON の例です。message は実際の原因によって変わります · 500 · 30010
{ "request_id": "req_example", "error": { "code": "list_conversation_members_failed", "numeric_code": "30010", "message": "Provider operation failed" } }- list_conversation_members_failed · 37005 · 500
会話メンバー一覧:サービスが有効な照会結果を返せませんでした。
対処と再試行: request_id を保存し、識別子とアカウントのアクセス範囲を確認します。原因を確認してから照会を再試行してください。照会失敗は空の結果やリソースの不存在を意味しません。
JSON の例です。message は実際の原因によって変わります · 500 · 37005
{ "request_id": "req_example", "error": { "code": "list_conversation_members_failed", "numeric_code": "37005", "message": "Failed to list conversation members" } }- unsupported_by_provider · 30003 · 501
チャネルが未対応です。対応表から利用可能な操作を選んでください。
対処と再試行: ドキュメントで対応しているチャネルと操作を選びます。同じリクエストを繰り返しても機能やベータ権限は追加されません。
例 · 501 · 30003
{ "request_id": "req_xxx", "error": { "code": "unsupported_by_provider", "numeric_code": "30003", "message": "Operation not supported by this provider" } }- provider_adapter_not_found · 30004 · 502
チャネルサービスを利用できません。状態を確認するか後で再試行してください。書き込みは前回の結果を先に確認してください。
対処と再試行: request_id を保存し、識別子とアカウントのアクセス範囲を確認します。原因を確認してから照会を再試行してください。照会失敗は空の結果やリソースの不存在を意味しません。
JSON の例です。message は実際の原因によって変わります · 502 · 30004
{ "request_id": "req_example", "error": { "code": "provider_adapter_not_found", "numeric_code": "30004", "message": "Provider adapter unavailable" } }- provider_unavailable · 30002 · 502
チャネルサービスを利用できません。状態を確認するか後で再試行してください。書き込みは前回の結果を先に確認してください。
対処と再試行: request_id を保存し、識別子とアカウントのアクセス範囲を確認します。原因を確認してから照会を再試行してください。照会失敗は空の結果やリソースの不存在を意味しません。
例 · 502 · 30002
{ "request_id": "req_example_provider_unavailable", "error": { "code": "provider_unavailable", "numeric_code": "30002", "message": "Provider service unavailable" } }- provider_unavailable · 30010 · 502
チャネルが操作を完了できませんでした。message に「Provider operation failed:」以降の元の原因が含まれる場合があります。原因の文面は可変で、安定したプログラムのインターフェースではありません。
対処と再試行: request_id を保存し、識別子とアカウントのアクセス範囲を確認します。原因を確認してから照会を再試行してください。照会失敗は空の結果やリソースの不存在を意味しません。
対象チャネル: WhatsApp
例 · 502 · 30010
{ "request_id": "req_example_operation_failed", "error": { "code": "provider_unavailable", "numeric_code": "30010", "message": "Provider operation failed: Example operation could not be completed" } }- provider_unavailable · 30021 · 502
このリクエスト時点で、アカウントはメッセージングプラットフォームに接続されていませんでした。WhatsApp の連絡先追加では 500 / create_contact_failed / 30021 が返ることがあります。ログアウトや、現在も実行状態が disconnected であることを意味しません。現在の状態を照会してから復旧方法を選んでください。
対処と再試行: 接続が必要な業務操作を停止します。まず POST /v1/accounts/{account_id}/runtime/refresh を呼び、最新状態に従って復旧し、runtime_status=running を確認してから業務 API を実行します。再送前に前回の書き込み結果を確認してください。
対象チャネル: WhatsApp
例 · 502 · 30021
{ "request_id": "req_example_connection_disconnected", "error": { "code": "provider_unavailable", "numeric_code": "30021", "message": "example operation: websocket not connected" } }