APIリファレンス
キャンペーン
キャンペーンは、ペルソナのホットリードを、いいね、リプライ、フォロー、DMといった一連のステップに沿って進めます。すべてあなたのXアカウントから行われ、返信はすべて受信トレイに届きます。テンプレートか独自のフローから作成して開始し、数値を追跡できます。
- GET/v1/
campaigns - GET/v1/
campaigns/ :id - POST/v1/
campaigns - POST/v1/
campaigns/ :campaign_id/ start - POST/v1/
campaigns/ :campaign_id/ pause - POST/v1/
campaigns/ :campaign_id/ archive - POST/v1/
campaigns/ :campaign_id/ duplicate - DELETE/v1/
campaigns/ :campaign_id - GET/v1/
campaigns/ :id/ stats - GET/v1/
campaigns/ :campaign_id/ settings - PATCH/v1/
campaigns/ :campaign_id/ settings - GET/v1/
campaigns/ :campaign_id/ leads - GET/v1/
campaigns/ :campaign_id/ trends - GET/v1/
campaign_templates
キャンペーンオブジェクト
ペルソナのホットリードにDMを送り、フォローアップを行い、返信を受信トレイに渡すアウトリーチのフロー。
属性
- idstringキャンペーンの一意の識別子。
- objectstring常に
campaignです。 - namestringキャンペーンの名前。
- statusstringキャンペーンが送信中かどうか。
draftactivepausedarchived - personaobjectまたはnullキャンペーンに入るリードのペルソナ。
- methodstringまたはnullキャンペーンのリードの獲得方法。古いキャンペーンではnullです。
followingkeywordscompetitor_followerscompetitor_comments - min_scoreintegerスコアがこれより低いリードはキャンペーンに追加されません。
- daily_limitintegerキャンペーンに1日に追加される新規リードの上限。5から150で、デフォルトは60です。
- statsobjectキャンペーン開始以降の合計。最初のDMから7日以内に届いた返信がカウントされます。
- created_atstringキャンペーンが作成された日時。ISO 8601形式です。
- updated_atstringキャンペーンが最後に変更された日時。ISO 8601形式です。
{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "active",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンを一覧表示
キャンペーンを新しい順に返します。
クエリパラメーター
- statusstringこのステータスのキャンペーンのみ。
draftactivepausedarchived - personastringこのペルソナIDのキャンペーンのみ。
- limitinteger返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
- cursorstring次のページを取得するための、前のページの
next_cursor。ページネーションを参照してください。
戻り値
キャンペーンオブジェクトのリスト。
エラー
- APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。
curl -G https://gemlead.ai/api/v1/campaigns \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d status=active{
"object": "list",
"data": [
{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "active",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}
],
"has_more": false,
"next_cursor": null
}キャンペーンを取得
readスコープキャンペーンを1件返します。
パスパラメーター
- idstring必須キャンペーンのID。
戻り値
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
curl https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "active",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンを作成
キャンペーンを下書きとして作成します。開始するまで何も送信されません。templateもflowも指定しない場合は、アプリのデフォルトが使われます。B2Bはウォームアップフロー、B2Cはインスタントフローです。
ボディパラメーター
- persona_idstring必須キャンペーンに入るリードのペルソナ。
- namestring必須キャンペーンの名前。100文字までです。
- methodstringこの獲得方法で見つかったリードのみが追加されます。ペルソナのすべてのリードを対象にするには省略します。
followingkeywordscompetitor_followerscompetitor_comments - min_scoreintegerスコアがこの値以上のリードのみが追加されます。0から100で、デフォルトは60です。
- daily_limitinteger1日に追加される新規リードの上限。5から150まで指定でき、デフォルトは60です。新しいリードはそれぞれRadarから始まり、Radarはリードをアカウントの非公開のXリストに追加します。1日に数百件を超えると、Xはこの追加を6時間から24時間ブロックします。
- lead_orderstringどのリードから先に追加するか。デフォルトは
highestで、キーワード検索と競合を使う獲得方法ではnewestです。highestlowestshufflenewest - templatestringもとにするフロー。キャンペーンテンプレートを一覧表示を参照してください。
flowとは併用できません。warm_upinstantdirect_messageblank - flowobjectテンプレートの代わりに使う、独自のフロー。
戻り値
statusがdraftの、新しいキャンペーンオブジェクト。
エラー
- 必須パラメーターがありません。
paramにその名前が入ります。 - APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。 - ボディに、このエンドポイントが受け付けないフィールドがあります。
- キーのアカウントに、この
persona_idのペルソナはありません。
curl -X POST https://gemlead.ai/api/v1/campaigns \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"persona_id": "lvWBPnytpS",
"name": "Tipsters warm intro",
"method": "keywords",
"daily_limit": 50,
"template": "instant"
}'{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "draft",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 0,
"dms_sent": 0,
"replies": 0,
"reply_rate": null
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンを開始
下書きのキャンペーンを開始するか、一時停止中のキャンペーンを再開します。リードが追加され、あなたのXアカウントからステップが実行されます。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
戻り値
statusがactiveのキャンペーンオブジェクト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
- キャンペーンはアーカイブ済みです。再び実行するには複製してください。
- フローにまだステップがありません。
curl -X POST \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/start \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "active",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンを一時停止
キャンペーンを一時停止します。再び開始するまで新しいステップは実行されず、リードは現在の位置にとどまります。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
戻り値
statusがpausedのキャンペーンオブジェクト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
- キャンペーンはアーカイブ済みです。再び実行するには複製してください。
- キャンペーンは下書きのため、一時停止する対象がありません。
curl -X POST \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/pause \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "paused",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンをアーカイブ
キャンペーンを完全に終了します。履歴と会話は残り、キャンペーンを複製で再び実行できます。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
戻り値
statusがarchivedのキャンペーンオブジェクト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
curl -X POST \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/archive \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "c7RkQ2wLxe",
"object": "campaign",
"name": "Tipsters warm intro",
"status": "archived",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"created_at": "2026-09-14T09:21:05.300Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンを複製
キャンペーンの設定とフローを、リードを除いて新しい下書きにコピーします。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
戻り値
statusがdraftの、新しいキャンペーンオブジェクト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
curl -X POST \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/duplicate \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "c2VbN6mQrz",
"object": "campaign",
"name": "Tipsters warm intro copy",
"status": "draft",
"persona": {
"id": "lvWBPnytpS",
"name": "Tipsters"
},
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"stats": {
"leads": 0,
"dms_sent": 0,
"replies": 0,
"reply_rate": null
},
"created_at": "2026-11-06T07:45:12.904Z",
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーンを削除
キャンペーンを削除します。リードとその会話は残ります。この操作は元に戻せません。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
戻り値
キャンペーンのidと、trueに設定されたdeletedを含むオブジェクト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
curl -X DELETE \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "c7RkQ2wLxe",
"object": "campaign",
"deleted": true
}キャンペーン統計オブジェクト
期間内のキャンペーンの成果。合計と日別の値です。
属性
- objectstring常に
campaign_statsです。 - campaign_idstringキャンペーンのID。
- fromstring初日。
YYYY-MM-DD形式です。 - tostring最終日。
YYYY-MM-DD形式です。 - totalsobject期間内の
leads_added、dms_sent、replies、reply_rate。 - dailyobjectsの配列1日につき1件。それぞれ
date、dms_sent、repliesを含みます。
{
"object": "campaign_stats",
"campaign_id": "c7RkQ2wLxe",
"from": "2026-10-08",
"to": "2026-11-06",
"totals": {
"leads_added": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"daily": [
{
"date": "2026-11-04",
"dms_sent": 22,
"replies": 3
},
{
"date": "2026-11-05",
"dms_sent": 25,
"replies": 4
},
{
"date": "2026-11-06",
"dms_sent": 9,
"replies": 1
}
]
}キャンペーン統計を取得
期間内のキャンペーンの成果を、合計と日別で返します。dms_sentは期間内に送信した初回DMの数、repliesはそのリードから7日以内に届いた返信の数です。日付はUTCです。
パスパラメーター
- idstring必須キャンペーンのID。
クエリパラメーター
- fromstring初日。
YYYY-MM-DD形式です。デフォルトは30日前です。 - tostring最終日。
YYYY-MM-DD形式です。デフォルトは今日です。
戻り値
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
- APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。
curl -G https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/stats \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d from=2026-10-08 \
-d to=2026-11-06{
"object": "campaign_stats",
"campaign_id": "c7RkQ2wLxe",
"from": "2026-10-08",
"to": "2026-11-06",
"totals": {
"leads_added": 640,
"dms_sent": 412,
"replies": 57,
"reply_rate": 13.8
},
"daily": [
{
"date": "2026-11-04",
"dms_sent": 22,
"replies": 3
},
{
"date": "2026-11-05",
"dms_sent": 25,
"replies": 4
},
{
"date": "2026-11-06",
"dms_sent": 9,
"replies": 1
}
]
}キャンペーン設定オブジェクト
キャンペーンの設定とフロー全体。各ステップのIDとオプションを含みます。
属性
- objectstring常に
campaign_settingsです。 - campaign_idstringキャンペーンのID。
- persona_idstringまたはnullキャンペーンに入るリードのペルソナ。
- namestringキャンペーンの名前。
- statusstringキャンペーンの状態。
draftactivepausedarchived - methodstringまたはnullこの獲得方法で見つかったリードのみが追加されます。
nullの場合は、ペルソナのすべてのリードが対象です。followingkeywordscompetitor_followerscompetitor_comments - min_scoreintegerスコアがこの値以上のリードのみが追加されます。0から100です。
- daily_limitinteger1日に追加される新規リードの上限。5から150です。
- lead_orderstringどのリードから先に追加するか。スコアの高い順の
highest、低い順のlowest、ランダムのshuffle、発見が新しい順のnewestです。highestlowestshufflenewest - flowobjectキャンペーンのフロー。
- updated_atstring最後に変更された日時。ISO 8601形式です。
{
"object": "campaign_settings",
"campaign_id": "c7RkQ2wLxe",
"persona_id": "lvWBPnytpS",
"name": "Tipsters warm intro",
"status": "active",
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"lead_order": "newest",
"flow": {
"steps": [
{
"id": "in-like",
"type": "like",
"label": "Like",
"count": 1
},
{
"id": "in-follow",
"type": "follow",
"label": "Follow"
},
{
"id": "in-timer",
"type": "timer",
"label": "Timer",
"duration": "1d"
},
{
"id": "in-inbox",
"type": "can_dm",
"label": "Inbox opened test",
"if_yes": [
{
"id": "in-dm",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "cold",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-comment-bridge",
"type": "comment",
"label": "Comment",
"comment_type": "bridge",
"language": "auto",
"instructions": null
}
],
"if_no": [
{
"id": "in-comment-closed",
"type": "comment",
"label": "Comment",
"comment_type": "inbox_closed",
"language": "auto",
"instructions": null
}
]
},
{
"id": "in-timer-followup",
"type": "timer",
"label": "Timer",
"duration": "3d"
},
{
"id": "in-dm-followup",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "follow_up",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-cleaner",
"type": "cleaner",
"label": "Cleaner",
"unfollow": true,
"delete_comments": true,
"delete_likes": true
}
]
},
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーン設定を取得
キャンペーンの設定とフローを返します。各ステップのIDとオプションも含みます。フローを編集する前に読み取ってください。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
戻り値
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
curl https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"object": "campaign_settings",
"campaign_id": "c7RkQ2wLxe",
"persona_id": "lvWBPnytpS",
"name": "Tipsters warm intro",
"status": "active",
"method": "keywords",
"min_score": 60,
"daily_limit": 50,
"lead_order": "newest",
"flow": {
"steps": [
{
"id": "in-like",
"type": "like",
"label": "Like",
"count": 1
},
{
"id": "in-follow",
"type": "follow",
"label": "Follow"
},
{
"id": "in-timer",
"type": "timer",
"label": "Timer",
"duration": "1d"
},
{
"id": "in-inbox",
"type": "can_dm",
"label": "Inbox opened test",
"if_yes": [
{
"id": "in-dm",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "cold",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-comment-bridge",
"type": "comment",
"label": "Comment",
"comment_type": "bridge",
"language": "auto",
"instructions": null
}
],
"if_no": [
{
"id": "in-comment-closed",
"type": "comment",
"label": "Comment",
"comment_type": "inbox_closed",
"language": "auto",
"instructions": null
}
]
},
{
"id": "in-timer-followup",
"type": "timer",
"label": "Timer",
"duration": "3d"
},
{
"id": "in-dm-followup",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "follow_up",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-cleaner",
"type": "cleaner",
"label": "Cleaner",
"unfollow": true,
"delete_comments": true,
"delete_likes": true
}
]
},
"updated_at": "2026-11-06T07:45:12.904Z"
}キャンペーン設定を更新
送信した設定だけを変更し、ほかの設定はそのまま残します。flowは、実行中のキャンペーンでもフロー全体を置き換えます。残すステップのIDは変えないでください。そのステップで待機中のリードはそのまま残り、それ以外のリードはアプリが移動します。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
ボディパラメーター
- namestringキャンペーンの名前。100文字までです。
- methodstringまたはnullこの獲得方法で見つかったリードのみが追加されます。ペルソナのすべてのリードを対象にするには
nullにします。followingkeywordscompetitor_followerscompetitor_comments - min_scoreintegerスコアがこの値以上のリードのみが追加されます。0から100です。
- daily_limitinteger1日に追加される新規リードの上限。5から150です。
- lead_orderstringどのリードから先に追加するか。スコアの高い順の
highest、低い順のlowest、ランダムのshuffle、発見が新しい順のnewestです。highestlowestshufflenewest - flowobject新しいフローの全体。
戻り値
更新されたキャンペーン設定オブジェクト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
- APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。 - ボディに、このエンドポイントが受け付けないフィールドがあります。
- アーカイブ済みのキャンペーンのフローを変更しようとしました。代わりに複製してください。
curl -X PATCH \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"daily_limit": 80,
"min_score": 70
}'{
"object": "campaign_settings",
"campaign_id": "c7RkQ2wLxe",
"persona_id": "lvWBPnytpS",
"name": "Tipsters warm intro",
"status": "active",
"method": "keywords",
"min_score": 70,
"daily_limit": 80,
"lead_order": "newest",
"flow": {
"steps": [
{
"id": "in-like",
"type": "like",
"label": "Like",
"count": 1
},
{
"id": "in-follow",
"type": "follow",
"label": "Follow"
},
{
"id": "in-timer",
"type": "timer",
"label": "Timer",
"duration": "1d"
},
{
"id": "in-inbox",
"type": "can_dm",
"label": "Inbox opened test",
"if_yes": [
{
"id": "in-dm",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "cold",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-comment-bridge",
"type": "comment",
"label": "Comment",
"comment_type": "bridge",
"language": "auto",
"instructions": null
}
],
"if_no": [
{
"id": "in-comment-closed",
"type": "comment",
"label": "Comment",
"comment_type": "inbox_closed",
"language": "auto",
"instructions": null
}
]
},
{
"id": "in-timer-followup",
"type": "timer",
"label": "Timer",
"duration": "3d"
},
{
"id": "in-dm-followup",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "follow_up",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-cleaner",
"type": "cleaner",
"label": "Cleaner",
"unfollow": true,
"delete_comments": true,
"delete_likes": true
}
]
},
"updated_at": "2026-11-06T07:45:12.904Z"
}フローオブジェクト
キャンペーンが各リードに対して順に実行するステップ。分岐ではif_yesかif_noを実行してから、その後のステップに進みます。フローのステップは最大60個、分岐の入れ子は2階層までで、ステップIDは一意です。各ステップは、そのタイプのオプションのみを受け付けます。いいね、リプライ、フォロー、DMはすべてあなたのXアカウントから送られます。アプリのキャンバスには、アプリのテンプレートと同じレイアウトでフローが表示されます。
属性
- stepsobjectsの配列必須順に並んだステップ。
{
"steps": [
{
"id": "in-like",
"type": "like",
"label": "Like",
"count": 1
},
{
"id": "in-follow",
"type": "follow",
"label": "Follow"
},
{
"id": "in-timer",
"type": "timer",
"label": "Timer",
"duration": "1d"
},
{
"id": "in-inbox",
"type": "can_dm",
"label": "Inbox opened test",
"if_yes": [
{
"id": "in-dm",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "cold",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-comment-bridge",
"type": "comment",
"label": "Comment",
"comment_type": "bridge",
"language": "auto",
"instructions": null
}
],
"if_no": [
{
"id": "in-comment-closed",
"type": "comment",
"label": "Comment",
"comment_type": "inbox_closed",
"language": "auto",
"instructions": null
}
]
},
{
"id": "in-timer-followup",
"type": "timer",
"label": "Timer",
"duration": "3d"
},
{
"id": "in-dm-followup",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "follow_up",
"language": "auto",
"instructions": null,
"template": null
},
{
"id": "in-cleaner",
"type": "cleaner",
"label": "Cleaner",
"unfollow": true,
"delete_comments": true,
"delete_likes": true
}
]
}キャンペーンリードオブジェクト
キャンペーン中のリード。現在のステップと、キャンペーンがそのリードに投稿した内容を含みます。
属性
- objectstring常に
campaign_leadです。 - idstringまたはnullこのキャンペーンでのリードの進行を表す一意の識別子。
- campaign_idstringキャンペーンのID。
- lead_idstringまたはnullリードのID。
- statusstringキャンペーンでのリードのステータス。
waiting、replied、completed、failedなどです。 - stepstringまたはnull現在のステップのラベル。
- entered_atstringまたはnullキャンペーンに追加された日時。ISO 8601形式です。
- leadobjectまたはnullリード。
- postedobjectこのリードに送られた内容。
{
"object": "campaign_lead",
"id": "cl9TzQ4wKa",
"campaign_id": "c7RkQ2wLxe",
"lead_id": "msgOtJ8dvT",
"status": "replied",
"step": "Direct message",
"entered_at": "2026-11-05T15:00:08.000Z",
"lead": {
"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": {}
},
"posted": {
"comments": [],
"dms": [
{
"text": "Hey Jane, saw you want a real checkout for your picks. Want to see how others charge for their Discord?",
"message_id": "1985300011122233344",
"at": "2026-11-06T07:58:21.000Z"
}
]
}
}キャンペーンのリードを一覧表示
キャンペーンのリードを、フロー内の位置ごとに、キャンペーンがそれぞれに投稿した内容とともに返します。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
クエリパラメーター
- stagestring
allは追加されたすべてのリード、stepはステップstep_idを通過したリード、forkはその分岐の一方に進んだリードです。dm_sent、repliedのほか、finishedは完了または返信済み、completedは返信なしですべてのステップを終えたリードです。デフォルトはallです。allstepforkdm_sentrepliedfinishedcompleted - step_idstring
stepまたはforkの場合の、ステップのID。 - branchstring
forkの場合の分岐。yesno - skippedbooleanリプライまたはDMのステップで
stepを指定した場合に、何も投稿されなかったリード。 - qstring名前またはユーザー名で検索します。
- limitinteger返すオブジェクトの数。1から100まで指定でき、デフォルトは25です。
- cursorstring次のページを取得するための、前のページの
next_cursor。ページネーションを参照してください。
戻り値
total_count付きの、キャンペーンリードオブジェクトのリスト。
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
- APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。
curl -G https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/leads \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d stage=replied{
"object": "list",
"data": [
{
"object": "campaign_lead",
"id": "cl9TzQ4wKa",
"campaign_id": "c7RkQ2wLxe",
"lead_id": "msgOtJ8dvT",
"status": "replied",
"step": "Direct message",
"entered_at": "2026-11-05T15:00:08.000Z",
"lead": {
"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": {}
},
"posted": {
"comments": [],
"dms": [
{
"text": "Hey Jane, saw you want a real checkout for your picks. Want to see how others charge for their Discord?",
"message_id": "1985300011122233344",
"at": "2026-11-06T07:58:21.000Z"
}
]
}
}
],
"has_more": true,
"next_cursor": "eyJzIjoiMjAyNi0xMS0wNVQxNDowMzo0MC4xMTdaIn0",
"total_count": 57
}キャンペーン推移オブジェクト
14日間の日別、または24時間の時間別のキャンペーンのアクティビティ。アプリのグラフと同じ内容です。
属性
- objectstring常に
campaign_trendsです。 - campaign_idstringキャンペーンのID。
- rangestring期間。
14d24h - timezonestring集計単位のタイムゾーン。
- bucketsobjectsの配列1日または1時間ごとに1件。それぞれ
keyと、指定した指標を含みます。 - totalsobjectキャンペーン開始以降の
started、sent、replies、followsと、last_sent_at、last_reply_at。 - truncatedbooleanキャンペーンが大きすぎて全件を集計できない場合は
true。 - generated_atstring数値を読み取った日時。ISO 8601形式です。
{
"object": "campaign_trends",
"campaign_id": "c7RkQ2wLxe",
"range": "14d",
"timezone": "Europe/Paris",
"buckets": [
{
"key": "2026-11-04",
"started": 48,
"sent": 22,
"replies": 3,
"follows": 9
},
{
"key": "2026-11-05",
"started": 50,
"sent": 25,
"replies": 4,
"follows": 11
},
{
"key": "2026-11-06",
"started": 21,
"sent": 9,
"replies": 1,
"follows": 4
}
],
"totals": {
"started": 640,
"sent": 412,
"replies": 57,
"follows": 133,
"last_sent_at": "2026-11-06T08:20:03.000Z",
"last_reply_at": "2026-11-06T08:12:44.000Z"
},
"truncated": false,
"generated_at": "2026-11-06T08:30:00.000Z"
}キャンペーンの推移を取得
キャンペーンで開始したリード、送信したDM、返信、フォローを、14日間の日別、または24時間の時間別に返します。
パスパラメーター
- campaign_idstring必須キャンペーンのID。
クエリパラメーター
- metricsstring
started、sent、replies、followsから、カンマ区切りで任意に指定します。デフォルトは4つすべてです。startedsentrepliesfollows - rangestring
14dは日別、24hは時間別です。デフォルトは14dです。14d24h - timezonestring集計単位のIANAタイムゾーン。
Europe/Parisなどです。デフォルトはUTCです。
戻り値
エラー
- キーのアカウントに、このIDのキャンペーンはありません。
- APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。
curl -G \
https://gemlead.ai/api/v1/campaigns/c7RkQ2wLxe/trends \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d range=14d \
--data-urlencode "timezone=Europe/Paris"{
"object": "campaign_trends",
"campaign_id": "c7RkQ2wLxe",
"range": "14d",
"timezone": "Europe/Paris",
"buckets": [
{
"key": "2026-11-04",
"started": 48,
"sent": 22,
"replies": 3,
"follows": 9
},
{
"key": "2026-11-05",
"started": 50,
"sent": 25,
"replies": 4,
"follows": 11
},
{
"key": "2026-11-06",
"started": 21,
"sent": 9,
"replies": 1,
"follows": 4
}
],
"totals": {
"started": 640,
"sent": 412,
"replies": 57,
"follows": 133,
"last_sent_at": "2026-11-06T08:20:03.000Z",
"last_reply_at": "2026-11-06T08:12:44.000Z"
},
"truncated": false,
"generated_at": "2026-11-06T08:30:00.000Z"
}キャンペーンテンプレートオブジェクト
アプリが提供する、キャンペーンのもとにするフロー。どのテンプレートのフローも、キャンペーンを作成でそのまま使える有効なフローです。
属性
- objectstring常に
campaign_templateです。 - idstringテンプレートのID。
templateパラメーターに指定します。warm_upinstantdirect_messageblank - descriptionstringフローの内容を数文で説明したもの。
- defaultbooleanこの獲得方法と市場で、アプリがこのテンプレートを選ぶかどうか。
- flowobjectキャンペーンのフロー。
{
"object": "campaign_template",
"id": "direct_message",
"description": "Radar waits until they are online, then the message. No warm up.",
"default": false,
"flow": {
"steps": [
{
"id": "dm-snapshot",
"type": "snapshot",
"label": "Radar"
},
{
"id": "dm-send",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "cold",
"language": "auto",
"instructions": null,
"template": null
}
]
}
}キャンペーンテンプレートを一覧表示
アプリのテンプレートを、フロー全体とともに返します。各ステップタイプとオプションのいちばんの参考になります。ウォームアップフローはDMの前にいいね、リプライ、フォローを行います。インスタントフローはそれをすぐに行い、1日後にDMを送ります。ダイレクトメッセージはDMだけを送ります。
クエリパラメーター
- methodstringキャンペーンの獲得方法。インスタントフローの内容はこれに応じて変わります。
followingkeywordscompetitor_followerscompetitor_comments - marketstringペルソナの市場。
b2cでは、ダイレクトメッセージはRadarを使わずにすぐ送信します。b2bb2c
戻り値
キャンペーンテンプレートオブジェクトのリスト。
エラー
- APIが受け付けない値のパラメーターがあります。
paramにその名前が入ります。
curl -G https://gemlead.ai/api/v1/campaign_templates \
-H "Authorization: Bearer $GEMLEAD_API_KEY" \
-d method=following \
-d market=b2b{
"object": "list",
"data": [
{
"object": "campaign_template",
"id": "direct_message",
"description": "Radar waits until they are online, then the message. No warm up.",
"default": false,
"flow": {
"steps": [
{
"id": "dm-snapshot",
"type": "snapshot",
"label": "Radar"
},
{
"id": "dm-send",
"type": "send_dm",
"label": "Direct message",
"mode": "ai",
"dm_kind": "cold",
"language": "auto",
"instructions": null,
"template": null
}
]
}
}
],
"has_more": false,
"next_cursor": null
}