APIリファレンス

ソース

Gemleadがペルソナのリードをどこで探すかは、ソースで決まります。ソースとは、フォロー中のアカウントやフォロワーを読み取る対象のXアカウントです。キーワード検索は、一致するポストの投稿者を見つけます。競合アカウントからは、そのポストにリプライした人が見つかります。

それぞれ、見つけたリード、スコアリングしたリード、ホットリードの数がわかるので、成果の出ているものを残せます。ソースとしての適性は、先にXプロフィールを検索して確認できます。

ソースオブジェクト

Gemleadがペルソナのリードを探すために、そのネットワークを読み取るXアカウント。フォロー中のアカウント、フォロワー、またはその両方を読み取ります。

属性

  • idstring
    ソースの一意の識別子。
  • objectstring
    常にsourceです。
  • persona_idstring
    リードを探す対象のペルソナ。
  • methodstring
    フォロワーのみを読み取る場合はcompetitor_followers、それ以外はfollowingです。
    followingcompetitor_followers
  • profileobject
    ソースのXプロフィール。
  • statusstring
    読み取りの状態。
    pendingscrapingscoringdonefailedskipped
  • pausedboolean
    あなたが一時停止したかどうか。
  • errorstringまたはnull
    読み取りに失敗した場合の理由。
  • read_followingboolean
    フォロー中のアカウントを読み取るかどうか。
  • read_followersboolean
    フォロワーを読み取るかどうか。
  • score_selfboolean
    ソース自身のアカウントもリードとしてスコアリングするかどうか。
  • self_lead_idstringまたはnull
    スコアリング後の、ソース自身のアカウントのリード。
  • origin_lead_idstringまたはnull
    リードをソースにするで作成した場合の、元のリード。
  • statsobject
    これまでの成果。
  • last_activity_atstringまたはnull
    最後にリードを見つけた日時。ISO 8601形式です。
  • last_scraped_atstringまたはnull
    最後に読み取った日時。ISO 8601形式です。
  • created_atstring
    追加された日時。ISO 8601形式です。
ソースオブジェクト
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを一覧表示

GET/v1/personas/:persona_id/sourcesreadスコープMCPlist_sources

統計を含むペルソナのソースを返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

クエリパラメーター

  • pausedboolean
    一時停止中のソースのみならtrue、稼働中のソースのみならfalse。
  • limitinteger
    返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
  • cursorstring
    次のページを取得するための、前のページのnext_cursor。ページネーションを参照してください。

戻り値

ソースオブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
GET/v1/personas/:persona_id/sources
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "list",
  "data": [
    {
      "id": "s2HvN8qLtB",
      "object": "source",
      "persona_id": "lvWBPnytpS",
      "method": "following",
      "profile": {
        "username": "pickswithmike",
        "name": "Mike Picks",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
        "followers_count": 8400,
        "following_count": 1210,
        "url": "https://x.com/pickswithmike"
      },
      "status": "done",
      "paused": false,
      "error": null,
      "read_following": true,
      "read_followers": false,
      "score_self": true,
      "self_lead_id": "Lp4WqZ7sXe",
      "origin_lead_id": null,
      "stats": {
        "leads": 1184,
        "scored_leads": 1160,
        "hot_leads": 212,
        "avg_score": 44
      },
      "last_activity_at": "2026-11-05T14:03:40.117Z",
      "last_scraped_at": "2026-11-05T14:02:11.482Z",
      "created_at": "2026-09-14T09:21:05.300Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

ソースを取得

GET/v1/personas/:persona_id/sources/:source_idreadスコープMCPlist_sources

ソースを1件、統計とともに返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
GET/v1/personas/:persona_id/sources/:source_id
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを追加

POST/v1/personas/:persona_id/sourceswriteスコープMCPadd_source

Xアカウントをソースとして追加します。最適なのは、あなたの買い手に似た人です。その人のフォロー先は同業者でいっぱいだからです。競合のフォロワーは、あなたのような商材にすでに関心を持っています。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

ボディパラメーター

  • usernamestring必須
    Xのユーザー名。英数字または_の1文字から15文字で、@は付けても付けなくてもかまいません。
  • read_followingboolean
    そのアカウントがフォローしているアカウント、つまり似た人を読み取ります。デフォルトはtrueです。
  • read_followersboolean
    そのアカウントのフォロワー、たとえば競合のオーディエンスを読み取ります。デフォルトはfalseです。
  • score_selfboolean
    ソース自身のアカウントもリードとしてスコアリングします。デフォルトはtrueです。

戻り値

新しいソースオブジェクト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • 必須パラメーターがありません。paramにその名前が入ります。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
  • ペルソナには、このアカウントがすでにこの獲得方法のソースとして登録されています。
  • このユーザー名には、読み取れるXのプロフィールがありません。
  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
POST/v1/personas/:persona_id/sources
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "pickswithmike",
    "read_following": true
  }'
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "pending",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 0,
    "scored_leads": 0,
    "hot_leads": 0,
    "avg_score": 0
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを更新

PATCH/v1/personas/:persona_id/sources/:source_idwriteスコープMCPupdate_source

ソースでGemleadが読み取る内容を変更します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

ボディパラメーター

  • read_followingboolean
    そのアカウントがフォローしているアカウント、つまり似た人を読み取ります。
  • read_followersboolean
    そのアカウントのフォロワー、たとえば競合のオーディエンスを読み取ります。
  • score_selfboolean
    ソース自身のアカウントもリードとしてスコアリングします。

戻り値

更新されたソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
  • ボディに、このエンドポイントが受け付けないフィールドがあります。
PATCH/v1/personas/:persona_id/sources/:source_id
curl -X PATCH \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "read_followers": true
  }'
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": true,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを一時停止

