> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sorsa.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Sorsa Scoreと暗号資産分析

# Sorsa Scoreと暗号資産分野のソーシャルグラフ分析

Sorsaは、暗号資産関連のXアカウント（プロジェクト、インフルエンサー、KOL、ベンチャーキャピタル、その従業員）の内部データベースを管理しています。この節のエンドポイントでは、通常のXプロフィールを超えた分析を提供します。暗号資産エコシステム内での影響力、フォロワーの種類別分類、暗号資産関連アカウント間の最近のフォロー状況を取得できます。

暗号資産プロジェクトの調査、インフルエンサーの選定、新しいプロジェクトの発見、コミュニティ分析向けの機能です。プロジェクトの信頼性、インフルエンサーの実質的な影響力、VCが注目する新興プロジェクトを調べる際に活用できます。

> **無料で開始：** ここで扱う全エンドポイントを、最初の無料100リクエストで使えます。付与は1回限り、カード不要、有効期限なしです。スコア、変化量、フォロワー内訳、上位フォロワーの4回で1アカウントを調査すると、約25アカウントを試せます。

> **注：** Sorsa Scoreと関連分析は、[Sorsa Webアプリ](https://api.sorsa.io/)でも画面から確認できます。以下のAPIは同じデータへのプログラムからのアクセスを提供し、独自のツールやワークフローに組み込めます。

***

## Sorsa Scoreとは

Sorsa Scoreは、影響力のある暗号資産関連アカウントが何件フォローしているか、そしてそのフォロワーにどれほど影響力があるかを示す数値です。総フォロワー数、投稿の品質、プロフィールの見た目、認証状態ではなく、「誰がフォローし、その人にどれほど重みがあるか」というつながりだけに基づきます。

主な特徴：

* **量より質を重視します。** スコア1,000以上の数人は、スコア200の数十人より大きく貢献します。大量フォローではなく、実績のある人物からの認知を評価します。
* **相互フォロー目的や大量フォローのアカウントを除外します。** Sorsaはフォロワー一覧を人為的に増やすアカウントを検出・除外し、スコア計算に含めません。
* **投稿内容、プロフィールのデザイン、青いチェックマークは直接影響しません。** ただし良質な投稿は長期的に有力フォロワーを集めるため、相関することはあります。
* **スコアは変動します。** 影響力のあるアカウントのフォロー・解除によって変わります。`/score-changes`で週次・月次の変化を追えます。

高いスコアは暗号資産エコシステムで認知されていることを示します。主要プレイヤーを名乗るアカウントのスコアが低い場合は、詳しく調べる手がかりになります。

***

## エンドポイントの概要

| エンドポイント                 | 戻り値                        |
| :---------------------- | :------------------------- |
| `GET /score`            | 現在のSorsa Score             |
| `GET /score-changes`    | 過去1週間・1か月のスコア変化量           |
| `GET /followers-stats`  | インフルエンサー、プロジェクト、VC別のフォロワー数 |
| `GET /top-followers`    | Sorsa Score上位20人のフォロワー     |
| `GET /top-following`    | フォロー先のスコア上位20アカウント         |
| `GET /new-followers-7d` | 過去7日間にフォローしてきた暗号資産関連アカウント  |
| `GET /new-following-7d` | 過去7日間に新しくフォローした暗号資産関連アカウント |

すべてGETで、`username`、`user_id`、`user_link`のうち1つだけを必須入力として受け付けます。

***

## Sorsa Scoreを取得する

**エンドポイント：** `GET /v3/score`

```bash theme={null}
curl "https://api.sorsa.io/v3/score?username=VitalikButerin" \
  -H "ApiKey: YOUR_API_KEY"
```

```json theme={null}
{"score": 1843.7}
```

```python theme={null}
import requests

API_KEY = "YOUR_API_KEY"

def get_score(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/score",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json()["score"]

print(f"Vitalik's Sorsa Score: {get_score('VitalikButerin')}")
```

この節の他の機能と同様、`username`、`user_id`、`user_link`の1つだけを渡します。高いスコアは、暗号資産のインフルエンサー、プロジェクト、VCからの強い認知を示します。フォロワーが非常に多いアカウントは、初回の応答に少し時間がかかる場合があります。

***

## スコアの変化を追跡する

**エンドポイント：** `GET /v3/score-changes`

過去1週間・1か月の変化量を返します。勢いの検出に役立ち、急上昇するアカウントは注目すべき新興プロジェクト、低下するアカウントは支持を失いつつある可能性があります。

```python theme={null}
def get_score_changes(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/score-changes",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json()

changes = get_score_changes("some_crypto_project")
print(f"Week delta:  {changes['week_delta']:+}")
print(f"Month delta: {changes['month_delta']:+}")
```

レスポンス：

```json theme={null}
{
  "week_delta": 12,
  "month_delta": 24
}
```

`week_delta`が正なら、過去7日間にスコアを獲得したことを示します（有力アカウントからのフォロー増加）。負なら、有力フォロワーの解除や、そのフォロワー自身のスコア低下を意味します。

**要件：** 対象はすでにSorsaのデータベースで追跡されている必要があります。新規・未追跡のアカウントには過去のスコアがありません。

***

## カテゴリー別のフォロワー内訳

**エンドポイント：** `GET /v3/followers-stats`

データベース内のフォロワーを、インフルエンサー（個人の暗号資産KOL）、プロジェクト（暗号資産プロジェクトのアカウント）、ベンチャーキャピタル（VCとその従業員）の3種類に分けます。

```python theme={null}
def get_follower_breakdown(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/followers-stats",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json()

stats = get_follower_breakdown("some_crypto_project")
print(f"Total followers (Sorsa DB): {stats['followers_count']}")
print(f"  Influencers: {stats['influencers_count']}")
print(f"  Projects:    {stats['projects_count']}")
print(f"  VCs:         {stats['venture_capitals_count']}")
```

レスポンス：

```json theme={null}
{
  "followers_count": 16,
  "influencers_count": 12,
  "projects_count": 3,
  "venture_capitals_count": 1,
  "user_protected": false
}
```

ここでの`followers_count`は、X上の総数ではなくSorsaの暗号資産データベースに含まれるフォロワー数です。Xでは50,000人いても、Sorsaが追跡する暗号資産関連のフォロワーは200人という場合があります。

調査では特に有用です。VCの支援を主張するプロジェクトなら、フォロワー内訳にVCのアカウントがあることが期待されます。提携を主張しながらVC・プロジェクトのフォロワーがどちらも0なら、注意して調べる手がかりになります。

***

## スコア上位20人のフォロワーとフォロー先

**エンドポイント：** `GET /v3/top-followers`

Sorsa Scoreが最も高い20人のフォロワーを返します。どの有力な暗号資産アカウントが注目しているかが分かります。

**エンドポイント：** `GET /v3/top-following`

対象がフォローするアカウントのスコア上位20件を返します。誰の投稿や活動を追う価値があると考えているかが分かります。

```python theme={null}
def get_top_followers(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/top-followers",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


def get_top_following(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/top-following",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


# Who are the biggest names following this project?
top = get_top_followers("some_crypto_project")
print("Top followers by Sorsa Score:")
for u in top[:10]:
    print(f"  @{u['username']} (Score {u.get('score', 0)}, {u['followers_count']:,} followers)")
    print(f"    {u.get('description', '')[:60]}")
```

2つの形式は少し異なります。

* `/top-followers`は`TopFollowersResponse`を返します。各簡略プロフィールに、そのフォロワー自身のSorsa Scoreである`score`が付いています。`location`や`bio_urls`など、完全なプロフィールにある一部の項目は省略されます。
* `/top-following`は`FollowersResponse`です。標準プロフィールに`followerDate`（フォロー関係が成立した日時）を加えた`Follower`オブジェクトで、`score`はありません。

上位フォロワーの自己紹介リンク、所在地、メディア数なども必要なら、ユーザー名を`/info-batch`に渡してください。

***

## 過去7日間の新規フォロワーとフォロー先

**エンドポイント：** `GET /v3/new-followers-7d`

過去7日間に対象をフォローした、Sorsaのデータベース内の暗号資産関連アカウントを返します。

**エンドポイント：** `GET /v3/new-following-7d`

過去7日間に対象が新しくフォローした、データベース内の暗号資産関連アカウントを返します。

```python theme={null}
def get_new_followers_7d(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/new-followers-7d",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


def get_new_following_7d(username):
    resp = requests.get(
        "https://api.sorsa.io/v3/new-following-7d",
        headers={"ApiKey": API_KEY},
        params={"username": username},
    )
    resp.raise_for_status()
    return resp.json().get("users", [])


new_followers = get_new_followers_7d("some_crypto_project")
print(f"New crypto followers this week: {len(new_followers)}")
for u in new_followers:
    print(f"  @{u['username']} followed on {u.get('followerDate', 'unknown')}")
```

どちらも`FollowersResponse`（`followerDate`付きの`Follower`）を返します。

### データベースへの依存

次の制約を理解してください。

1. **対象がすでにデータベースにある必要があります。** 未追跡なら比較できる履歴がないため、何が「新しい」か判断できません。
2. **データベース内のアカウントに関わるフォローだけが対象です。** 一般の暗号資産と無関係なXアカウントがフォローしても結果には出ません。暗号資産関連アカウント同士のつながりを追う機能です。

既知の暗号資産プレイヤーの新しいつながりを正確に見られるため、その分野の分析に適しています。一方、一般アカウントも含む全フォロワーが必要なら、通常の`/followers`の代わりにはなりません。[フォロワーとフォロー中ユーザー](https://docs.sorsa.io/ja/followers-and-following)を参照してください。

***

## 実践的な活用

### プロジェクトの調査

複数のエンドポイントを組み合わせ、プロジェクトの信頼性を評価する情報をまとめます。

```python theme={null}
def due_diligence_report(username):
    """Quick due diligence check for a crypto project."""
    score = get_score(username)
    changes = get_score_changes(username)
    stats = get_follower_breakdown(username)
    top = get_top_followers(username)

    print(f"Due Diligence: @{username}")
    print(f"{'='*40}")
    print(f"Sorsa Score:   {score}")
    print(f"  Week change: {changes['week_delta']:+}")
    print(f"  Month change:{changes['month_delta']:+}")
    print()
    print(f"Crypto followers: {stats['followers_count']}")
    print(f"  Influencers: {stats['influencers_count']}")
    print(f"  Projects:    {stats['projects_count']}")
    print(f"  VCs:         {stats['venture_capitals_count']}")
    print()

    if top:
        print(f"Top followers by Score:")
        for u in top[:5]:
            print(f"  @{u['username']} (Score {u.get('score', 0)}, {u['followers_count']:,} followers)")
    else:
        print("No significant crypto followers found - investigate further.")

    # Red flags
    flags = []
    if score < 10:
        flags.append("Very low Score - minimal recognition in crypto")
    if stats["venture_capitals_count"] == 0 and stats["projects_count"] == 0:
        flags.append("No VC or project followers - claims of partnerships may be false")
    if changes["month_delta"] < -20:
        flags.append("Score dropping fast - influential followers are leaving")

    if flags:
        print(f"\nRed flags:")
        for f in flags:
            print(f"  - {f}")

    return score, stats, top


due_diligence_report("some_crypto_project")
```

### プロジェクトを並べて比較する

```python theme={null}
projects = ["project_a", "project_b", "project_c"]

print(f"{'Project':<20} {'Score':>7} {'Week':>6} {'Influencers':>12} {'Projects':>9} {'VCs':>5}")
print("-" * 65)

for handle in projects:
    score = get_score(handle)
    changes = get_score_changes(handle)
    stats = get_follower_breakdown(handle)

    print(f"@{handle:<19} {score:>7.1f} {changes['week_delta']:>+6} "
          f"{stats['influencers_count']:>12} {stats['projects_count']:>9} "
          f"{stats['venture_capitals_count']:>5}")
```

### VCの活動を追う

既知のVCが新しくフォローしたプロジェクトを監視します。今後の投資や提携の手がかりになる場合があります。

```python theme={null}
vc_accounts = ["a16z_crypto", "paradigm", "polychain"]

for vc in vc_accounts:
    new_follows = get_new_following_7d(vc)
    if new_follows:
        print(f"@{vc} started following {len(new_follows)} new crypto accounts this week:")
        for u in new_follows:
            print(f"  @{u['username']} (followed {u.get('followerDate', 'recently')})")
    else:
        print(f"@{vc}: no new crypto follows this week")
    print()
```

### 新しいプロジェクトを早期に発見する

スコアが伸びているプロジェクトを探します。スコアの上昇は、有力アカウントが注目し始めたことを示します。

```python theme={null}
watchlist = ["new_project_1", "new_project_2", "new_project_3", "new_project_4"]

rising = []
for handle in watchlist:
    try:
        score = get_score(handle)
        changes = get_score_changes(handle)
        if changes["week_delta"] > 5:
            rising.append({
                "handle": handle,
                "score": score,
                "week_delta": changes["week_delta"],
            })
    except Exception:
        continue

rising.sort(key=lambda x: x["week_delta"], reverse=True)

print("Rising projects (Score gained this week):")
for r in rising:
    print(f"  @{r['handle']}: Score {r['score']} ({r['week_delta']:+} this week)")
```

***

## CSVに出力する

```python theme={null}
import csv
import time

def export_crypto_analysis(handles, output_file="crypto_analysis.csv"):
    """Export Score and follower stats for a list of accounts."""
    fields = ["username", "score", "week_delta", "month_delta",
              "crypto_followers", "influencers", "projects", "vcs"]

    with open(output_file, "w", newline="") as f:
        writer = csv.DictWriter(f, fieldnames=fields)
        writer.writeheader()

        for handle in handles:
            try:
                score = get_score(handle)
                changes = get_score_changes(handle)
                stats = get_follower_breakdown(handle)

                writer.writerow({
                    "username": handle,
                    "score": score,
                    "week_delta": changes["week_delta"],
                    "month_delta": changes["month_delta"],
                    "crypto_followers": stats["followers_count"],
                    "influencers": stats["influencers_count"],
                    "projects": stats["projects_count"],
                    "vcs": stats["venture_capitals_count"],
                })
            except Exception as e:
                print(f"Error for @{handle}: {e}")

            time.sleep(0.15)  # 3 API calls per account

    print(f"Exported {len(handles)} accounts to {output_file}")
```

***

## 次のステップ

* [競合分析](https://docs.sorsa.io/ja/Competitor-Analysis)：Sorsa Scoreと通常のプロフィール・投稿分析を組み合わせる。
* [フォロワーとフォロー中ユーザー](https://docs.sorsa.io/ja/followers-and-following)：暗号資産の追跡対象だけでなく、全フォロワーを取得する。
* [ターゲット層の発見](https://docs.sorsa.io/ja/target-audiences-Discovery)：コミュニティや自己紹介検索で暗号資産のオーディエンスを探す。
* [マーケティングキャンペーンの確認](https://docs.sorsa.io/ja/Marketing-Campaign-Verification)：暗号資産マーケティングの参加アクションを確認する。
* [APIリファレンス](https://docs.sorsa.io/ja/api-reference-guide)：Sorsa Scoreと暗号資産分析の全仕様。
