
# LinkedIn APIとAIアシスタント (MCP)

LinkedInページで行うすべての操作は、スクリプトやAIアシスタントからも実行可能です。リード、接続リクエストのキュー、ICPルール（受け入れ対象の国やリードのネットワーク規模など）、受信トレイ、AIエージェント、設定などが含まれます。

新しく設定する必要はありません。**<span data-t="appName">DM Champ</span>の他の機能と同じAPIキー**を使用するため、すでにAPIを呼び出している場合やAIアシスタントを接続済みの場合は、そのまま利用可能です。

## APIキーの確認方法

「設定」→「統合」→「APIキー」の順に進みます。まだキーをお持ちでない場合は、**「APIキーを生成」**をクリックしてください。詳細な手順は[APIアクセス](api-access.md)をご覧ください。

LinkedIn専用のキーを作成、更新、取り消す必要はありません。このキーはあなた自身として機能し、アプリ内での権限と同じ権限を持つため、パスワードのように扱ってください。設定画面でキーを取り消すと、接続されているすべてのスクリプトやアシスタントが即座に切断されます。

## APIの直接呼び出し

- **ベースURL:** `https://app.sdrpilot.ai/api/v1`
- **ヘッダー:** `X-API-Key: YOUR_API_KEY`
- **機械可読な説明:** `https://app.sdrpilot.ai/api/v1/docs/openapi.yaml`
  （`.json`としても利用可能）

OpenAPIドキュメントは公開されており、すべてのルートが記述されているため、ほとんどのAPIツールやコードジェネレーターはキーなしで直接インポートできます。

`Authorization: Bearer YOUR_API_KEY`も同様に機能します。誤ったキーを送信して他の何かに適用されることを期待することはできません。キーが提示されると、そのキーに基づいて回答が返されます。

エラーが発生した場合のレスポンス:

| レスポンス | 意味 |
|---|---|
| `401` | キーが見つからない、形式が正しくない、または受け入れられません。 |
| `403` | キーは有効ですが、そのアカウントにLinkedInワークスペースがないか、まだ許可されていません。 |
| `429` | そのキーに対して1分間に拒否された試行回数が多すぎます。間隔を空けてください。 |
| `502` `dmchamp_unreachable` | 現時点でキーを確認できませんでした。これは決して成功とはみなされません。再試行してください。 |

## AIアシスタントの接続

LinkedInツールは<span data-t="appName">DM Champ</span>と同じMCPエンドポイント上にあり、同じAPIキーを使用するため、すでに接続済みのAIアシスタントであれば自動的に認識されます。まだ接続していない場合は、[AIアシスタントの接続 (MCP)](connect-ai-clients.md)の手順に従い、そこに記載されているエンドポイントを使用してください。

::: master-only
エンドポイントは`https://mcp.youraiconnector.com/mcp`で、`X-API-Key`ヘッダーを使用して認証されます。詳細は「AIアシスタントの接続 (MCP)」の説明通りです。
:::

LinkedInツールにはすべて **`linkedin_`** というプレフィックスが付いているため、アシスタントのツールリストで簡単に見つけることができ、名前で呼び出すことも簡単です（「LinkedInツールを使って、キューに入っているものを表示して」など）。ツールごとの権限設定はありません。ツールは、あなたがアプリ内で実行できることなら何でも実行できます。

## 例1 — 特定の国からのリードのみを受け入れる

ICPプロファイルには、リードが合格しなければならないルールが保持されています。これは、オランダとベルギーを許可リストとして設定します。国コードは2文字の大文字です。

```bash
curl -X PUT https://app.sdrpilot.ai/api/v1/icp/YOUR_ICP_ID/filters \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"countries":{"mode":"allow","codes":["NL","BE"]}}'
```

2つの注意点があります。ボディはルールの**完全な**セットであり、パッチではありません。除外したルールはオフになります。また、回答には `impact_on_queue` ブロックが含まれており、新しいルールに適合しないキュー済みの接続リクエストがいくつあるかが示されます（例: `{"examined": 389, "would_withdraw": 155}`）。
ルールを保存しても、それ自体で何かが取り消されることはありません。

アシスタントに対しては、単に「ICPをオランダとベルギーのみを受け入れるように設定し、それがキューにどのような影響を与えるか教えて」と言うだけで済みます。

## 例2 — キューの内容を確認する

承認済みだがまだ送信されていない接続リクエスト：

```bash
curl -s "https://app.sdrpilot.ai/api/v1/connections/queue?status=queued&limit=100" \
  -H "X-API-Key: YOUR_API_KEY"
```

各行には、相手の名前、ヘッドライン、会社名、場所、国、接続数とフォロワー数、およびスコアが表示されます。`country`、`min_score`、`max_score`、`source` を使用してリストを絞り込み、`limit` と `cursor` でページ送りできます。キューに入っているリクエストと承認待ちのリクエストのみがここに表示されます。すでに送信されたリクエストは履歴となり、変更することはできません。

## 例3 — 指定した国以外の全員を取り消す

ルールを変更した後、それに基づいてキューを再確認します。`apply=true` がない場合、これはプレビューであり、何も変更されません：

```bash
curl -X POST "https://app.sdrpilot.ai/api/v1/connections/queue/rescreen" \
  -H "X-API-Key: YOUR_API_KEY"
```

何件が調査され、何件が取り消されるか、そしてルールごとの内訳（例: `country` や `network_too_small`（リードのネットワークが最小要件より小さかった場合）など）が返されます。これでよろしければ、`?apply=true` を付けて再度実行すると、それらのリクエストが取り消されます。

```bash
curl -X POST "https://app.sdrpilot.ai/api/v1/connections/queue/rescreen?apply=true" \
  -H "X-API-Key: YOUR_API_KEY"
```

特定のセットを取り消したい場合は、代わりにIDを投稿するか、`{"filter":{"status":"queued","country":"NG"}}` のようなフィルターを使用して一致するすべてを削除してください。IDまたはフィルターのいずれかを送信し、両方を同時に送信しないでください。

## トラブルシューティング

- **`401`（すべての呼び出しで発生）** — キーが見当たらないか、間違っています。設定 → 統合 → APIキーから再度コピーしてください。
- **`403`（キーは他の場所で機能している場合）** — そのアカウントがLinkedInワークスペースにリンクされていないか、LinkedInがまだ有効になっていません。
- **`502 dmchamp_unreachable`** — キーの確認中に一時的な問題が発生しました。何も処理されませんでした。再試行してください。
- **ルールが何も一致しない** — 国コードは2文字の大文字形式（`NL` であり、`Netherlands` や `nl` ではない）である必要があり、言語コードは小文字である必要があります。
- **アシスタントにLinkedInツールが表示されない** — 再接続してツールリストを再読み込みし、同じAPIキーを使用していることを確認してください。

---

## 次のステップ

- [AIアシスタントを接続する (MCP)](connect-ai-clients.md) — Claude、ChatGPT、またはCursorをキーで設定します。
- [APIアクセス](api-access.md) — これが使用するキーを生成またはローテーションします。