POST/v1/personas/:persona_id/sources/:source_id/pausewriteスコープMCPupdate_source

ソースの読み取りを一時的に止めます。リードはそのまま残ります。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
POST/v1/personas/:persona_id/sources/:source_id/pause
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/pause \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": true,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを再開

POST/v1/personas/:persona_id/sources/:source_id/resumewriteスコープMCPupdate_source

一時停止中のソースの読み取りを再開します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
POST/v1/personas/:persona_id/sources/:source_id/resume
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/resume \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースをスキップ

POST/v1/personas/:persona_id/sources/:source_id/skipwriteスコープMCPupdate_source

合わない人ばかり見つかるソースを完全に止め、完了済みとして扱います。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
POST/v1/personas/:persona_id/sources/:source_id/skip
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/skip \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "skipped",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを再読み込み

POST/v1/personas/:persona_id/sources/:source_id/refreshwriteスコープMCPupdate_source

ソースのXプロフィールを読み直し、新しい名前、写真、フォロワー数を反映します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
  • XまたはGemleadのサービスが応答しませんでした。何も変更されていないので、1分後にもう一度お試しください。
POST/v1/personas/:persona_id/sources/:source_id/refresh
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/refresh \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースをスコアリング

POST/v1/personas/:persona_id/sources/:source_id/scorewriteスコープMCPupdate_source

ソース自身のXアカウントを、ペルソナのリードとしてスコアリングします。リード1件につき最大2クレジットを使います。1回目の分析で1クレジット、通過すると2回目の分析でさらに1クレジットです。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
POST/v1/personas/:persona_id/sources/:source_id/score
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/score \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "persona_id": "lvWBPnytpS",
  "method": "following",
  "profile": {
    "username": "pickswithmike",
    "name": "Mike Picks",
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "followers_count": 8400,
    "following_count": 1210,
    "url": "https://x.com/pickswithmike"
  },
  "status": "done",
  "paused": false,
  "error": null,
  "read_following": true,
  "read_followers": false,
  "score_self": true,
  "self_lead_id": "Lp4WqZ7sXe",
  "origin_lead_id": null,
  "stats": {
    "leads": 1184,
    "scored_leads": 1160,
    "hot_leads": 212,
    "avg_score": 44
  },
  "last_activity_at": "2026-11-05T14:03:40.117Z",
  "last_scraped_at": "2026-11-05T14:02:11.482Z",
  "created_at": "2026-09-14T09:21:05.300Z"
}

ソースを削除

DELETE/v1/personas/:persona_id/sources/:source_idwriteスコープMCPdelete_source

ソースと、そのソースが見つけたリードのうち、どのキャンペーンでも扱っていないものを削除します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

戻り値

ソースのid、trueに設定されたdeleted、deleted_leadsの件数を含むオブジェクト。

エラー

  • キーのアカウントに、このIDのソースはありません。
DELETE/v1/personas/:persona_id/sources/:source_id
curl -X DELETE \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "id": "s2HvN8qLtB",
  "object": "source",
  "deleted": true,
  "deleted_leads": 972
}

ソースのリードを一覧表示

GET/v1/personas/:persona_id/sources/:source_id/leadsreadスコープMCPlist_source_leads

