APIリファレンス

アカウント

アカウントとは、キーが属するXアカウントのことです。キーの確認、設定の変更、Xの受信トレイの同期のやり直し、GemleadへのX Chatのパスコードの登録に使います。オーナーのタイムゾーン、言語、名前は、オーナーのすべてのXアカウントで共通です。

アカウントオブジェクト

キーが属するXアカウント。キーは1つのXアカウントでのみ使え、複数のXアカウントを持つオーナーはそれぞれにキーを用意します。

属性

  • objectstring
    常にaccountです。
  • idstring
    アカウントの一意の識別子。
  • usernamestring
    Xのユーザー名。@は含みません。
  • namestring
    Xでの表示名。
  • profile_image_urlstringまたはnull
    プロフィール画像のURL。
  • planstring
    オーナーのプラン。
    businessenterprise
アカウントオブジェクト
{
  "object": "account",
  "id": "a9PzK2vRtM",
  "username": "acme",
  "name": "Acme",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
  "plan": "business"
}

アカウントを取得

GET/v1/accountreadスコープMCPget_account

キーが属するXアカウントを返します。キーの動作確認として、最初に呼び出すのに適しています。

戻り値

アカウントオブジェクト。

エラー

  • キーが正しくありません。
  • アカウントのオーナーがFreeプランかStarterプランを利用しています。
GET/v1/account
curl https://gemlead.ai/api/v1/account \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "account",
  "id": "a9PzK2vRtM",
  "username": "acme",
  "name": "Acme",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
  "plan": "business"
}

Xプロフィールを再読み込み

POST/v1/account/refresh_profilewriteスコープMCPupdate_account_settings

アカウントのXプロフィールを読み直し、新しい名前や写真を反映します。

戻り値

アカウントオブジェクト。

エラー

  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
  • XまたはGemleadのサービスが応答しませんでした。何も変更されていないので、1分後にもう一度お試しください。
POST/v1/account/refresh_profile
curl -X POST \
  https://gemlead.ai/api/v1/account/refresh_profile \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "account",
  "id": "a9PzK2vRtM",
  "username": "acme",
  "name": "Acme",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1180044592/acme_400x400.jpg",
  "plan": "business"
}

アカウント設定オブジェクト

Xの受信トレイの同期方法、DMが一時停止中かどうか、オーナーのプロフィール。オーナーのタイムゾーン、言語、名前は、オーナーのすべてのXアカウントで共通です。

属性

  • objectstring
    常にaccount_settingsです。
  • account_idstring
    アカウントのID。
  • syncobject
    Xの受信トレイからGemleadへの同期。
  • dms_paused_untilstringまたはnull
    XがアカウントのDMを制限している間、DMが再開される日時。ISO 8601形式です。
  • ownerobject
    アカウントのオーナー。
アカウント設定オブジェクト
{
  "object": "account_settings",
  "account_id": "a9PzK2vRtM",
  "sync": {
    "all_conversations": true,
    "status": "done",
    "conversations": 1342
  },
  "dms_paused_until": null,
  "owner": {
    "first_name": "Alex",
    "last_name": "Martin",
    "timezone": "Europe/Paris",
    "language": "en"
  }
}

アカウント設定を取得

GET/v1/account/settingsreadスコープMCPget_account_settings

受信トレイの同期、DMの一時停止、オーナーのプロフィールを返します。

戻り値

アカウント設定オブジェクト。

GET/v1/account/settings
curl https://gemlead.ai/api/v1/account/settings \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "account_settings",
  "account_id": "a9PzK2vRtM",
  "sync": {
    "all_conversations": true,
    "status": "done",
    "conversations": 1342
  },
  "dms_paused_until": null,
  "owner": {
    "first_name": "Alex",
    "last_name": "Martin",
    "timezone": "Europe/Paris",
    "language": "en"
  }
}

アカウント設定を更新

PATCH/v1/account/settingswriteスコープMCPupdate_account_settings

送信した設定だけを変更し、ほかの設定はそのまま残します。

ボディパラメーター

  • sync_all_conversationsboolean
    trueにするとXの受信トレイのすべての会話を同期し、すぐに受信トレイ全体を読み直します。falseにするとリードとの会話のみを残します。
  • timezonestring
    Europe/Parisのような、オーナーのIANAタイムゾーン。グラフと日別の集計はこのタイムゾーンに従います。
  • languagestring
    オーナーのアプリの言語。
    enfresitderuptnlja
  • first_namestring
    オーナーの名。60文字までです。
  • last_namestring
    オーナーの姓。60文字までです。

戻り値

更新されたアカウント設定オブジェクト。

エラー

  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
  • ボディに、このエンドポイントが受け付けないフィールドがあります。
  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
PATCH/v1/account/settings
curl -X PATCH https://gemlead.ai/api/v1/account/settings \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "timezone": "Europe/Paris"
  }'
レスポンス200
{
  "object": "account_settings",
  "account_id": "a9PzK2vRtM",
  "sync": {
    "all_conversations": true,
    "status": "done",
    "conversations": 1342
  },
  "dms_paused_until": null,
  "owner": {
    "first_name": "Alex",
    "last_name": "Martin",
    "timezone": "Europe/Paris",
    "language": "en"
  }
}

受信トレイを再同期

POST/v1/account/sync/restartwriteスコープMCPupdate_account_settings

Gemleadが取りこぼした会話を取り戻すため、Xの受信トレイを最初から読み直します。

戻り値

アカウント設定オブジェクト。

エラー

  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
