API リファレンス

アカウント

アカウント一覧

現在の Workspace のプロバイダアカウントを一覧表示します。アカウントの認証状態は Authentication エンドポイントで取得します。

GEThttps://api.unifyport.ai/v1/accounts

対応チャネル

all

呼び出す前に

対象ワークスペースの X-Api-Key をサーバー側で使用します。実行前にすべてのプレースホルダーを置き換えます。

リクエストパラメータ

ヘッダー

X-Api-Key
string必須

ワークスペース API キー。このヘッダーからワークスペースを特定します。

クエリパラメータ

limit
integer

1 ページあたりの最大アカウント数。1〜100 で、省略時は 20 です。無効な値や limit の重複指定は 400 invalid_request(numeric_code=10000)を返します。次ページでは値を変更できます。

minimum: 1 · maximum: 100

cursor
string

アカウント一覧の不透明なカーソル。省略または空文字列で最初のページを取得し、次ページでは前の応答の data.next_cursor をそのまま渡します。発行時の workspace でのみ有効です。無効な cursor、重複指定、別の workspace での使用は 400 invalid_request(numeric_code=10000)を返します。

リクエストボディ

このエンドポイントは JSON ボディを必要としません。

結果の確認

data.items からアカウントを読み取ります。data.has_more が true なら、data.next_cursor を変更せず cursor として次のページを取得します。認証状態は認証 API で別途確認します。

レスポンス 200 OK

{
  "request_id": "<REQUEST_ID>",
  "data": {
    "items": [
      {
        "id": "acc_example",
        "name": "Telegram Production",
        "provider": "telegram",
        "region": "global",
        "status": "active",
        "runtime_status": "running",
        "auth_mode": "qrcode",
        "capabilities": [
          "send_message",
          "receive_message"
        ],
        "metadata": {
          "env": "production"
        },
        "provider_account_ref": "provider-side-identifier",
        "provider_profile": {
          "id": "778899",
          "phone": "8600000000000",
          "username": "production_bot",
          "display_name": "Production Bot",
          "first_name": "Production",
          "last_name": "Bot",
          "avatar_url": "https://example.com/avatar.jpg",
          "bio": "Customer support"
        }
      }
    ],
    "has_more": false
  }
}

レスポンスボディ

provider_profile
object

display_name などプロバイダが報告するプロフィール。アカウントが認証される前は省略されます。

id
string

チャネル側アカウント識別子。WhatsApp は LID を返し、プロフィール同期前は省略されることがあります。

device_id
integer

現在のセッションを識別できる場合に、WhatsApp アカウント詳細で任意に返されるログイン端末番号。再認証で変わる場合があり、恒久的な端末識別子ではありません。

minimum: 0 · maximum: 65535

phone
string

空白、ハイフン、先頭の + を除去した正規化電話番号。

username
string

プロバイダが報告した username(存在する場合)。

display_name
string

アカウントの表示名。WhatsApp では BusinessName を優先し、なければ PushName にフォールバックして生成されます。

push_name
string

WhatsApp アカウントで現在設定されている PushName。他のプロバイダではこのフィールドの意味を定義しません。

business_name
string

WhatsApp BusinessName。プロバイダが返さない場合は省略されます。

first_name
string

プロバイダが報告した名(存在する場合)。

last_name
string

プロバイダが報告した姓(存在する場合)。

avatar_url
string

プロバイダが報告したアカウントのアバター URL。

bio
string

プロバイダが報告した自己紹介またはステータス文。

platform
string

WhatsApp がペアリング時に報告するログインプラットフォーム識別子。不透明な文字列として扱い、未知の値も受け入れてください。他のプロバイダではこのフィールドの意味を定義しません。device_platform とは別のフィールドです。

billing
object

残高アカウントだけの支払済み期間。残高から購入を推測しません。

period_start_at
string

サーバーの支払済み期間開始。

format: date-time

period_end_at
string

サーバーの支払済み期間終了。

format: date-time

amount_minor
integer

サーバーの不変金額、USD セント単位。正確な整数で扱います。

minimum: 1 · format: int64

currency
string

USD のみ。

operation_id
string

billing.operation_id または削除応答の公開 ID。同じワークスペースで原文のまま使います。

state
string

課金・操作状態。認証、接続、返金入金を証明しません。

enum: ACTIVE, DELETING, DELETED, COMPENSATED, REVIEW

id
string

一意のアカウント識別子(acc_...)。アカウントスコープのルートで使用します。

name
string

人が読みやすいアカウント名。

provider
string

チャネルの識別子です。後続の呼び出しでは返された値をそのまま使ってください。この API の値は以下の enum を参照してください。

enum: telegram, whatsapp, line, twitter, facebook, zalo, tiktok, whatsapp-protocol

region
string

アカウントで選択されたデフォルトのネットワーク出口リージョン。

status
string

アカウントのライフサイクル状態(例: active)。

runtime_status
string

正規化されたランタイム状態。unknown、starting、running、stopping、stopped、reconnecting、disconnected、error のいずれか。

enum: unknown, starting, running, stopping, stopped, reconnecting, disconnected, error

auth_mode
string

アカウントが使用する認証フロー: code、qrcode、または session。TikTok は qrcode と session をサポートしますが、既存アカウントでの両モード間の切り替えはサポートしません。

capabilities[]
string[]

send_message や receive_message など、アカウントで有効化されている機能。

metadata
object

アカウントに保存された自分の環境ラベル。

provider_account_ref
string

自社システムとアカウントを紐付けるために付与できる、プロバイダ側の識別子。

proxy
object

顧客が明示的に設定したプロキシ。プラットフォームのデフォルト出口の認証情報は返されません。

has_more
boolean

アカウント一覧に次のページがあるかどうか。

next_cursor
string

アカウント一覧の次ページ用の不透明なカーソル。has_more=true の場合のみ返します。次ページでは cursor としてそのまま渡してください。最終ページでは省略されます。

レスポンス

200

200 OK

リクエスト成功。レスポンスボディの例を参照してください。

400

Bad Request

リクエストボディ、パス、またはパラメータが不正です。

401

Unauthorized

X-Api-Key ヘッダが欠落しているか無効です。

403

Forbidden

リクエストは識別されましたが、この操作は許可されていません。

404

Not Found

要求されたリソースが見つかりません。error.code と現在の操作を合わせて確認してください。

500

Internal Server Error

サービスで予期しないエラーが発生しました。

失敗時の対応

HTTP 状態と error.code/numeric_code を確認し、request_id を保存します。原因に応じてパラメーター修正・認証・状態確認を行い、送信や書き込みの再試行前に前回の結果を確認します。 エラーリファレンス

HTTP ステータス、error.code、error.numeric_code を現在の操作と合わせて確認します。数値コードは文字列です。request_id は調査用で、冪等性キーやタスク ID ではありません。

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"
  }
}
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"
  }
}
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"
  }
}
list_accounts_failed · 20000 · 500

アカウント一覧:サービスが有効な照会結果を返せませんでした。

対処と再試行: request_id を保存し、識別子とアカウントのアクセス範囲を確認します。原因を確認してから照会を再試行してください。照会失敗は空の結果やリソースの不存在を意味しません。

JSON の例です。message は実際の原因によって変わります · 500 · 20000
{
  "request_id": "req_example",
  "error": {
    "code": "list_accounts_failed",
    "numeric_code": "20000",
    "message": "Failed to list accounts"
  }
}