ソースが見つけたリードを、スコアの高い順に返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。
  • source_idstring必須
    ソースのID。

クエリパラメーター

  • orderstring
    -scoreはスコアの高い順、scoreは低い順です。デフォルトは-scoreです。
    -scorescore
  • limitinteger
    返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
  • cursorstring
    次のページを取得するための、前のページのnext_cursor。ページネーションを参照してください。

戻り値

total_count付きの、リードオブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのソースはありません。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
GET/v1/personas/:persona_id/sources/:source_id/leads
curl -G \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sources/s2HvN8qLtB/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d limit=10
レスポンス200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "profile": {
        "x_user_id": "1460283925",
        "username": "jane_builds",
        "name": "Jane Doe",
        "bio": "Runs a paid trading community. Daily setups, no hype.",
        "followers_count": 12400,
        "following_count": 380,
        "location": "Austin, TX",
        "website": "https://janedoe.com",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
        "verified": true,
        "url": "https://x.com/jane_builds"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
  "total_count": 1184
}

キーワード検索オブジェクト

Gemleadがペルソナのために実行するXでの検索。見つかったポストの投稿者がリードとしてスコアリングされます。

属性

  • objectstring
    常にsearch_queryです。
  • querystring
    Xで入力するときと同じ形式の検索語。
  • persona_idstring
    リードを探す対象のペルソナ。
  • statsobject
    これまでの成果。
  • first_found_atstringまたはnull
    最初のリードを見つけた日時。ISO 8601形式です。
キーワード検索オブジェクト
{
  "object": "search_query",
  "query": "paid discord picks",
  "persona_id": "lvWBPnytpS",
  "stats": {
    "leads": 640,
    "scored_leads": 618,
    "hot_leads": 131,
    "avg_score": 47
  },
  "first_found_at": "2026-10-21T10:04:51.000Z"
}

キーワード検索を一覧表示

GET/v1/personas/:persona_id/search_queriesreadスコープMCPlist_persona_items

ペルソナのキーワード検索を、それぞれが見つけたリード、スコアリングしたリード、ホットリードの数とともに返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

戻り値

キーワード検索オブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
GET/v1/personas/:persona_id/search_queries
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "list",
  "data": [
    {
      "object": "search_query",
      "query": "paid discord picks",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 640,
        "scored_leads": 618,
        "hot_leads": 131,
        "avg_score": 47
      },
      "first_found_at": "2026-10-21T10:04:51.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

キーワード検索を追加

POST/v1/personas/:persona_id/search_querieswriteスコープMCPedit_persona_items

ペルソナにキーワード検索を追加します。Gemleadはその検索語を含むポストをXで探し、投稿者をスコアリングします。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

ボディパラメーター

  • queriesstringsの配列必須
    追加するキーワード検索。1件から50件で、1ペルソナあたり合計500件までです。それぞれXで入力するときと同じ形式で、2文字から200文字です。

戻り値

ペルソナのキーワード検索。キーワード検索オブジェクトのリストです。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • 必須パラメーターがありません。paramにその名前が入ります。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
  • ペルソナには、すでにこのキーワード検索があります。
  • ペルソナのキーワード検索が合計500件を超えてしまいます。
POST/v1/personas/:persona_id/search_queries
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["paid discord picks", "vip tips telegram"]
  }'