POST/v1/account/sync/restart
curl -X POST https://gemlead.ai/api/v1/account/sync/restart \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "account_settings",
  "account_id": "a9PzK2vRtM",
  "sync": {
    "all_conversations": true,
    "status": "syncing",
    "conversations": 1342
  },
  "dms_paused_until": null,
  "owner": {
    "first_name": "Alex",
    "last_name": "Martin",
    "timezone": "Europe/Paris",
    "language": "en"
  }
}

受信トレイの同期を一時停止

POST/v1/account/sync/pausewriteスコープMCPupdate_account_settings

Xの受信トレイの同期を一時停止します。

戻り値

アカウント設定オブジェクト。

エラー

  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
POST/v1/account/sync/pause
curl -X POST https://gemlead.ai/api/v1/account/sync/pause \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "account_settings",
  "account_id": "a9PzK2vRtM",
  "sync": {
    "all_conversations": true,
    "status": "paused",
    "conversations": 1342
  },
  "dms_paused_until": null,
  "owner": {
    "first_name": "Alex",
    "last_name": "Martin",
    "timezone": "Europe/Paris",
    "language": "en"
  }
}

受信トレイの同期を再開

POST/v1/account/sync/resumewriteスコープMCPupdate_account_settings

一時停止中のXの受信トレイの同期を再開します。

戻り値

アカウント設定オブジェクト。

エラー

  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
POST/v1/account/sync/resume
curl -X POST https://gemlead.ai/api/v1/account/sync/resume \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "account_settings",
  "account_id": "a9PzK2vRtM",
  "sync": {
    "all_conversations": true,
    "status": "syncing",
    "conversations": 1342
  },
  "dms_paused_until": null,
  "owner": {
    "first_name": "Alex",
    "last_name": "Martin",
    "timezone": "Europe/Paris",
    "language": "en"
  }
}

X Chatオブジェクト

X ChatはXの暗号化された受信トレイです。アカウントの4桁のX Chatパスコードを受け取ると、Gemleadはそのメッセージを読めるようになります。X Chatの接続はアプリで行います。

属性

  • objectstring
    常にx_chatです。
  • connectedboolean
    アプリでアカウントがX Chatに接続されている場合はtrue。
  • passcode_setboolean
    GemleadがX Chatのパスコードを保持している場合はtrue。パスコード自体が返ることはありません。
  • unlockobjectまたはnull
    パスコード登録後のX Chat履歴の復号。実行されていない場合はnullです。
X Chatオブジェクト
{
  "object": "x_chat",
  "connected": true,
  "passcode_set": true,
  "unlock": {
    "running": false,
    "total": 214,
    "done": 214,
    "finished_at": "2026-11-06T07:58:30.000Z"
  }
}

X Chatの状態を取得

GET/v1/account/x_chatreadスコープMCPget_account_settings

アカウントがX Chatに接続されているか、Gemleadがパスコードを保持しているか、履歴の復号がどこまで進んだかを返します。

戻り値

X Chatオブジェクト。

GET/v1/account/x_chat
curl https://gemlead.ai/api/v1/account/x_chat \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "x_chat",
  "connected": true,
  "passcode_set": true,
  "unlock": {
    "running": false,
    "total": 214,
    "done": 214,
    "finished_at": "2026-11-06T07:58:30.000Z"
  }
}

パスコードの結果

X Chatのパスコードを設定または削除したときに返される内容。

属性

  • objectstring
    常にx_chatです。
  • passcode_setboolean
    Gemleadがパスコードを保持している場合はtrue。
  • unlockedboolean
    Xがパスコードを受け入れ、Gemleadが暗号化されたメッセージを読める場合はtrue。
  • reasonstring
    ロックを解除できなかった場合のみ、その理由を示します。passcodeはXがパスコードを拒否したことを意味し、Gemleadはそのパスコードを削除します。
  • remaining_attemptsintegerまたはnull
    ロックを解除できなかった場合のみ、Xがまだ許可している残りの試行回数を示します。Xが回数を返した場合に限ります。
パスコードの結果
{
  "object": "x_chat",
  "passcode_set": false,
  "unlocked": false,
  "reason": "passcode",
  "remaining_attempts": 3
}

X Chatのパスコードを設定

PUT/v1/account/x_chat/passcodewriteスコープ

アカウントのX ChatパスコードをGemleadに渡し、それを使って暗号化されたメッセージのロックを解除します。試行は1時間に5回までで、Xはすべての試行をカウントします。REST専用です。パスコードがAIチャットを経由しないよう、パスコードを設定または削除するMCPツールはあえて用意していません。

ボディパラメーター

  • passcodestring必須
    X Chatのパスコード。4821のような4桁の数字です。

戻り値

パスコードの結果。Xがパスコードを拒否した場合はreasonとremaining_attemptsを含みます。

エラー

  • 必須パラメーターがありません。paramにその名前が入ります。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
  • このアカウントで1時間に5回を超えて試行されました。
  • XまたはGemleadのサービスが応答しませんでした。何も変更されていないので、1分後にもう一度お試しください。
PUT/v1/account/x_chat/passcode
curl -X PUT \
  https://gemlead.ai/api/v1/account/x_chat/passcode \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "passcode": "4821"
  }'
レスポンス200
{
  "object": "x_chat",
  "passcode_set": true,
  "unlocked": true
}

X Chatのパスコードを削除

DELETE/v1/account/x_chat/passcodewriteスコープ

Gemleadからパスコードを削除します。新しいX Chatのメッセージは、再びパスコードを設定するまで暗号化されたままです。REST専用です。パスコードがAIチャットを経由しないよう、パスコードを設定または削除するMCPツールはあえて用意していません。

戻り値

passcode_setがfalseのパスコードの結果。

DELETE/v1/account/x_chat/passcode
curl -X DELETE \
  https://gemlead.ai/api/v1/account/x_chat/passcode \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "x_chat",
  "passcode_set": false,
  "unlocked": false
}