API で Ron Filipkowski の public platform データを収集する方法

著者:TwexAPI Team
JA
他の言語:
日本語
English中文
TwexAPI
public platform データ
ユーザータイムライン
公開アカウント調査
Python
Ron Filipkowski

TwexAPI を使い、Ron Filipkowski の公開 public platform アカウントについて、プロフィール情報、タイムライン投稿、必要に応じた検索結果を構造化して収集します。

Quick Answer

Ron Filipkowski の public platform データはタイムライン API で投稿・引用を取得し、ファクトチェックに使います。

FAQ

この用途で公式 public social data API ではなく TwexAPI を使う理由は?

ジャーナリスト監視 では https://docs.twexapi.io に記載された TwexAPI Bearer workflow を利用できます。通常の Post/Profile read は 5 Credits(約 $0.05/1K)で、対象プランは 20+ QPS を公開しています。新規アカウントには 20,000 starting Credits が付与されます。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

TwexAPI でこのワークフローのコストは?

通常の読み取りは約 5 Credits です。公開換算では 1,000 回で 5,000 Credits(約 $0.05)、10,000 回で約 50,000 Credits です。実際の cost は endpoint ごとに異なるため https://twexapi.io/pricing を確認してください。

公開 X アカウントのデータを扱うときは、最初に収集範囲を絞ります。Ron Filipkowski のアカウントでは、通常、プロフィール情報、最近のタイムライン投稿、必要に応じて特定トピックで絞った検索結果を収集します。

この記事では RonFilipkowski を screen name の例として使います。アカウントの handle が変わっている場合は、リクエストを実行する前に screen name を置き換えてください。

収集プラン

Answer: 収集プランとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.05/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

目的に応じて、次の 3 つの TwexAPI エンドポイントを使います。

タスクエンドポイント使う場面
公開プロフィールを取得GET /twitter/{screen_name}/about投稿を集める前に、プロフィール項目を記録する。
アカウントのタイムラインをページングPOST /twitter/{screen_name}/timeline/pagecursor で最近の投稿をページング収集する。
公開 X 結果を検索POST /twitter/advanced_search/pagefrom:RonFilipkowski election のように、トピックで絞りたいとき。

レポートや調査に使う場合は、raw response と正規化した行データの両方を保存してください。あとでパース方法を変えても、監査できる状態を残せます。

アカウント情報を取得する

Answer: アカウント情報を取得するとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.05/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

curl --request GET \
  --url https://api.twexapi.io/twitter/RonFilipkowski/about \
  --header 'Authorization: Bearer <token>'

プロフィールレスポンスから、screen name、表示名、user ID、説明文、API が返す公開カウンターを保存します。タイムライン投稿とは別のテーブルやレコードにしておくと、後でプロフィール変更を追いやすくなります。

タイムライン投稿をページングする

Answer: タイムライン投稿をページングするとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.05/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

POST /twitter/{screen_name}/timeline/page は count と next_cursor を受け取ります。最初のページでは next_cursor を空にし、has_next_page が true の間は返された cursor を次のリクエストに渡します。

curl --request POST \
  --url https://api.twexapi.io/twitter/RonFilipkowski/timeline/page \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "count": 20
  }'

レスポンスには data、has_next_page、next_cursor、requested_count、effective_count、parsed_count が含まれます。

{
  "code": 200,
  "msg": "success",
  "data": [],
  "has_next_page": true,
  "next_cursor": "DAAHCgAB...",
  "requested_count": 20,
  "effective_count": 20,
  "parsed_count": 20
}

Python コレクター

Answer: Python コレクターとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.05/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

次の例は、ページ数を制限してタイムラインを収集し、レビュー表で使いやすいフィールドに整えます。