レスポンス200
{
  "object": "list",
  "data": [
    {
      "object": "search_query",
      "query": "paid discord picks",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 640,
        "scored_leads": 618,
        "hot_leads": 131,
        "avg_score": 47
      },
      "first_found_at": "2026-10-21T10:04:51.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

キーワード検索を削除

POST/v1/personas/:persona_id/search_queries/removewriteスコープMCPedit_persona_items

ペルソナからキーワード検索を削除します。見つかったリードはそのまま残ります。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

ボディパラメーター

  • queriesstringsの配列必須
    削除するキーワード検索。一覧に表示されているとおりに指定します。

戻り値

残ったペルソナのキーワード検索。キーワード検索オブジェクトのリストです。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • ペルソナのキーワード検索にないものが含まれています。
  • 必須パラメーターがありません。paramにその名前が入ります。
POST/v1/personas/:persona_id/search_queries/remove
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries/remove \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["vip tips telegram"]
  }'
レスポンス200
{
  "object": "list",
  "data": [
    {
      "object": "search_query",
      "query": "paid discord picks",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 640,
        "scored_leads": 618,
        "hot_leads": 131,
        "avg_score": 47
      },
      "first_found_at": "2026-10-21T10:04:51.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

キーワード検索のリードを一覧表示

GET/v1/personas/:persona_id/search_queries/leadsreadスコープMCPlist_item_leads

1件のキーワード検索が見つけたリードを、スコアの高い順に返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

クエリパラメーター

  • querystring必須
    キーワード検索。一覧に表示されているとおりに指定します。
  • orderstring
    -scoreはスコアの高い順、scoreは低い順です。デフォルトは-scoreです。
    -scorescore
  • limitinteger
    返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
  • cursorstring
    次のページを取得するための、前のページのnext_cursor。ページネーションを参照してください。

戻り値

total_count付きの、リードオブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • 必須パラメーターがありません。paramにその名前が入ります。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
GET/v1/personas/:persona_id/search_queries/leads
curl -G \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/search_queries/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  --data-urlencode "query=paid discord picks" \
  -d limit=10
レスポンス200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "profile": {
        "x_user_id": "1460283925",
        "username": "jane_builds",
        "name": "Jane Doe",
        "bio": "Runs a paid trading community. Daily setups, no hype.",
        "followers_count": 12400,
        "following_count": 380,
        "location": "Austin, TX",
        "website": "https://janedoe.com",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
        "verified": true,
        "url": "https://x.com/jane_builds"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
  "total_count": 640
}

競合アカウントオブジェクト

競合のXアカウント。Gemleadはそのポストにリプライした人を読み取り、リードとしてスコアリングします。

属性

  • objectstring
    常にcompetitor_accountです。
  • usernamestring
    Xのユーザー名。@は含みません。
  • persona_idstring
    リードを探す対象のペルソナ。
  • statsobject
    これまでの成果。
  • first_found_atstringまたはnull
    最初のリードを見つけた日時。ISO 8601形式です。
競合アカウントオブジェクト
{
  "object": "competitor_account",
  "username": "whop",
  "persona_id": "lvWBPnytpS",
  "stats": {
    "leads": 905,
    "scored_leads": 902,
    "hot_leads": 96,
    "avg_score": 38
  },
  "first_found_at": "2026-10-24T16:30:12.000Z"
}

競合アカウントを一覧表示

GET/v1/personas/:persona_id/competitor_accountsreadスコープMCPlist_persona_items

ペルソナの競合アカウントを、それぞれが見つけたリード、スコアリングしたリード、ホットリードの数とともに返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

戻り値

競合アカウントオブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
GET/v1/personas/:persona_id/competitor_accounts
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "list",
  "data": [
    {
      "object": "competitor_account",
      "username": "whop",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 905,
        "scored_leads": 902,
        "hot_leads": 96,
        "avg_score": 38
      },
      "first_found_at": "2026-10-24T16:30:12.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

競合アカウントを追加

POST/v1/personas/:persona_id/competitor_accountswriteスコープMCPedit_persona_items

ペルソナに競合アカウントを追加します。Gemleadはそのポストにリプライした人を読み取り、スコアリングします。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

ボディパラメーター

  • usernamesstringsの配列必須
    追加する競合アカウント。1件から50件で、1ペルソナあたり合計100件までです。それぞれXのユーザー名で、@は付けても付けなくてもかまいません。

戻り値

ペルソナの競合アカウント。競合アカウントオブジェクトのリストです。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • 必須パラメーターがありません。paramにその名前が入ります。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
  • ペルソナには、すでにこの競合アカウントがあります。
  • ペルソナの競合アカウントが合計100件を超えてしまいます。
POST/v1/personas/:persona_id/competitor_accounts
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": ["whop"]
  }'
レスポンス200
{
  "object": "list",
  "data": [
    {
      "object": "competitor_account",
      "username": "whop",
      "persona_id": "lvWBPnytpS",
      "stats": {
        "leads": 905,
        "scored_leads": 902,
        "hot_leads": 96,
        "avg_score": 38
      },
      "first_found_at": "2026-10-24T16:30:12.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

競合アカウントを削除

POST/v1/personas/:persona_id/competitor_accounts/removewriteスコープMCPedit_persona_items

ペルソナから競合アカウントを削除します。見つかったリードはそのまま残ります。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

ボディパラメーター

  • usernamesstringsの配列必須
    削除する競合アカウント。一覧に表示されているとおりに指定します。

戻り値

残ったペルソナの競合アカウント。競合アカウントオブジェクトのリストです。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • ペルソナの競合アカウントにないものが含まれています。
  • 必須パラメーターがありません。paramにその名前が入ります。
POST/v1/personas/:persona_id/competitor_accounts/remove
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts/remove \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": ["whop"]
  }'
レスポンス200
{
  "object": "list",
  "data": [],
  "has_more": false,
  "next_cursor": null
}

競合アカウントのリードを一覧表示

GET/v1/personas/:persona_id/competitor_accounts/leadsreadスコープMCPlist_item_leads

1つの競合アカウントが見つけたリードを、スコアの高い順に返します。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

クエリパラメーター

  • usernamestring必須
    競合のXユーザー名。一覧に表示されているとおりに指定します。
  • orderstring
    -scoreはスコアの高い順、scoreは低い順です。デフォルトは-scoreです。
    -scorescore
  • limitinteger
    返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
  • cursorstring
    次のページを取得するための、前のページのnext_cursor。ページネーションを参照してください。

戻り値

total_count付きの、リードオブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • 必須パラメーターがありません。paramにその名前が入ります。
  • APIが受け付けない値のパラメーターがあります。paramにその名前が入ります。
GET/v1/personas/:persona_id/competitor_accounts/leads
curl -G \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/competitor_accounts/leads \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d username=whop \
  -d limit=10
レスポンス200
{
  "object": "list",
  "data": [
    {
      "id": "msgOtJ8dvT",
      "object": "lead",
      "profile": {
        "x_user_id": "1460283925",
        "username": "jane_builds",
        "name": "Jane Doe",
        "bio": "Runs a paid trading community. Daily setups, no hype.",
        "followers_count": 12400,
        "following_count": 380,
        "location": "Austin, TX",
        "website": "https://janedoe.com",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1460283925/jane_400x400.jpg",
        "verified": true,
        "url": "https://x.com/jane_builds"
      },
      "score": 86,
      "score_reason": "Runs a paid trading community and asks how to collect payments for it.",
      "hot": true,
      "status": "scored",
      "persona": {
        "id": "lvWBPnytpS",
        "name": "Tipsters"
      },
      "campaign": null,
      "conversation_id": null,
      "locked_to": null,
      "found_at": "2026-11-05T14:02:11.482Z",
      "scored_at": "2026-11-05T14:03:40.117Z",
      "updated_at": "2026-11-05T14:03:40.117Z",
      "metadata": {}
    }
  ],
  "has_more": true,
  "next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
  "total_count": 905
}

ソースの提案オブジェクト

AIがペルソナのソースとして選んだXアカウント。選んだ理由と読み取り方を含みます。

属性

  • objectstring
    常にsource_suggestionです。
  • profileobject
    Xプロフィールオブジェクトと同じ形式の、アカウントのXプロフィール。
  • methodstring
    このアカウントで読み取る内容。
    followingcompetitor_followers
  • reasonstringまたはnull
    AIがこのアカウントを選んだ理由。
  • seed_adviceobjectまたはnull
    Gemlead独自のアカウントの評価。
ソースの提案オブジェクト
{
  "object": "source_suggestion",
  "profile": {
    "x_user_id": "1722093311",
    "username": "pickswithmike",
    "name": "Mike Picks",
    "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
    "followers_count": 8400,
    "following_count": 1210,
    "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
    "verified": false,
    "url": "https://x.com/pickswithmike"
  },
  "method": "following",
  "reason": "Runs a paid picks group and follows dozens of other tipsters.",
  "seed_advice": {
    "verdict": "good",
    "kind": "person",
    "reason_code": "peer",
    "reason": "A founder-sized account (1k to 15k followers) follows peers who look like your buyers.",
    "recommended_method": "following"
  }
}

ソースを提案

GET/v1/personas/:persona_id/source_suggestionsreadスコープMCPsuggest_sources

ペルソナの説明、キーワード、競合をもとに、ソースとして追加するXアカウントをAIに提案させます。

パスパラメーター

  • persona_idstring必須
    ペルソナのID。

戻り値

ソースの提案オブジェクトのリスト。

エラー

  • キーのアカウントに、このIDのペルソナはありません。
  • XまたはGemleadのサービスが応答しませんでした。何も変更されていないので、1分後にもう一度お試しください。
GET/v1/personas/:persona_id/source_suggestions
curl \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/source_suggestions \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
レスポンス200
{
  "object": "list",
  "data": [
    {
      "object": "source_suggestion",
      "profile": {
        "x_user_id": "1722093311",
        "username": "pickswithmike",
        "name": "Mike Picks",
        "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
        "followers_count": 8400,
        "following_count": 1210,
        "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
        "verified": false,
        "url": "https://x.com/pickswithmike"
      },
      "method": "following",
      "reason": "Runs a paid picks group and follows dozens of other tipsters.",
      "seed_advice": {
        "verdict": "good",
        "kind": "person",
        "reason_code": "peer",
        "reason": "A founder-sized account (1k to 15k followers) follows peers who look like your buyers.",
        "recommended_method": "following"
      }
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Xプロフィールオブジェクト

ソースや競合として追加する前に、あなたのXセッションでリアルタイムに読み取ったXアカウント。

属性

  • objectstring
    常にx_profileです。
  • x_user_idstring
    Xアカウントの数値ID。文字列で返ります。
  • usernamestring
    Xのハンドル。@は含みません。
  • namestring
    表示名。
  • biostring
    プロフィールの自己紹介文。
  • followers_countinteger
    Xのフォロワー数。
  • following_countinteger
    Xでフォローしているアカウント数。
  • locationstring
    プロフィールに書かれた所在地。
  • websitestring
    プロフィールのウェブサイト。
  • profile_image_urlstring
    プロフィール画像のURL。
  • verifiedboolean
    アカウントに認証バッジがあるかどうか。
  • urlstring
    XでのプロフィールのURL。
  • can_dmbooleanまたはnull
    あなたのアカウントからDMを送れるかどうか。Xから情報が得られた場合のみ含まれます。
  • joined_atstringまたはnull
    Xでアカウントが作成された日時。ISO 8601形式です。
  • seed_adviceobject
    personaパラメーターを指定した場合のみ。読み取り方ごとの、ソースとしての適性です。
Xプロフィールオブジェクト
{
  "object": "x_profile",
  "x_user_id": "1722093311",
  "username": "pickswithmike",
  "name": "Mike Picks",
  "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
  "followers_count": 8400,
  "following_count": 1210,
  "location": "Las Vegas",
  "website": "https://mikepicks.com",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
  "verified": false,
  "can_dm": true,
  "joined_at": "2019-03-02T18:11:40.000Z",
  "url": "https://x.com/pickswithmike"
}

Xプロフィールを検索

GET/v1/x_profiles/:usernamereadスコープMCPlookup_x_profile

あなたのXセッションで、Xプロフィールをリアルタイムで読み取ります。personaを指定すると、そのペルソナのソースとしての適性も返します。

パスパラメーター

  • usernamestring必須
    Xのユーザー名。@は付けても付けなくてもかまいません。

クエリパラメーター

  • personastring
    seed_adviceを取得するためのペルソナID。

戻り値

Xプロフィールオブジェクト。

エラー

  • このユーザー名には、読み取れるXのプロフィールがありません。
  • Xアカウントのセッションの有効期限が切れています。アプリで再接続してから、もう一度お試しください。
  • XまたはGemleadのサービスが応答しませんでした。何も変更されていないので、1分後にもう一度お試しください。
GET/v1/x_profiles/:username
curl -G https://gemlead.ai/api/v1/x_profiles/pickswithmike \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -d persona=lvWBPnytpS
レスポンス200
{
  "object": "x_profile",
  "x_user_id": "1722093311",
  "username": "pickswithmike",
  "name": "Mike Picks",
  "bio": "NBA and NFL picks. VIP Discord, 61 % last season.",
  "followers_count": 8400,
  "following_count": 1210,
  "location": "Las Vegas",
  "website": "https://mikepicks.com",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1722093311/mike_400x400.jpg",
  "verified": false,
  "can_dm": true,
  "joined_at": "2019-03-02T18:11:40.000Z",
  "url": "https://x.com/pickswithmike",
  "seed_advice": {
    "following": {
      "verdict": "good",
      "kind": "person",
      "reason_code": "peer",
      "reason": "A founder-sized account (1k to 15k followers) follows peers who look like your buyers.",
      "recommended_method": "following"
    },
    "competitor_followers": {
      "verdict": "weak",
      "kind": "person",
      "reason_code": "followers",
      "reason": "Followers lists are mostly passive accounts: few of them score hot. The following of a founder like your buyers works far better.",
      "recommended_method": "following"
    },
    "both": {
      "verdict": "weak",
      "kind": "person",
      "reason_code": "both",
      "reason": "Adding the followers drowns a good following in passive accounts. Keep the following only.",
      "recommended_method": "following"
    }
  }
}