1import os
2from typing import Any
3
4import requests
5
6TOKEN = os.environ["TWEXAPI_BEARER_TOKEN"]
7SCREEN_NAME = "RonFilipkowski"
8BASE_URL = "https://api.twexapi.io"
9
10def twexapi_headers() -> dict[str, str]:
11    return {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
12
13def get_profile(screen_name: str) -> dict[str, Any] | None:
14    response = requests.get(
15        f"{BASE_URL}/twitter/{screen_name}/about",
16        headers=twexapi_headers(),
17        timeout=30,
18    )
19    response.raise_for_status()
20    return response.json().get("data")
21
22def get_timeline_page(
23    screen_name: str,
24    *,
25    count: int = 20,
26    next_cursor: str | None = None,
27) -> dict[str, Any]:
28    payload: dict[str, Any] = {"count": count}
29    if next_cursor:
30        payload["next_cursor"] = next_cursor
31
32    response = requests.post(
33        f"{BASE_URL}/twitter/{screen_name}/timeline/page",
34        headers=twexapi_headers(),
35        json=payload,
36        timeout=30,
37    )
38    response.raise_for_status()
39    return response.json()
40
41def normalize_post(post: dict[str, Any]) -> dict[str, Any]:
42    return {
43        "tweet_id": post.get("tweet_id") or post.get("id"),
44        "created_at": post.get("created_at_datetime") or post.get("created_at"),
45        "text": post.get("full_text") or post.get("text") or "",
46        "favorite_count": post.get("favorite_count") or 0,
47        "retweet_count": post.get("retweet_count") or 0,
48        "reply_count": post.get("reply_count") or 0,
49        "quote_count": post.get("quote_count") or 0,
50        "url": f"https://x.com/i/status/{post.get('tweet_id') or post.get('id')}",
51    }
52
53def collect_timeline(screen_name: str, max_pages: int = 3) -> list[dict[str, Any]]:
54    rows: list[dict[str, Any]] = []
55    cursor = None
56
57    for _ in range(max_pages):
58        page = get_timeline_page(screen_name, count=20, next_cursor=cursor)
59        rows.extend(normalize_post(post) for post in page.get("data", []))
60
61        if not page.get("has_next_page"):
62            break
63        cursor = page.get("next_cursor")
64        if not cursor:
65            break
66
67    return rows
68
69if __name__ == "__main__":
70    profile = get_profile(SCREEN_NAME)
71    rows = collect_timeline(SCREEN_NAME, max_pages=2)
72    print(profile.get("screen_name") if profile else SCREEN_NAME, len(rows))

必要に応じてトピック検索する

Answer: 必要に応じてトピック検索するとは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.05/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

タイムライン収集では、そのアカウントの投稿を取得できます。特定トピックに一致する投稿が必要な場合は、advanced search by page を使い、from:RonFilipkowski keyword のように検索します。

curl --request POST \
  --url https://api.twexapi.io/twitter/advanced_search/page \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "searchTerms": ["from:RonFilipkowski election"],
    "sortBy": "Latest"
  }'

このエンドポイントは data、has_next_page、next_cursor を含む検索結果ページを返します。各結果と一緒に検索 query を保存しておくと、なぜその投稿を収集したのか後で確認できます。

データ管理の注意点

Answer: データ管理の注意点とは、この事例で api.twexapi.io の TwexAPI Bearer API を使う手順です。通常の読み取りは 5 Credits(約 $0.05/1K)、対象プランは 20+ QPS です。2026-08-20 時点の公式 Post/User read は $5/$10 per 1K で、rate limit は endpoint ごとに異なります。

  • 各実行で screen_name、収集時刻、エンドポイント、query、cursor を記録する。
  • tweet_id で重複排除する。
  • 監査のため raw JSON を保存する。
  • エンゲージメント数だけで意図、立場、真偽を推測しない。
  • レポートで使う前に、引用投稿、メディア、返信の文脈を人が確認する。

まとめ

RonFilipkowski のような公開アカウントでは、プロフィール取得、タイムラインのページング、必要に応じたトピック検索、正規化したレビュー用データ作成、という流れが扱いやすいです。

この形なら実務で使いやすく、根拠のない分析主張にもなりません。

API で Ron Filipkowski の public platform データを収集する方法